diff --git a/.claude/skills/stackql-provider-development/SKILL.md b/.claude/skills/stackql-provider-development/SKILL.md new file mode 100644 index 0000000..10c57c8 --- /dev/null +++ b/.claude/skills/stackql-provider-development/SKILL.md @@ -0,0 +1,57 @@ +--- +name: stackql-provider-development +description: Build a new StackQL provider or uplift an existing one to the current standard - from a published OpenAPI spec (direct archetype) or a spec derived from a vendor SDK fork (derived archetype) - using @stackql/provider-utils and every any-sdk primitive (snake_case surface, request/response transforms, pagination, query-param pushdown incl. OData, x-stackQL-envVar scoping, objectKey, lifecycle EXEC methods, GraphQL merge, provider views), with a make-driven pipeline, mock integration tests, meta-route tests and a budgeted live smoke suite. Use whenever asked to create, refresh, regenerate, uplift or fix a stackql provider repo, or to add one of those primitives to an existing provider. Publishing to the public registry is out of scope (a separate, human-in-the-loop skill). +--- + +# StackQL provider development + +A StackQL provider is a versioned set of OpenAPI documents plus `x-stackQL-resources` extensions that the `any-sdk` engine turns into SQL tables. This skill produces one - new or refreshed - that meets the current bar: latest toolchain, every engine primitive used where the API warrants it, a deterministic `make` pipeline, three credential-free test layers passing, and a live smoke suite a human can run against a dev account. + +The detail lives in `references/`; `scripts/` holds two generic helpers: + +- `scripts/spec_diff.mjs ` - operations added/removed/renamed, schemas changed, and the JSON Schema constructs that need a fix class. Run it before accepting any spec refresh. +- `scripts/find_extension_examples.sh [n]` - prints shipped YAML for an extension key (`objectKey`, `nativeCasing`, `x-stackQL-graphQL`, `queryParamPushdown`, `transform:`, ...) with context. Run it before writing any extension block by hand. + +## Ground rules + +- **Read before inventing.** Clone the reference repos ([references/reference-repos.md](references/reference-repos.md)) beside the provider repo and use `find_extension_examples.sh` to see a primitive shipped for real before authoring it. Sibling build repos carry NOTES.md findings - reuse them, do not re-derive. +- **Latest toolchain, always.** `npm view @stackql/provider-utils version`, `npm view @stackql/pgwire-lite version`, `npm view @apidevtools/swagger-parser version`, `npm view @docusaurus/core version` before starting; pin `^latest` in package.json. Node >= 22.19 (Node 20 reached end of life in April 2026; swagger-parser 13 needs 22.19), `"type": "module"`. `js-yaml` stays on 4.x: provider-utils emits with js-yaml 4, and v5 drops the default export, removes the `quotingType` dump option and changes scalar quoting, so that bump is a coordinated change with provider-utils. The lockfile pins what CI installs, so generation stays byte-for-byte reproducible; a toolchain bump is an explicit commit that regenerates the artifacts. +- **Deterministic pipeline.** Every step is a script that validates and fails without writing. Manual decisions are rules in scripts (mapping tables, skip codes, fix classes), never hand-edits to generated YAML or CSV. A regeneration reproduces the committed artifacts byte-for-byte (CI checks this). +- **`all_services.csv` is the contract.** Committed and diffed on every regeneration; a method moving resource or a resource renamed is a breaking change to review, not noise. +- **Environment.** Linux, macOS or WSL (on Windows prefer WSL and the latest `stackql` release on its PATH). GNU make + bash. `stackql` resolves as `$STACKQL`, `./stackql`, then PATH. +- **Never touch production accounts.** Live tests run against a dedicated dev tenant, pace under the vendor's rate limit, name everything `stackql-smoke-`, sweep breadcrumbs first, restore anything toggled. +- **Writing.** Applies to every piece of text the build generates, whoever or whatever reads it: README, docs headers and examples, NOTES, CLAUDE.md, code comments, commit messages, console output, inventory and CSV columns, mock fixtures, hand-over notes. No em dashes (use `-`), no `--` as a dash, no characters that are not on a QWERTY keyboard (no emoji, no typographic quotes, no arrows other than `->`), no stacked headings, measured copy, no hyperbole. Text the vendor owns - operation summaries, schema and parameter descriptions, examples carried from the upstream spec into the snapshot, `provider-dev/source`, the generated provider and `website/docs` - is passed through as the vendor wrote it; the only alteration is the MDX/JSX escaping `sanitize-docs` applies so the docs site builds. + +## Workflow + +Work the steps in order. **Do not execute a step without having read its reference file in this session** - the summary below is a map, not the procedure. Every later problem traces back to the inventory and the mapping rules (steps 3-4). + +1. **Decide the archetype.** Direct (vendor publishes OpenAPI/Swagger/discovery) or derived (the SDK is the truth). Check for a hidden spec first: `/openapi.json` on the API host, `swagger.json` in the docs repo, the SDK generator's spec (Stainless `.stats.yml`), an `openapi.yaml` in the vendor's Terraform provider. Everything after the spec exists is identical for both. +2. **Get the spec.** Direct: fetch, apply counted deterministic fix classes, validate with swagger-parser, redact, pin (url, hashes, counts, date), commit the snapshot - [references/direct-spec-fetch-and-pin.md](references/direct-spec-fetch-and-pin.md). Derived: fork the SDK repo, track `upstream`, parse the SDK (AST, botocore models, typed clients) and synthesise a spec with numbered passes - [references/derived-spec-pipeline.md](references/derived-spec-pipeline.md). On a refresh, run `scripts/spec_diff.mjs` first and record the summary in NOTES.md. +3. **Inventory and split** - [references/inventory-and-mapping.md](references/inventory-and-mapping.md). One CSV row per operation (scope, pagination params, body kind, update-semantics presumption, vendor labels, response shape, proposed mapping, skip reason code). Ordered path rules -> 8-20 user-facing services; a service whose every operation is skip-coded is `excluded`. If most paths share one scoping prefix, rebase them onto a server template with `x-stackQL-envVar` - [references/scoping-and-auth.md](references/scoping-and-auth.md). +4. **Map** - [references/inventory-and-mapping.md](references/inventory-and-mapping.md). Regenerate `all_services.csv` from scratch, fill the `stackql_*` columns from rules (`RESOURCE_RULES`, `METHOD_RULES`, skip codes), validate method uniqueness and required-parameter signatures. Plural snake_case resources, one shape per resource, `_configs` for singletons, lifecycle actions as EXEC on the resource they act on, envelope reads with `objectKey`. Use the `--report` flag to design rules before writing them. +5. **Pre-normalize, normalize, generate, post-process** - [references/normalize-and-generate.md](references/normalize-and-generate.md). Provider-specific spec surgery, the provider-utils normalize pass (bare-array wrap), `generate` with `--servers`, `--provider-config`, `--naive-req-body-translate`, then `post_process.mjs` for everything the generator cannot express. The primitives it applies are specified in [references/request-response-shaping.md](references/request-response-shaping.md) (objectKey, transforms, naive bodies, snake_case), [references/pagination-and-pushdown.md](references/pagination-and-pushdown.md) and [references/scoping-and-auth.md](references/scoping-and-auth.md) (auth types, retry, config inheritance). Look each one up with `find_extension_examples.sh` before authoring it. +6. **Add the non-REST surfaces.** GraphQL-backed resources where REST lacks the data - [references/graphql-merge.md](references/graphql-merge.md); provider views for json_extract-heavy posture queries - [references/provider-views.md](references/provider-views.md). +7. **Wrap it in the Makefile** - [references/repo-layout-and-makefile.md](references/repo-layout-and-makefile.md). `make help` lists every step; `make build`, `make test`, `make all` need no credentials; `make smoke*` sources `.env`. +8. **Test in three credential-free layers, then live** - [references/testing.md](references/testing.md). Offline `SHOW`/`DESCRIBE`, a mock API with row-level and wire-level assertions, the meta-route walk; then the pystackql smoke suite with `--live` and a budget. +9. **Docs and CI** - [references/docs-and-ci.md](references/docs-and-ci.md). Docusaurus 3.10 microsite on the shared config with `showLastUpdateTime`, a getting-started page that leads with the queries the provider exists for, `sanitize-docs`, and the build-and-test / spec-drift workflows. +10. **Record and hand over** - [references/handover.md](references/handover.md). CLAUDE.md (settled decisions), NOTES.md (findings with evidence, plus the open questions the first live run must answer), README.md (numbered build guide with counts that match the artifacts), `.env.example`. + +For an existing provider, start from [references/uplift-checklist.md](references/uplift-checklist.md) instead of step 1; it routes back into the steps above. + +## Engine facts that shape every build + +Verified against stackql v0.10.605 / any-sdk v0.5.4-alpha01 (2026-08). These change with engine releases: when the version moves, re-verify them against the mock with the `probe.mjs` tool described in [references/testing.md](references/testing.md) before relying on them. + +- `x-stackQL-envVar` lives only on a server variable; a WHERE value beats the env var beats `default`; joins cannot fan out on a server variable. +- `stackql_object_key` from the CSV applies to GET only - POST-backed reads get their objectKey in post-process. +- EXEC is the fallback verb bin: a method omitted from every `sqlVerbs` list is EXEC. +- INSERT and EXEC send typed JSON; UPDATE marshals every value as a string; EXEC cannot carry a boolean. Document it, make the smoke test the coercion probe. +- Naive body translation cannot address a bare-array body - rewrite to a single-item object plus a request transform. +- A resource with no columns, or a service with no resources, fails the meta-route walk - fix the mapping, never the test. +- `sqlVerbs` refs are tried in the order written; first parameter match wins, no selectivity sort (inventory-and-mapping.md). +- Keys that parse but are inert or unread at this engine version - never author them, and treat any-sdk `docs/provider_spec.md` as overstating where it lists them: provider-level `responseKeys` (`selectItemsKey` is hard-coded to `items`), operation-level `x-stackQL-resource` / `x-stackQL-method` / `x-stackQL-verb` / `x-stackQL-objectKey` (generator breadcrumbs only), info-level `x-stackql-provider`, `x-alwaysRequired`, method-level `apiMethod`, pagination token `algorithm`/`args`, pushdown `filter`/`orderBy` syntaxes other than `odata`, and view predicates on `sqlDialect == "stackql"` (the names are `sqlite3` and `postgres`). + +## Definition of done + +`make all` green from a clean checkout (deps, pipeline, offline + integration + meta-route tests, docs, site build); `all_services.csv`, `provider-dev/source`, `provider-dev/openapi` and `website/docs` committed; CLAUDE.md, NOTES.md, README.md and `.env.example` current; the smoke suite runnable with `make smoke` / `make smoke-live` by someone with credentials, with its open questions listed. Publishing is the next skill. diff --git a/.claude/skills/stackql-provider-development/references/derived-spec-pipeline.md b/.claude/skills/stackql-provider-development/references/derived-spec-pipeline.md new file mode 100644 index 0000000..43ed897 --- /dev/null +++ b/.claude/skills/stackql-provider-development/references/derived-spec-pipeline.md @@ -0,0 +1,44 @@ +# Derived archetype: synthesise a spec from an SDK fork + +When the vendor publishes no usable spec, the SDK is the truth. The shipped pattern (cloudflare from `cloudflare/cloudflare-python`, aws from `boto/botocore`) is a **fork of the SDK repository itself**, with the whole provider build in one subdirectory of the fork (`stackql_cloudflare/`, `stackql_aws_provider/`) - no submodule, no vendored copy. + +**Tracking and pinning** + +- Two remotes: `origin` (the fork) and `upstream` (the vendor). `main` tracks upstream cleanly (`git fetch upstream && git merge --ff-only upstream/main`); the provider lives on a long-lived branch (`stackql-provider`) that merges `main` in on a feature branch. Never push or PR back to upstream. A `make upstream-sync` target wraps it. +- The pin is the merged upstream commit plus whatever version the SDK carries (`botocore/__init__.py __version__`, or a Stainless `.stats.yml` with `openapi_spec_url` + `openapi_spec_hash` - some SDK generators ship the spec they were built from, which turns the build back into a type 1 with extra parsing for service grouping). +- Guard inherited upstream CI: every workflow the fork inherits gets `if: github.repository == '/'` so it skips on the fork; re-add the guard after each sync. +- Refresh cadence is a decision (quarterly for cloudflare); every sync is `make upstream-sync && make build && make test` with the mapping CSV diff reviewed. + +**What to parse, per SDK style** + +| SDK style | Source of truth | How | +|---|---|---| +| Stainless/Fern-generated Python or TS | the generator's spec URL in `.stats.yml` / config, plus the SDK source tree for service/resource grouping | download the spec; walk the SDK AST (`self._get/_post/_put/_patch/_delete` calls and `path_template(...)` f-strings) to build a `(verb, path) -> (service, resource_chain, sdk_method)` index | +| botocore-style JSON models | `data///service-2.json` + `paginators-1.json` (+ `waiters`) | iterate services, read operations/shapes/protocol metadata; synthesise paths per protocol | +| Hand-written Python/TS client | the client classes and typed models (Pydantic/dataclasses/TS interfaces) | walk the AST for HTTP calls and their request/response types; generate schemas from the type definitions | +| gRPC/proto | `.proto` files with HTTP annotations (`google.api.http`) | transcode annotations to paths, messages to schemas | + +**Synthesising the spec** (`provider-dev/scripts/generate_specs.py` or equivalent; `make specs`, `make specs-refresh` to re-download): one ordered, numbered pass list, each pass counted in the log. The passes the two shipped builds needed, in the order they run: + +1. fan out polymorphic path templates (`/{accounts_or_zones}/{id}/...` -> one path per concrete parent) +2. inline shared `components/parameters|responses|requestBodies` into each operation +3. snake_case path parameters; PascalCase/camelCase schema names +4. flatten multi-line descriptions (docgen turns newlines into `
`) +5. collapse `allOf`/`oneOf`/`anyOf` into a flat property union; strip `additionalProperties`/`discriminator` +6. fix `required` lists that name absent properties; strip `readOnly` properties from write-body `required` (the API rejects `unknown field "id"` otherwise) +7. force `required: true` on path parameters; hoist inline `result.items` into named schemas +8. canonicalise scoping parameter names (`account_id`, `zone_id`) +9. assign services: exact `(verb, path)` match against the SDK index, then a static capability map, then longest SDK prefix, then a URL-prefix fallback - every path must land somewhere +10. write `provider-dev/source/.yaml` + +For protocol families without REST paths (aws query/ec2, aws-json, rpc), **invent stable path keys** the any-sdk router can match: `/?Action=&Version=` for query protocols, `/#` with an `X-Amz-Target` header for aws-json, `/graphql?resource=` for GraphQL (graphql-merge.md). Stamp each synthesised operation with breadcrumbs (`x-stackql-resource`, `x-stackql-method`, `x-stackql-verb`, `x-stackql-objectKey`, pagination hints) so the next stage does not have to re-derive them. + +**Mapping and breaking-change control** - the same `all_services.csv` contract as inventory-and-mapping.md (identical 13 columns), but the identity key is `(filename, path, verb)` or `filename::operationId` and **existing rows win over freshly derived breadcrumbs**: a regeneration maps a known operation to exactly the resource/method/verb/objectKey it shipped with; new operations are appended and a `--strict` run fails until they are curated; rows are never rewritten silently. Deleting the CSV forfeits every pin. Keep sidecars for forced decisions (`param_promotions.json` for `required: true` overrides) and write a `build-report.json` each run (promotions, demotions, zero-column resources). + +**Surface-drift guard** - a committed `benchmarks.json` (`services`, `resources`, `methods`, `selectableResources`, `nonSelectableRatioPct`, `ratioTolerancePct`) that fails the build when any count falls or the non-selectable ratio spikes; re-baseline only with an explicit flag. A spike means a generator change started stranding readers. + +**Provider generation** - either `providerdev.generate` with the usual flags (cloudflare) or a purpose-built emitter that reproduces the CSV contract and writes the service YAMLs directly (aws, because per-protocol request translation, XML transforms and sigv4 config are easier to emit than to post-process). Post-passes that recur in derived builds: non-JSON responses -> `{contents}` + text transform; request-body JSON transforms where naive translation string-wraps array/object SET values; octet-stream write bodies exposed as one `value` column via `request.schema_override` + `body: '{{ .value }}'`; families of near-identical per-model endpoints collapsed into one resource with a discriminating parameter; per-method `nativeCasing: pascal` for PascalCase wire APIs with `snake_case_aliases: true` on the provider. + +**Derived-build pitfalls recorded by the shipped builds**: SDK-vs-API drift (sunset REST endpoints still present in the SDK - strip them; models declaring one protocol in `metadata.protocol` and another in `protocols`); global-endpoint metadata that is really a regional alias; YAML 1.1 boolean keywords in `required` lists must be quoted; NOCASE column collisions abort `CREATE TABLE` with exit code 0 (defend with a collision check at build time and fatal-pattern greps in the smoke harness); pagination schemes any-sdk cannot express (`page >= total_pages`) are parked, documented, and left off rather than looping forever; docgen sanitizers are needed for hostile description text; a CSV open in Excel is file-locked on Windows. + +Everything from the inventory step onward applies unchanged: inventory-and-mapping.md, then normalize-and-generate.md (a derived build may replace provider-utils `generate` with a purpose-built emitter, as aws does, but the CSV contract, the post-process responsibilities and the test layers are the same). diff --git a/.claude/skills/stackql-provider-development/references/direct-spec-fetch-and-pin.md b/.claude/skills/stackql-provider-development/references/direct-spec-fetch-and-pin.md new file mode 100644 index 0000000..fe32d32 --- /dev/null +++ b/.claude/skills/stackql-provider-development/references/direct-spec-fetch-and-pin.md @@ -0,0 +1,14 @@ +# Direct archetype: fetch, fix, validate, pin the spec + +`bin/fetch-spec.sh` -> `provider-dev/scripts/record_spec_pin.mjs`: + +1. Download to a temp dir (`curl -fsSL`). Never write into `provider-dev/downloaded/` before validation passes. +2. Apply **deterministic fix classes** to the parsed document before validating, each counted: the typical NestJS/JSON-Schema-2020-12 leaks are `"type": "null"` -> `nullable: true`, `propertyNames` removed, numeric `exclusiveMinimum`/`exclusiveMaximum` -> `minimum`/`maximum` + boolean flag, `$schema` keys removed, `const` -> `enum`, vendor artifact keys (`hideDefinitions`) removed, OpenAPI 3.1 `type: [string, "null"]` arrays lowered to a single type + `nullable`, `openapi: 3.1.2` -> `3.1.1` (swagger-parser rejects 3.1.2 by string). Add a class when a refresh introduces a new construct; a class absent from a snapshot counts 0. +3. Validate with `@apidevtools/swagger-parser` (`SwaggerParser.validate(structuredClone(spec))`). Fail without writing on error. +4. **Redact** credential-shaped example values deterministically (Slack webhooks, tokens in examples trip GitHub push protection); record counts. +5. Pin in `provider-dev/config/spec_pin.json`: url, filename, stated version, openapi version, path and operation counts, upstream sha256 (of the raw bytes - drift always compares upstream), sanitized sha256, fix counts, redaction counts, bytes, fetched date. Pin mismatch fails unless `--update` (a reviewed refresh). Commit the snapshot so every refresh is a reviewable diff. +6. On a refresh, diff before accepting: added/removed/renamed operations, added/removed/changed schemas. A node one-liner over the two JSON files is enough; record the summary in NOTES.md. + +A multi-spec vendor (several documents, or one per API family) pins each under `specs.` with the same fields. + +Next: inventory-and-mapping.md (shared with the derived archetype from here on). diff --git a/.claude/skills/stackql-provider-development/references/docs-and-ci.md b/.claude/skills/stackql-provider-development/references/docs-and-ci.md new file mode 100644 index 0000000..1679363 --- /dev/null +++ b/.claude/skills/stackql-provider-development/references/docs-and-ci.md @@ -0,0 +1,23 @@ +# Docs microsite and CI + +## Docs microsite + +Docusaurus `^3.10.x` on the shared `stackql/docusaurus-config` (vendored to `.shared-config/` by `yarn vendor-config` in `prebuild`/`prestart`). Site-local files only: `provider.js` (`providerName`, `providerTitle`), `docusaurus.config.js` (createConfig + registry logos + `config.presets[0][1].docs.showLastUpdateTime = true;`), `sidebars.js`, `scripts/sanitize-docs.mjs`, `src/` (CopyableCode, SchemaTable, StackqlDeployDropdown, theme overrides), `static/` (CNAME `-provider.stackql.io`, favicons, manifest, registry logos, `stackql-featured-image.png`, `stackql--provider-featured-image.png`). No Docusaurus boilerplate (no undraw images, HomepageFeatures, stock README). + +The sidebar (`sidebars.js`) has one shape on every provider site: a `Back to StackQL Docs` link first (`type: 'link'`, `href: '/stackqldocs'`, `className: 'sidebar-back-link'`), then `All Providers` (`href: '/providers'`), then the ` Provider` category linked to `provider-intro` with the autogenerated `services` tree. Both hrefs are shared-config redirect routes that the vendored redirects plugin registers on the site (they forward to `https://stackql.io/` and `https://stackql.io/providers`), so they render as internal links and pass the broken-link checker; the `.sidebar-back-link` rules in `src/css/global.css` draw the arrow and the divider, matching the query library site. Copy both from the template rather than re-deriving them. + +`headerContent1.txt` is the front matter + one-paragraph pitch; `headerContent2.txt` is the getting-started page: See also / Installation (`REGISTRY PULL`) / Scope / Authentication (env vars, bash and PowerShell) / the scoping variable / Rate limit / Beta labelling / Example Queries - lead with the queries the provider exists for (estate inventory, posture set, the flagship, provisioning with INSERT/UPDATE/EXEC/DELETE, a cross-provider UNION). Examples must be runnable against the generated surface (snake names, quoted keywords). + +The example section has one shape on every provider site, so the table of contents reads the same everywhere: + +- The H2 is exactly `## Example Queries` and it is the last section of `headerContent2.txt` (docgen appends `## Services` after it). +- The H2 is followed by one intro sentence, `Try the following queries using \`stackql shell\`, or run them from a script or CI pipeline with \`stackql exec\`.`, so the H2 never sits directly on an H3. No two headings anywhere in the file are back to back. +- Each example is an H3 named for what it answers (`### Estate inventory`), with a one-sentence lead-in ending in a colon and one ` ```sql ` block (two at most). Setup material (scope, auth, casing, rate limits, pagination) stays in its own H2 sections above, never inside the examples. +- Plain prose, `-` rather than em dashes, no ASCII arrows; SQL with uppercase keywords, single-quoted strings, semicolon terminated; placeholders in the same style the generated resource pages use. +- Favicons live at the `static/` root (`favicon.ico`, `favicon-16x16.png`, `favicon-32x32.png`, `apple-touch-icon.png`, `safari-pinned-tab.svg`, `site.webmanifest`); the shared config links them root-relative, so copies under `static/img/` are never served as the site icon. + +`make docs` = `generate-docs --snake-case-aliases --source-project $(SOURCE_PROJECT)` + `sanitize-docs.mjs` (escapes MDX-hostile description text, annotates env-var-defaulted parameters "required unless X is set", corrects docgen's landing-page resource count which includes each service index). `--source-project` (provider-utils >= 0.7.11) adds a `source project` row to the Provider Summary admonition on the landing page, linking the repository name (the URL's last path segment) to the URL; `sanitize-docs` leaves the row alone. The Makefile carries the URL as `SOURCE_PROJECT ?= https://github.com/stackql-registry/stackql-provider-<slug>` (rewritten by `bin/init-provider.sh`), always the consuming repository's own URL, never the template's; a repository hosted elsewhere sets it there. `make website` = `yarn install && yarn build`. Commit `website/docs` after every regeneration so pages stamp with their regeneration date. + +## CI + +`build-and-test.yml`: on push/PR - `actions/setup-node@v7` on Node 22, `npm ci`, `stackql/setup-stackql@v2`, `make fetch-spec` (warn on drift, build from the pin), build steps, **fail on uncommitted generation drift** (`git add -N . && git diff --quiet -- provider-dev/openapi provider-dev/config provider-dev/source`), `make test-offline test-integration test-meta`, `make docs`. A `smoke` job skipped at the job level (no runner consumed) on pull requests, on the schedule, until a spec is pinned and until the secrets are configured: build-and-test exports `pinned` and `smoke_creds` outputs because a job-level `if` cannot read secrets, and raises a notice naming the missing secret where the smoke job would otherwise have run; never the expensive lifecycle. A weekly `spec-drift` job that fetches, compares with the pin, and opens a labelled issue with the diff stat. Web deploy workflows build the site from `main` with `yarn install --frozen-lockfile`, cached on `website/yarn.lock`; the first `make website` writes that lockfile, so commit it before enabling them. diff --git a/.claude/skills/stackql-provider-development/references/graphql-merge.md b/.claude/skills/stackql-provider-development/references/graphql-merge.md new file mode 100644 index 0000000..9450d28 --- /dev/null +++ b/.claude/skills/stackql-provider-development/references/graphql-merge.md @@ -0,0 +1,60 @@ +# GraphQL operations + +Merge GraphQL-backed resources when the REST API lacks the data (GitHub Discussions, star history with `starred_at`, contribution calendars, SAML identities, Cloudflare's GraphQL Analytics replacing sunset REST analytics). They are SELECT-only resources declared through the operation-level extension `x-stackQL-graphQL`: + +```yaml + /graphql?resource=star_history: # synthetic unique path key; the reader clears the query string + post: + operationId: graphql/activity/star_history/list + x-stackQL-graphQL: + url: https://api.github.com/graphql # informational - routing is servers + path key + httpVerb: POST + responseSelection: + jsonPath: $.data.repository.stargazers.edges[*] + cursor: + strategy: page_info # cursor_after (default) | page_info | keyset | offset + jsonPath: $.data.repository.stargazers.pageInfo.endCursor + terminateOnJsonPath: $.data.repository.stargazers.pageInfo.hasNextPage + query: | + query { + repository(owner: "{{ .owner }}", name: "{{ .repo }}") { + stargazers(first: 100, orderBy: {field: STARRED_AT, direction: ASC}{{ .cursor }}) { + pageInfo { endCursor hasNextPage } + edges { starred_at: starredAt user: node { login id url } } + } + } + } + x-stackql-protocol: graphql + parameters: + - {name: owner, in: query, required: true, schema: {type: string}} + - {name: repo, in: query, required: true, schema: {type: string}} + responses: + '200': {description: Response, content: {application/json: {schema: {...nested envelope down to edges: array of row objects...}}}} +``` + +```yaml + star_history: + id: github.activity.star_history + name: star_history + methods: + list: + operation: {$ref: '#/paths/~1graphql?resource=star_history/post'} + response: {mediaType: application/json, openAPIDocKey: '200', objectKey: $.data.repository.stargazers.edges} + x-stackql-protocol: graphql + sqlVerbs: + select: [{$ref: '#/components/x-stackQL-resources/star_history/methods/list'}] + insert: [] + update: [] + delete: [] + replace: [] +``` + +Semantics: every declared parameter supplied in WHERE becomes a Go-template variable of the same name (`{{ .owner }}`); a pushed-down `LIMIT` arrives as `{{ .limit }}` (guard optional ones with `{{ if .x }}...{{ end }}`); `{{ .cursor }}` is spliced by the cursor strategy (`, after: "..."` for `cursor_after`/`page_info`, a `format` template rendered from the last row's key for `keyset`, `, offset: N` for `offset` with `pageSize`); `responseSelection.jsonPath` must select an array of objects (a `response.transform` on the method runs first, so a JSON template can flatten `dimensions`/`sum` groups into flat rows); any non-empty top-level `errors` aborts the read; GraphQL string literals must not contain newlines or backslashes (the query is newline-stripped and only `"` is escaped). + +Process (github's `provider-dev/source-graphql/` + `graphql_merge.mjs`, run as the last step of `make provider`): + +1. Author one fragment per op: `service`, `resource`, `title`, `description`, `parameters` (plain OpenAPI parameter objects), `selection` (a plain dotted path, no `[*]`), optional `cursor`, `query`, `rowSchema` (so `DESCRIBE` and the docs show real columns). A `manifest.yaml` lists the `graphql_url`, any GraphQL-only services, and the ops. +2. The merge script builds the operation (`responseSelection` = selection + `[*]`), reconstructs the nested response schema down to `items: rowSchema` (plus a `pageInfo` sibling for `page_info`), builds the select-only resource (`objectKey` = the bare selection), appends `providerServices` entries for GraphQL-only services, and re-sorts keys. +3. Idempotency: the merge first strips every path operation and resource whose methods all carry `x-stackql-protocol: graphql`, so regeneration is safe and the fragments are the single source of truth. It throws on a path-key POST collision or a resource name that already exists as REST. + +Pitfalls: an op **must** carry a `cursor` block even when single-page (any-sdk gates the response JSONPath on it - emit a dummy `cursor: {jsonPath: $.data.__no_cursor}` and let `cursor_after` treat the failed lookup as EOF); `page_info` without `terminateOnJsonPath` and `keyset` without `format` are fatal; the static analyzer skips GraphQL methods, so the integration mock must cover them; nested objects arrive as JSON columns (`json_extract(user, '$.login')`); note token-permission caveats in the description. diff --git a/.claude/skills/stackql-provider-development/references/handover.md b/.claude/skills/stackql-provider-development/references/handover.md new file mode 100644 index 0000000..7f03aa0 --- /dev/null +++ b/.claude/skills/stackql-provider-development/references/handover.md @@ -0,0 +1,13 @@ +# Recording decisions and handing over + +## What to record where + +- **CLAUDE.md** - the settled decisions (archetype, scoping variable, auth, the flagship mapping, skip codes, casing policy), the toolchain rules, where the findings live, the non-negotiables. Short; it is read every session. +- **NOTES.md** - numbered findings with evidence (what was measured, against what, what was decided and why), a Blockers list of what only a live run can establish, and the testing requirements. It is the memory of the build; a future refresh reads it before touching a rule. +- **README.md** - the numbered build guide (steps 0-8: pin, inventory, split, mappings, normalize, generate, test, publish, docs) with counts that match the committed artifacts, the Makefile targets, credentials, and the CI description. +- **.env.example** - every live-test variable with a one-line comment; never a real value. +- **SECURITY.md** and **LICENSE** - carried from the template, placeholders rewritten by `bin/init-provider.sh`: the repository's private advisory form, the scope split between the provider and the engine, MIT. Not a build artifact; update only when the policy changes. + +## Hand-over + +Publishing to the registry is a separate, human-in-the-loop skill. Hand over: a clean `make all`, the live-run open questions listed in NOTES.md "Blockers" (what the first smoke run establishes), `.env.example`, and a short note on how to run `make smoke` / `make smoke-live` and raise a PR for fixes (rules in scripts, `make build && make test`). diff --git a/.claude/skills/stackql-provider-development/references/inventory-and-mapping.md b/.claude/skills/stackql-provider-development/references/inventory-and-mapping.md new file mode 100644 index 0000000..bd779b4 --- /dev/null +++ b/.claude/skills/stackql-provider-development/references/inventory-and-mapping.md @@ -0,0 +1,45 @@ +# Inventory, service split and mappings + +The most consequential step of the build: every later problem traces back to the inventory columns and the mapping rules. Applies to both archetypes (a derived build stamps breadcrumbs in its synthesised spec, then runs the same inventory and mapping). + +## Inventory and service split + +`provider-dev/scripts/build_inventory.mjs` writes `provider-dev/config/endpoint_inventory.csv`, one row per operation, from the pinned spec. Columns that decide everything downstream: + +- scope (which path parameter addresses the row: org, project, account, none), path params +- pagination-looking query params (`limit`, `offset`, `page`, `cursor`, `page_token`, `next_token`, ...) - a per-endpoint **confirmation**, not an assumption +- request body presence, media types (json / form / multipart / octet / vendor types), and whether the body is a bare array +- update verb semantics presumption (`patch-partial-presumed`, `put-replace-unverified`) - the keycloak finding: PUT is not REPLACE until proven live +- vendor labels (`[Beta]`, `[Alpha]`, `deprecated`) - carried into docs, never hidden +- response shape: `bare-array`, `object` (with the names of its top-level array properties - envelope candidates), `scalar`, `untyped-json`, `non-json`, `none` +- proposed service, resource, verb, and a **skip reason code** where an operation will not be mapped + +Standard skip codes (reason-coded in the CSV, listed in the README): `multipart_upload`/`multipart_eszip_deploy` (binary bodies - the CLI is the path), `non_json_text_response` (text/plain, Prometheus exposition, PDFs unless a transform makes them useful), `untyped_json_response` (empty schema and marginal value), `bare_array_bulk_body` (bulk endpoints with no per-statement form when a single-item endpoint exists), `head_count_endpoint`, `oauth_user_agent_flow` (browser redirect flows), `websocket`/`sse_stream`. Every skipped operation stays visible in the CSV. + +**Service split** is recorded as ordered path rules in `provider-dev/config/service_names.json` (first match wins; an unmatched path fails the build) and applied by `bin/split.mjs` via `providerdev.split({svcDiscriminator: 'function', svcDiscriminatorFn})`. Use `--svc-discriminator tag` only when the vendor's tags are already a good service split (github). Aim for 8-20 services named for what a user would look for (`projects`, `config`, `network`, `secrets`, ...), not the vendor's controller names. A rule may carry `"excluded": true` for a service whose every operation is skip-coded (the split classifies it for the inventory but does not emit it - an empty service fails the meta-route walk). + +Split writes `provider-dev/source/<service>.yaml` (committed build artifacts). If the API scopes most paths under one parent (`/v1/projects/{ref}/...`, `/organizations/{orgId}/...`, `/accounts/{account_id}/...`), rebase them here onto a server template - see scoping-and-auth.md. + +## Mappings: the operation -> resource.method table + +`npm run generate-mappings -- --provider-name X --input-dir provider-dev/source --output-dir provider-dev/config` (provider-utils `analyze`) writes `all_services.csv` with one row per operation and blank `stackql_resource_name`, `stackql_method_name`, `stackql_verb`, `stackql_object_key` columns. **Delete the CSV first and regenerate from scratch** so retired operations disappear, then `provider-dev/scripts/map_operations.mjs` fills the columns from rules and validates: + +- every row mapped or `skip_this_resource` with a reason; every spec operation present in the CSV +- `(service, resource, method)` unique +- for non-EXEC verbs, unique required-parameter signature per `(resource, sqlVerb)` - two SELECT methods on one resource that both need only `id` cannot be routed; split the resource or make one EXEC + +How the engine routes a statement (any-sdk `methodSet.go`, `resource.go`): the refs under a `sqlVerbs` key are tried **in the order written** and the first method whose required parameters are satisfied by the statement wins - there is no sorting by selectivity, so list the less selective method (`list`) before the more selective one (`get`) and confirm an overload with `probe.mjs`. If a verb key is absent from `sqlVerbs` entirely, the engine falls back to method names (`select` -> `select|list|aggregatedList|get`, `insert` -> `insert|create`, `delete` -> `delete`); the generator always writes the lists, so this only matters for hand-authored fragments. + +Mechanical derivation (then `RESOURCE_RULES` / `METHOD_RULES` for the exceptions): strip the scoping pairs (`projects/{ref}`), take the static segments, pluralize the last as the resource in snake_case; GET collection -> `list`, GET single -> `get`, POST -> `create`, PATCH/PUT -> `update`, DELETE -> `delete`, POST on an action segment (`pause`, `restart`, `apply`, `merge`, `activate`, `retrieve`, ...) -> EXEC `<action>` on the parent resource, PATCH/PUT on `status`/`password`/`state` -> EXEC `update_<segment>`. + +Naming rules that hold across builds: + +- resources are plural snake_case; singleton config surfaces are `<thing>_configs` (`auth_configs`, `ssl_enforcement_configs`) +- a resource projects **one shape**: if a detail read returns a different schema from the list, it is a separate resource (`branches` vs `branch_configs`) +- lifecycle operations live on the resource they act on (`projects.pause`, `services.update_state`, `instances.start`) - the aim is to minimise non-selectable resources; an EXEC-only resource is acceptable only when there is genuinely no read +- envelope list reads set `stackql_object_key` (`$.items`, `$.data`, `$.result`, `$.backups`); bare-array lists leave it blank (request-response-shaping.md) +- a POST that is really a read (`.../retrieve`, `.../search`, `.../query` with no side effects) maps as SELECT `list` - remember the generator applies the CSV objectKey to GET only, so set it in post-process +- deprecated operations stay mapped when no replacement exists; the deprecation flows into the docs +- `stackql_verb`: `select | insert | update | delete | exec` (there is also `replace`, used only with proven full-replacement PUT semantics) + +Add a `--report` flag to the mapping script that prints every derived mapping without writing; it is the fastest way to design rules for a new service. diff --git a/.claude/skills/stackql-provider-development/references/normalize-and-generate.md b/.claude/skills/stackql-provider-development/references/normalize-and-generate.md new file mode 100644 index 0000000..4710009 --- /dev/null +++ b/.claude/skills/stackql-provider-development/references/normalize-and-generate.md @@ -0,0 +1,45 @@ +# Pre-normalize, normalize, generate, post-process + +Shared by both archetypes once `provider-dev/source/<service>.yaml` and `all_services.csv` exist. + +## Pre-normalize, normalize + +`provider-dev/scripts/pre_normalize.mjs` holds the provider-specific spec surgery that must happen on `provider-dev/source` before the generic pass. Typical jobs (each validated, counted, idempotent): + +- remove a non-JSON request media type declared before `application/json` (any-sdk binds the body to the first declared type) +- remove deprecated query parameters that duplicate body properties (any-sdk binds an INSERT column to the query parameter first and the body arrives empty) +- inject a response schema where the vendor declares none (a `201` with no content on a query endpoint) so a binding exists +- rewrite a bare-array request body to its single-item object form (paired with a request transform in post-process, see request-response-shaping.md) +- drop a camelCase duplicate of a snake_case property that would collide under `snake_case_aliases` +- lower OpenAPI 3.1 constructs the kin-openapi loader cannot read (type arrays, numeric exclusive bounds) + +Then `npm run normalize -- --api-dir provider-dev/source`: flattens `allOf`, lowers `oneOf`/`anyOf` unions, strips misplaced keywords, converts opaque objects to strings, lifts path-item parameters onto operations, strips non-root `servers`, and **wraps bare-array responses** (marks the operation `x-stackql-bare-array-wrap` with a wrapper key derived from the operationId; `--bare-array-overrides '{"<operationId>": {"wrapperKey": "...", "columnName": "..."}}'` renames one). Some providers need a `post_normalize.mjs` to undo a wrap the vendor's own envelope makes wrong (github). + +## Generate + +```bash +rm -rf provider-dev/openapi/* +npm run generate-provider -- \ + --provider-name <name> \ + --input-dir provider-dev/source \ + --output-dir provider-dev/openapi/src/<name> \ + --config-path provider-dev/config/all_services.csv \ + --servers provider-dev/config/servers.json \ + --provider-config provider-dev/config/provider_config.json \ + [--service-config provider-dev/config/service_config.json] \ + [--skip-files '["internal.yaml"]'] \ + --naive-req-body-translate \ + --overwrite +node provider-dev/scripts/post_process.mjs +``` + +- `--servers` replaces `servers` on every service (inline JSON or a file). Server variables with `x-stackQL-envVar` are authored here. +- `--provider-config` becomes `config:` in `provider.yaml`: `auth`, `snake_case_aliases`, provider-wide `pagination`/`retry`. +- `--service-config` becomes the document-level `x-stackQL-config` on every service (document-level `pagination`, `variations`, `queryParamPushdown`). +- `--naive-req-body-translate` emits `config.requestBodyTranslate.algorithm: naive` on every POST/PUT/PATCH with a body, so body properties are plain columns (`INSERT INTO t (name, value)`) rather than `data__name`. It is not emitted for DELETE bodies - add it in post-process. It cannot address a bare-array body (request-response-shaping.md). +- `--views-dir` defaults to `./views` when the directory exists (provider-views.md). +- `--update-path-param-names` snake_cases path parameter names in the paths and parameters (use when the vendor's are camelCase and you want `WHERE instance_id`). + +Output: `provider-dev/openapi/src/<name>/v00.00.00000/provider.yaml` + `services/*.yaml`. Each service carries `components.x-stackQL-resources.<resource>` with `methods.<name>` (`operation.$ref`, `request`, `response`, `config`) and `sqlVerbs` (`select`/`insert`/`update`/`delete`/`replace` lists of method refs). **EXEC is the fallback bin**: a method omitted from every `sqlVerbs` list is EXEC. + +`post_process.mjs` re-applies everything the generator cannot express (idempotent, validates, fails without writing): path-level `servers` overrides, method-level `pagination`, `request.nativeCasing`, response transforms and `schema_override`, objectKeys on non-GET reads, request transforms, `queryParamPushdown`, DELETE-body naive translation, `x-stackQL-alias` on parameters. Everything in it is a numbered, commented rule. diff --git a/.claude/skills/stackql-provider-development/references/pagination-and-pushdown.md b/.claude/skills/stackql-provider-development/references/pagination-and-pushdown.md new file mode 100644 index 0000000..7d7a93e --- /dev/null +++ b/.claude/skills/stackql-provider-development/references/pagination-and-pushdown.md @@ -0,0 +1,45 @@ +# Pagination and query-parameter pushdown + +Configure pagination **per the vendor's documented scheme**, confirmed per endpoint in the inventory - never assume. Place the block at the narrowest level that is true: method `config.pagination` (post-process) when one collection paginates, document-level `x-stackQL-config.pagination` (`--service-config`) when a whole service does, provider config when the whole API does. Prove every scheme against a two-page mock fixture. + +```yaml +pagination: + algorithm: <absent = token | page_number | odata_next_link> + requestToken: {key: <name>, location: query|path|header|body|request} + responseToken: {key: <JSONPath or header name>, location: body|header|query|path} + responseTerminator: {key: <JSONPath>, location: body} # page_number only +``` + +| Vendor scheme | Config | +|---|---| +| Cursor / next-token in the body (`{data, cursor}`, `{items, next_page_token}`) | `requestToken: {key: cursor, location: query}`, `responseToken: {key: $.cursor, location: body}` - stops when the token is absent or empty | +| Next-page URL in the body (`$.next`, OData `@odata.nextLink`) | `requestToken: {key: '', location: request}`, `responseToken: {key: $.next, location: body}` (the value is the whole next request URL); `algorithm: odata_next_link` for OData | +| RFC 5988 `Link: <url>; rel="next"` header (github) | `requestToken: {key: '', location: request}`, `responseToken: {key: Link, location: header}` | +| Page number with a page count in the body | `algorithm: page_number`, `requestToken: {key: page, location: query}`, `responseToken: {key: $.page, location: body}`, `responseTerminator: {key: $.pages, location: body}` - stops when page >= pages | +| Offset/limit with no next marker | not expressible - expose `offset`/`limit` as WHERE parameters (parameter-driven windowing) and document it; do not fake a loop that never terminates | +| GraphQL cursors | graphql-merge.md | + +`--http.response.pageLimit` bounds traversal; the vendor's page size parameter is a pushdown (`top`), not a pagination key. + +Token blocks also accept `algorithm` and `args` keys; they are inert (any-sdk `pagination.go`): the only algorithm-sensitive path is `location: header`, where an empty `algorithm` with `key: Link` selects the RFC 5988 transformer and any other header key has the same `rel="next"` regex applied. Do not author them. Pagination blocks resolve method -> resource -> service -> providerService (`providerServices.<name>.config` in `provider.yaml`) -> provider. + +**Predicate pushdown** needs no configuration for plain parameters: WHERE keys are matched against the operation's `parameters` by name in the order path -> query -> header -> cookie; `in: header` parameters are set as request headers; **any leftover WHERE key with no matching parameter is appended as a query parameter**. So `WHERE reveal = 'true'`, `WHERE services = 'db'`, `WHERE iso_timestamp_start = '...'` push down as soon as the parameter is declared (declare undocumented-but-real query params in pre-normalize when the vendor omits them). `x-stackQL-alias` on a parameter/property accepts an alternative WHERE name. + +**Clause pushdown** (`queryParamPushdown`, inheriting method -> resource -> service -> providerService -> provider as whole-block replacement) rewrites SELECT columns, WHERE, ORDER BY, LIMIT, OFFSET and COUNT into API parameters: + +```yaml +queryParamPushdown: + select: {dialect: odata|custom, paramName: $select, delimiter: ',', supportedColumns: [...]} + filter: {dialect: odata, paramName: $filter, syntax: odata, supportedOperators: [eq, ne, gt, ge, lt, le, startswith, endswith, contains, and], supportedColumns: [...]} + orderBy: {dialect: odata, paramName: $orderby, supportedColumns: [...]} + top: {dialect: custom, paramName: limit, maxValue: 1000} + skip: {dialect: custom, paramName: offset, maxValue: ...} + count: {dialect: odata, paramName: $count, paramValue: 'true', responseKey: '@odata.count'} +``` + +- `dialect: odata` fills the `$select/$filter/$orderby/$top/$skip/$count` defaults (entra_id/msgraph/azure style); `custom` (the default) uses `paramName` verbatim - the common case is `top: {paramName: limit, maxValue: N}` so `LIMIT n` becomes `?limit=n` (clamped). +- Only OData rendering of `filter`/`orderBy` is implemented today (`query_param_pushdown_apply.go`): the `key_value`, `simple`, `prefix` and `suffix` syntaxes in any-sdk's `docs/provider_spec.md` parse into config but are never rendered; non-OData predicates are evaluated client-side as residuals, which is still correct, just not pushed. +- Empty `supportedColumns`/`supportedOperators` means all; `select` and `orderBy` are all-or-nothing (one unsupported column suppresses the parameter); list `and` in `supportedOperators` to push more than one predicate. +- A method-level block masks the whole service-level block (no per-field merge) - restate everything when overriding. + +Header-bound predicates (an `X-Org-Id` or `Accept-Version` header the API filters on) are plain `in: header` parameters; give them a `schema.default` when the API needs them always. diff --git a/.claude/skills/stackql-provider-development/references/provider-views.md b/.claude/skills/stackql-provider-development/references/provider-views.md new file mode 100644 index 0000000..b60b7f1 --- /dev/null +++ b/.claude/skills/stackql-provider-development/references/provider-views.md @@ -0,0 +1,33 @@ +# Provider views + +Views are virtual resources injected at generate time from `views/<service>/views.yaml` (`--views-dir`, defaulting to `./views`), documented like any resource. A file is a top-level YAML mapping of view name -> resource body; API-derived resources win on a name collision, so prefix views `vw_`: + +```yaml +vw_ssl_posture: + name: vw_ssl_posture + id: <provider>.config.vw_ssl_posture + config: + docs: + fields: + - {name: applied_successfully, type: boolean, description: Whether the current config was applied.} + - {name: ssl_enforced, type: boolean, description: Whether SSL is enforced on database connections.} + requiredParams: # optional; templated as '{{ name }}' in the ddl + - {name: ref, type: string, description: Project ref.} + views: + select: + predicate: sqlDialect == "sqlite3" + ddl: |- + SELECT applied_successfully, + JSON_EXTRACT(current_config, '$.database') AS ssl_enforced + FROM <provider>.config.ssl_enforcement_configs + WHERE ref = '{{ ref }}' + fallback: + predicate: sqlDialect == "postgres" + ddl: |- + SELECT applied_successfully, + (current_config->>'database')::boolean AS ssl_enforced + FROM <provider>.config.ssl_enforcement_configs + WHERE ref = '{{ ref }}' +``` + +`docs.fields` is what the doc page renders; `views.select.ddl` is what the engine runs, with the `sqlite3` form first and a `postgres` `fallback` for server mode (the predicate is matched against stackql's SQL system name - `sqlite3` or `postgres`; an empty predicate matches every dialect). provider-utils splices the fragment verbatim, so the engine learns a view's required parameters **only** from a `requiredParams == ["ref"]` clause in the predicate (any-sdk `view.go`, passed to `CreateView` by stackql); `docs.requiredParams` is docs-only. When the DDL templates `'{{ ref }}'`, write `predicate: sqlDialect == "sqlite3" && requiredParams == ["ref"]` (and the same on the fallback) and confirm in the offline layer that `SHOW METHODS` lists the parameter. Good candidates: json_extract-heavy posture queries, multi-resource UNIONs, the "estate inventory" of a provider. Test each with `SELECT * FROM <provider>.<service>.<view>` in the offline layer. diff --git a/.claude/skills/stackql-provider-development/references/reference-repos.md b/.claude/skills/stackql-provider-development/references/reference-repos.md new file mode 100644 index 0000000..3458c0d --- /dev/null +++ b/.claude/skills/stackql-provider-development/references/reference-repos.md @@ -0,0 +1,20 @@ +# Reference repositories + +Clone these next to the provider repo (shallow clones are fine) and grep them for any extension key to find a real, shipped example. Sibling build repos carry a NOTES.md (or CLAUDE.md) of findings - reuse them, do not re-derive. + +| Repo | What to read | +|---|---| +| https://github.com/stackql/any-sdk | the engine: `docs/provider_spec.md` is the extension contract; `cicd/schema-definitions/stackql-config.schema.json` the allowed config keys; `internal/anysdk/*.go` struct yaml tags are the source of truth for key names | +| https://github.com/stackql/stackql | the CLI: robot tests under `test/` show working SQL for every feature; `test/registry` holds fixture providers | +| https://github.com/stackql/stackql-provider-registry | every shipped provider under `providers/src/<provider>/v00.00.00000/` - grep for a key (`objectKey`, `nativeCasing`, `x-stackQL-graphQL`, `queryParamPushdown`, `transform`) to see it used for real | +| https://github.com/stackql-registry/stackql-provider-utils | `@stackql/provider-utils` source: `src/providerdev/{split,normalize,analyze,generate}.js`, `src/docgen/` | +| https://github.com/stackql-registry/stackql-provider-clickhouse | the lean direct-archetype mould: fixed host, org-scoped server variable, mock integration suite, Makefile, smoke suite | +| https://github.com/stackql-registry/stackql-provider-supabase | direct archetype with a project-scoped server variable, query-endpoint `INSERT ... RETURNING`, request transforms, views-ready | +| https://github.com/stackql-registry/stackql-provider-github | direct archetype split by tag, Link-header pagination, the GraphQL merge (`provider-dev/source-graphql/`, `graphql_merge.mjs`) | +| https://github.com/stackql-registry/stackql-provider-openai | direct archetype with predecessor-inventory and residual-variant lowering scripts | +| https://github.com/stackql-registry/stackql-provider-confluent | provider views (`views/<service>/views.yaml`) | +| https://github.com/stackql-registry/stackql-provider-cloudflare | derived archetype: fork of the Stainless-generated Python SDK, build under `stackql_cloudflare/` | +| https://github.com/stackql-registry/stackql-provider-aws | derived archetype: fork of botocore, build under `stackql_aws_provider/`, purpose-built emitter, XML transforms, sigv4 | +| https://github.com/stackql/docusaurus-config | the shared Docusaurus configuration every microsite vendors at build time | + +`scripts/find_extension_examples.sh <key> [registry-clone-dir]` greps a registry clone for an extension key and prints the first shipped examples with context. diff --git a/.claude/skills/stackql-provider-development/references/repo-layout-and-makefile.md b/.claude/skills/stackql-provider-development/references/repo-layout-and-makefile.md new file mode 100644 index 0000000..3cfc9af --- /dev/null +++ b/.claude/skills/stackql-provider-development/references/repo-layout-and-makefile.md @@ -0,0 +1,28 @@ +# Repository layout and Makefile + +``` +Makefile # make help / build / test / smoke* / docs / website / all +bin/ # fetch-spec.sh, split.mjs, start-server.sh, stop-server.sh, server-status.sh, test-meta-routes.cjs +provider-dev/ + downloaded/ # pinned spec snapshot (or the SDK-derived spec) + config/ # spec_pin.json, service_names.json, servers.json, provider_config.json, + # endpoint_inventory.csv, all_services.csv + scripts/ # record_spec_pin, build_inventory, map_operations, pre_normalize, post_process, lib/spec_helpers + source/ # split + normalized service specs (committed) + openapi/src/<provider>/ # generated provider (committed) + docgen/provider-data/ # headerContent1.txt, headerContent2.txt +views/<service>/views.yaml # optional provider views +tests/ + offline_validation.mjs + integration/ # mock_<provider>_server.mjs, run_integration_tests.mjs, probe.mjs + smoke_test.py +website/ # Docusaurus microsite +.github/workflows/ # build-and-test.yml, prod-web-deploy.yml, test-web-deploy.yml +CLAUDE.md NOTES.md README.md SECURITY.md LICENSE .env.example +``` + +Makefile targets (bash shell, `.DEFAULT_GOAL := help`, `##` help comments): `deps`, `fetch-spec` (verify pin), `refresh-spec` (`--update`), `inventory`, `split`, `mappings` (rm CSV + analyze + map), `pre-normalize`, `normalize`, `generate` (rm output + generate + post-process), `post-process`, `build` (the chain), `test-offline`, `test-integration`, `test-meta` (start server; run; stop; preserve exit status), `test`, `venv`, `smoke`, `smoke-live`, `smoke-read-only`, `smoke-<gated-lifecycle>`, `smoke-cleanup`, `docs` (passes `--snake-case-aliases` and `--source-project $(SOURCE_PROJECT)`, the provider repository URL, `?=` so it can be overridden), `website`, `website-start`, `clean`, `all` = `deps build test docs website`. `make all` never needs credentials and never bills. The smoke targets source `.env` when present (`set -a; source <(tr -d '\r' < .env); set +a`). + +package.json scripts wrap the two CLI entry points through `node ./node_modules/@stackql/provider-utils/bin/provider-dev-utils.mjs <cmd>` and `docgen-utils.mjs generate-docs` (never `.bin` shims); pass flags after `--`. + +CLAUDE.md records the settled decisions and where the findings live; NOTES.md records the findings with evidence; README.md is the numbered build guide (steps 0-8) with counts that match the artifacts. diff --git a/.claude/skills/stackql-provider-development/references/request-response-shaping.md b/.claude/skills/stackql-provider-development/references/request-response-shaping.md new file mode 100644 index 0000000..ef1ab1e --- /dev/null +++ b/.claude/skills/stackql-provider-development/references/request-response-shaping.md @@ -0,0 +1,46 @@ +# Request and response shaping + +## Response shaping: objectKey, media types, transforms + +`response` block on a method: + +```yaml +response: + mediaType: application/json # content entry to type against + openAPIDocKey: '200' # which response code supplies the schema + objectKey: $.items # JSONPath to the row-bearing node ($.data.results, $.result.costs, $[*], XPath for XML) + overrideMediaType: application/json + schema_override: {$ref: '#/components/schemas/Wrapped'} + transform: {type: golang_template_text_v0.3.0, body: '...'} +``` + +- **Envelope arrays**: set `objectKey` (from the CSV for GET; in post-process for POST reads). +- **Bare arrays**: normalize + generate emit the wrap trio automatically (`objectKey: $.<wrapperKey>`, `overrideMediaType`, `schema_override`, and a text transform `{{- $wrapped := printf "{\"<key>\":%s}" . -}}{{- $wrapped -}}`). +- **Query-dependent rows** (a SQL/NRQL/log query endpoint whose keys depend on the statement): the newrelic posture - one row whose single column carries the array. Inject `{rows: array of object}` as the response schema in pre-normalize and attach the same wrap trio in post-process with `{"rows": ...}`; users address values with `json_extract(rows, '$[0].col')`. Proven to flow through `INSERT ... RETURNING rows`. +- **Non-JSON responses** (octet-stream, PDF, text): `mediaType: <wire type>`, `overrideMediaType: application/json`, `transform: {type: golang_template_text_v0.3.0, body: '[{"contents": {{ toJson . }}}]'}` and a matching `schema_override`. Without `overrideMediaType` + `schema_override` the transform never fires. +- **XML** (AWS-style): `transform.type: schema_driven_xml_v0.1.0` (objectKey is the list property; it reads the info-level `x-protocol: query|ec2|rest-xml` hint to skip the right envelope), or the `golang_template_mxj_*` family; `request.xmlTransform` controls escaping and `request.xmlDeclaration` / `xmlRootAnnotation` wrap the body. +- Transform families: `golang_template_text_*` (raw payload string as `.`), `golang_template_json_*` (parsed first), `golang_template_mxj_*` (XML parsed), `schema_driven_xml_*`. Versions `v0.1.0`/`v0.3.0`; use `v0.3.0` for new work. There is no jsonnet transform. Template functions (`pkg/stream_transform`): `separator`, `jsonMapFromString`, `getXPath`, `getXPathAllOuter`, `getRegexpFirstMatch`, `getRegexpAllMatches`, `safeIndex`, `toBool`, `toInt`, and from `v0.2.0` `toJson`, `kindOf`, `plus1`; `printf "%q"` and the rest of Go's text/template are available. +- **String-typed fields**: `x-stackQL-stringOnly: true` on a schema property keeps a string value verbatim on the way in (a JSON-looking string such as a policy document or serialized config is not parsed into an object, `shims.go`) and marks the path as stringified on the way out. Set it in pre-normalize. + +Skip a non-JSON endpoint unless the transform yields a genuinely useful row (a download URL, a rendered document as one text column). + +## Request shaping: naive bodies, nativeCasing, request transforms + +- `config.requestBodyTranslate.algorithm: naive` (from `--naive-req-body-translate`): body properties are bare columns. Without it, columns are `data__<name>`. `naive_<path>` takes the suffix as a path into the request-body schema (`FindByPath`, `operation_store.go`) and exposes the properties of the object at that path as the columns (with `nativeCasing` their snake forms too); nothing in the body assembly re-nests them under `<path>` on the wire, so for a `{parent: {...}}` body prove the wire shape against the mock and pair it with a request transform if the API needs the nesting. +- **Bare-array bodies** (`POST /secrets` taking `[{name, value}]`, `DELETE` taking `["name"]`): rewrite the body schema to the single-item object in pre-normalize and attach `request.transform` in post-process. The transform input is the marshalled JSON body string: text template `'[{{ . }}]'` wraps an object into an array; JSON template `'[{{ toJson .name }}]'` extracts a field. One item per statement - say so in the docs. +- **DELETE with a body**: add the naive config in post-process; the attributes are then WHERE keys (`DELETE FROM t WHERE ref = ... AND ipv4_addresses = '[...]'`). +- **Dual-declared parameters** (the same attribute as a deprecated query param and a body property): remove the query copies in pre-normalize or the body arrives empty. +- `request.mediaType` selects the request content type when several are declared. `request.base` is a JSON object merged **under** the statement's body attributes (the columns overwrite its keys) and sent alone when the statement supplies none; `request.default` is the body sent only when the statement supplies no body attributes at all (`request.go`). `request.required: [attr, ...]` marks body attributes required at the method level without editing the schema (`operation_store.go`) - the engine-native way to force INSERT columns. `request.projection_map` / `response.projection_map` (`alias: wireName`) feed the address-space aliasing; prefer `x-stackQL-alias` on the parameter or property. + +Engine typing facts (stackql v0.10.6xx): INSERT marshals typed JSON (booleans, numbers); EXEC parses JSON-shaped strings into arrays/objects but cannot carry a boolean at all; **UPDATE marshals every SET value as a string** (`SET enabled = 'true'` -> `"enabled": "true"`; bare `true` is a parser error, `json('true')` serialises the AST). Document it and make the live smoke test the coercion probe. Parser keywords to quote as columns: `"database"`. + +## snake_case surface + +Two halves, both needed when the wire is camelCase (or mixed): + +1. `snake_case_aliases: true` in the provider config - output columns display as `casing.ToSnake(wireKey)` while extraction uses the wire key. Nested JSON keeps wire casing (`json_extract(config, '$.dbAllowedCidrs')`). +2. `request.nativeCasing: camel` (also `pascal`, `kebab`, `snake`) on each method whose **parameters or body properties** are camelCase - snake SQL keys are converted back and re-resolved. Set it per method in post-process (provider-utils has no flag for it). Do not set it on methods whose wire is snake_case; do set it on body-less GETs with camelCase query parameters. + +Then `generate-docs --snake-case-aliases` so the docs show the same surface. Renaming a column between provider versions (`instanceId` -> `instance_id`) is an accepted breaking change; renaming a resource or moving a method is not. + +Watch for collisions: a schema carrying both `connection_string` and `connectionString` produces two identical snake columns and a DDL error at query time - drop the camel duplicate in pre-normalize. diff --git a/.claude/skills/stackql-provider-development/references/scoping-and-auth.md b/.claude/skills/stackql-provider-development/references/scoping-and-auth.md new file mode 100644 index 0000000..6f2e828 --- /dev/null +++ b/.claude/skills/stackql-provider-development/references/scoping-and-auth.md @@ -0,0 +1,53 @@ +# Scoping, authentication and provider config + +## Scoping: server variables and x-stackQL-envVar + +`x-stackQL-envVar` is valid **only on an OpenAPI server variable** (`servers[].variables.<name>`). Semantics: when the named env var resolves, the variable is not required (it disappears from `SHOW METHODS`); a WHERE value beats the env var beats `default`. Use it for the tenant/deployment/org/project parameter that scopes most of the API: + +```json +[{"url": "https://api.example.com/v1/projects/{ref}", + "variables": {"ref": {"description": "...", "x-stackQL-envVar": "EXAMPLE_PROJECT_ID"}}}] +``` + +Procedure (the clickhouse/supabase mould): the split strips the prefix (`/v1/projects/{ref}`) from every path under it and drops the path parameter; paths outside the prefix keep their full key and `post_process.mjs` pins them back to the bare base with a path-level `servers: [{url: https://api.example.com}]` (any-sdk resolves servers operation -> path item -> document; normalize strips path-level servers, hence post-process). Name the variable what users write in WHERE (`ref`, `organization_id`); name the env var to match the vendor's Terraform provider or CLI (`DATABRICKS_DEPLOYMENT_NAME`, `OKTA_ORG_NAME`, `CLICKHOUSE_ORG_ID`, `SUPABASE_PROJECT_ID`) - never a `TF_VAR_` name. + +Known consequence: rows of the scoped resources do not echo the variable, so a JOIN cannot fan out on it (`ON a.ref = p.ref` matches nothing; the inner read runs once for the environment's value). Teach list-then-per-key reads composed with `UNION ALL`. + +Authentication env vars follow the same parity rule: use the Terraform provider's variable names (`SUPABASE_ACCESS_TOKEN`, `CLOUDFLARE_API_TOKEN`, `GITHUB_TOKEN`, `DIGITALOCEAN_TOKEN`), unless Terraform only offers `TF_VAR_*`, in which case use the vendor CLI's names. + +## Authentication and other provider config + +`config` in `provider.yaml` (from `--provider-config`) and `x-stackQL-config` at service/resource/method level share one schema with `additionalProperties: false` - a typo fails validation. Allowed keys: `auth`, `queryParamTranspose`, `requestTranslate`, `requestBodyTranslate`, `pagination`, `variations`, `views`, `sqlExternalTables`, `queryParamPushdown`, `retry`, `minStackQLVersion`, `snake_case_aliases`. + +**`auth.type`** and the fields each takes (env var names follow the vendor's Terraform provider unless it only offers `TF_VAR_*`, then the vendor CLI): + +| type | fields | example | +|---|---|---| +| `bearer` | `credentialsenvvar` | `{type: bearer, credentialsenvvar: CLOUDFLARE_API_TOKEN}` | +| `api_key` | `credentialsenvvar`, `valuePrefix` (the scheme word, with its trailing space), optional `location: header|query`, `name` | `{type: api_key, credentialsenvvar: OKTA_API_TOKEN, valuePrefix: 'SSWS '}` | +| `basic` | `username_var`, `password_var` (or `username`/`password` literals; `api_key_var`/`api_secret_var` for key-pair APIs) | `{type: basic, username_var: CLICKHOUSE_CLOUD_API_KEY, password_var: CLICKHOUSE_CLOUD_API_SECRET}` | +| `custom` | `location: header|query`, `name`, `credentialsenvvar`, optional `valuePrefix`; chain a second credential with `successor: {type: custom, ...}` | datadog: `DD-API-KEY` + successor `DD-APPLICATION-KEY` | +| `oauth2` (client credentials only) | `client_id_env_var`, `client_secret_env_var`, `grant_type: client_credentials`, `token_url` (may template `{{ .__env__VAR }}`), `scopes`, `auth_style` | databricks_account | +| `service_account` | `credentialsenvvar` (JSON key contents) or `credentialsfilepath` / `credentialsfilepathenvvar`, `scopes`, `sub` | google, firebase | +| `aws_signing_v4` / `aws_assume_role` | `credentialsenvvar` (secret), `keyIDenvvar` (key id) | aws | +| `azure_default` | none | azure | +| `oci_signing_v1` | `tenancy_ocid_envvar`, `user_ocid_envvar`, `oci_fingerprint_envvar`, `oci_private_key_envvar` / `oci_private_key_path_envvar`, `oci_passphrase_envvar`, `oci_region_envvar` | oci | +| `null_auth` | none (the literal is `null_auth`) | k8s (auth handled by the runtime) | +| `interactive` | none (`gcloud auth login` style) | google | + +A user can override at runtime with `--auth='{"<provider>": {...}}'`; document that once. + +Two structs, two key sets (any-sdk): the provider document's `auth:` block is `internal/anysdk/auth_dto.go`; the runtime `--auth` JSON is `pkg/dto/auth_ctx.go`. They overlap on everything in the table above, but the AWS assume-role keys (`aws_role_arn`, `aws_role_arn_env_var`, `aws_role_session_name`, `aws_role_external_id`, `aws_role_external_id_env_var`, `aws_sts_region`, `aws_sts_endpoint`, `aws_role_duration_seconds`) exist **only** on the runtime struct - a provider cannot pin them in its document. Trap: the AWS account-id env var key is `account_id_var` in YAML (the JSON tag is `account_id_env_var`). The doc-level OCI keys are `tenancy_ocid_envvar`, `user_ocid_envvar`, `oci_fingerprint_envvar`, `oci_private_key_envvar`, `oci_private_key_path_envvar`, `oci_passphrase_envvar`, `oci_region_envvar` (the runtime struct uses `_env_var` suffixes without the `oci_` prefix). + +**Other provider-level keys** + +- `snake_case_aliases: true` - request-response-shaping.md. +- `retry` - `{algorithm: exponential, max_attempts: 3, initial_delay_ms: 500, max_delay_ms: 10000, multiplier: 2.0, jitter_fraction: 0, retryable_methods: [GET, HEAD], retryable_conditions: {status_codes: [408, 429, 502, 503, 504]}}` are the defaults (five-level inheritance, whole-block). Set it only when the vendor's rate-limit contract calls for it; the test harnesses still treat a 429 as a harness bug. +- `minStackQLVersion` - set when the provider relies on an engine feature with a known landing version (e.g. `x-stackQL-envVar` needs >= v0.10.601); record the reason in NOTES.md. +- `variations.isObjectSchemaImplicitlyUnioned: true` (service or provider level only) - flattens `properties` + `allOf` unions for autorest/NestJS-composed DTOs that would otherwise surface empty column sets. +- `queryParamTranspose.algorithm: AWSCanonical` and `requestTranslate.algorithm: get_query_to_post_form_utf_8` - the AWS query-protocol pair (typed GET form translated to a signed POST form); `drop_double_underscore_params` for providers that still use `data__` columns on some methods. +- `sqlExternalTables` - external table declarations (`catalogName`, `schemaName`, `name`, `columns: [{name, type, oid, width, precision}]`) registered by stackql at load; rarely needed. +- Method-level keys that exist but a generated provider almost never needs: `serviceName` (overrides the service a method reports), `inverse` (`sqlVerb: {$ref: <method>}` plus `tokens: {<param>: {key, location}}` extracted from the response - the rollback hook stackql's HTTP stream consumes), and `protocolType: local_templated` on a provider or providerService (an OpenAPI document plus a `resources` block of templated local commands, `cicd/schema-definitions/local-templated.service-resources.schema.json` - the shape for CLI-backed providers, out of scope here). +- Async/long-running operations: any-sdk has no polling; `response.async_schema_override` / `asyncOverrideMediaType` only select the operation-handle schema. Model LROs as an EXEC that returns the handle plus a `get` on the status resource, and let the smoke test poll (`wait_for` with a timeout). + +Vendor labels and rate limits belong in the docs header (Rate limit, Beta endpoints sections) and in the harness pacing constant, not in config. diff --git a/.claude/skills/stackql-provider-development/references/testing.md b/.claude/skills/stackql-provider-development/references/testing.md new file mode 100644 index 0000000..6359d5b --- /dev/null +++ b/.claude/skills/stackql-provider-development/references/testing.md @@ -0,0 +1,11 @@ +# Tests: three credential-free layers, then live + +Run in this order after every regeneration; all must pass before commit. + +**Offline validation** (`tests/offline_validation.mjs`): spawns `stackql exec` against the local file registry `{"url": "file://<abs>/provider-dev/openapi", "localDocRoot": "<abs>/provider-dev/openapi", "verifyConfig": {"nopVerify": true}}` with `--output json`. Assert: `SHOW SERVICES` count and names; `SHOW RESOURCES` per service (exact sorted lists); `SHOW METHODS` verbs and required params on representative resources; env-var behaviour (required param present with the variable unset, absent with it set); `DESCRIBE EXTENDED` columns (snake aliases present, camel names absent, wide flat configs, wrapped arrays, objectKey projections); that the flagship binding exists. Note `--output json` renders scalars as strings. + +**Integration** (`tests/integration/`): an in-process `http` mock of the API serving the wire shapes the spec declares (bare arrays, envelopes, empty 2xx, the vendor's error body), enforcing the auth header (401 otherwise), echoing rate-limit headers, with mutable in-memory stores so lifecycles round-trip, and a request log (method, path, query, headers, body). The runner copies `provider-dev/openapi` to a gitignored `.registry-tmp`, rewrites every `servers[].url` (document and path-level) to the mock, preserves variables and `x-stackQL-envVar`, and spawns stackql **asynchronously** (a synchronous wait deadlocks the mock on the same event loop). Assert row-level results and wire calls per archetype: list wrap + single read, auth header + wrong-token 401, env-var resolution vs WHERE override vs unset failure, root-path overrides, INSERT/UPDATE/DELETE lifecycles with their exact bodies, every EXEC action, every transform (bare-array bodies, non-JSON responses), snake keys resolving to camel wire names, pagination over a two-page fixture, query-param pushdown, objectKey projections, the flagship, a 404. Keep `probe.mjs` (start mock, run ad-hoc SQL, print stdout/stderr and wire calls) - it is how bindings get debugged. + +**Meta-route** (`bin/test-meta-routes.cjs` over `bin/start-server.sh` / `stop-server.sh`, pgwire-lite on port 5444, host `127.0.0.1`): walks every service, resource and method with `SHOW`/`DESCRIBE`. A resource with no columns or a service with no resources fails it - fix the mapping (skip-code, or inject a schema), never the test. + +**Smoke** (`tests/smoke_test.py`, pystackql): `--live` switches from the local file registry to the published provider (post-publish verification); `--read-only`, `--cleanup-only`, and a flag for any gated expensive lifecycle. Design it from the vendor's Terraform provider examples - the resources and mutations people actually use - with a budget under $5 (aim under $1): read smokes across the surface, cheap self-cleaning write lifecycles (INSERT / SELECT / UPDATE / DELETE of a secret, key, small object), a config toggle-and-restore (which doubles as the UPDATE string-coercion probe), the flagship round trip, and the expensive create/delete only behind its flag. Serial pacing under the vendor's limit (`INTER_REQUEST_DELAY_S`); a 429 fails the run. Sweep `stackql-smoke-*` breadcrumbs first. Credentials from the environment exactly as the provider reads them; the harness upgrades pystackql's managed binary when older than the minimum the provider needs. Print a PASS/FAIL summary and exit non-zero on any failure. diff --git a/.claude/skills/stackql-provider-development/references/uplift-checklist.md b/.claude/skills/stackql-provider-development/references/uplift-checklist.md new file mode 100644 index 0000000..4b2c109 --- /dev/null +++ b/.claude/skills/stackql-provider-development/references/uplift-checklist.md @@ -0,0 +1,10 @@ +# Uplifting an existing provider + +1. Bump `@stackql/provider-utils` / `@stackql/pgwire-lite` / `@apidevtools/swagger-parser` / Docusaurus to latest (`js-yaml` stays on 4.x - see the SKILL.md ground rules); Node >= 22.19 in `engines`, the Makefile header, the README prerequisites and every `setup-node` step; `npm install`. provider-utils >= 0.7.11: add `SOURCE_PROJECT ?= <the repository URL>` and `--source-project $(SOURCE_PROJECT)` to the `docs` target (docs-and-ci.md). Add `SECURITY.md` and `LICENSE` from the template when absent. +2. `make fetch-spec`; if drift, review the diff, extend fix classes, `make refresh-spec`, record in NOTES.md. +3. Re-run the pipeline; diff `all_services.csv` - every moved method or renamed resource is a decision to make explicitly (keep the old name via a rule unless the rename is worth the break). +4. Add what is missing against this list: env-var scoping, naive bodies, snake surface, pagination, pushdown, transforms, objectKeys, lifecycle EXECs attached to their resources, views, GraphQL merge, skip codes for what is not mappable. +5. Convert ad-hoc scripts into Makefile targets; add `make all`. +6. Write or extend the three test layers until they cover every archetype present; add the smoke suite with `--live`. +7. Refresh CLAUDE.md, NOTES.md, README.md, `.env.example`, the docs headers; bring `website/sidebars.js` and the `.sidebar-back-link` rules in `website/src/css/global.css` in line with the template (the `Back to StackQL Docs` link, see docs-and-ci.md); `make docs && make website`. +8. `make all` green from a clean checkout before handing over. diff --git a/.claude/skills/stackql-provider-development/scripts/find_extension_examples.sh b/.claude/skills/stackql-provider-development/scripts/find_extension_examples.sh new file mode 100644 index 0000000..2154f0b --- /dev/null +++ b/.claude/skills/stackql-provider-development/scripts/find_extension_examples.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env bash + +# Find shipped examples of a StackQL/any-sdk extension key in a clone of +# https://github.com/stackql/stackql-provider-registry (or any directory of +# provider YAMLs). Prints, per provider, the first few matches with context +# so the exact YAML shape can be copied rather than guessed. +# +# Usage: find_extension_examples.sh <key> [registry-dir] [max-per-provider] +# find_extension_examples.sh nativeCasing ../stackql-provider-registry +# find_extension_examples.sh 'x-stackQL-graphQL' ../stackql-provider-registry 2 +# find_extension_examples.sh 'queryParamPushdown' . 5 +# +# Keys worth searching: objectKey, nativeCasing, snake_case_aliases, +# x-stackQL-envVar, x-stackQL-graphQL, x-stackQL-config, pagination, +# requestToken, queryParamPushdown, 'transform:', schema_override, +# overrideMediaType, requestBodyTranslate, 'views:', 'auth:', retry. + +set -euo pipefail + +KEY="${1:-}" +DIR="${2:-.}" +MAX="${3:-3}" +if [ -z "$KEY" ]; then + sed -n '3,20p' "$0" + exit 2 +fi +if [ ! -d "$DIR" ]; then + echo "not a directory: $DIR" >&2 + exit 2 +fi + +# providers/src/<provider>/... in a registry clone; otherwise group by top-level dir +if [ -d "$DIR/providers/src" ]; then + BASE="$DIR/providers/src" +else + BASE="$DIR" +fi + +found=0 +for pdir in "$BASE"/*/; do + provider="$(basename "$pdir")" + matches="$(grep -rn --include='*.yaml' --include='*.yml' -F -- "$KEY" "$pdir" 2>/dev/null | head -n "$MAX" || true)" + [ -z "$matches" ] && continue + total="$(grep -rl --include='*.yaml' --include='*.yml' -F -- "$KEY" "$pdir" 2>/dev/null | wc -l | tr -d ' ')" + echo "== $provider ($total file(s))" + while IFS= read -r line; do + file="${line%%:*}" + rest="${line#*:}" + lineno="${rest%%:*}" + echo "-- ${file#"$BASE"/}:$lineno" + sed -n "$((lineno > 3 ? lineno - 3 : 1)),$((lineno + 8))p" "$file" | sed 's/^/ /' + done <<< "$matches" + found=$((found + 1)) +done +if [ "$found" -eq 0 ]; then + echo "no matches for '$KEY' under $BASE" + exit 1 +fi diff --git a/.claude/skills/stackql-provider-development/scripts/spec_diff.mjs b/.claude/skills/stackql-provider-development/scripts/spec_diff.mjs new file mode 100644 index 0000000..6dea6ca --- /dev/null +++ b/.claude/skills/stackql-provider-development/scripts/spec_diff.mjs @@ -0,0 +1,77 @@ +#!/usr/bin/env node + +// Diff two OpenAPI documents (JSON or YAML) at the level that matters for a +// provider refresh: operations added / removed / renamed (operationId), +// schemas added / removed / changed, and a scan for the JSON Schema +// 2019-09/2020-12 constructs that need a deterministic fix class before +// swagger-parser validates a 3.0 document. Read-only; prints a summary to +// paste into NOTES.md. +// +// Usage: node spec_diff.mjs <pinned-spec> <fetched-spec> +// e.g. node spec_diff.mjs provider-dev/downloaded/api.json /tmp/api.json + +import fs from 'fs'; + +const [oldPath, newPath] = process.argv.slice(2); +if (!oldPath || !newPath) { + console.error('usage: node spec_diff.mjs <pinned-spec> <fetched-spec>'); + process.exit(2); +} + +async function load(p) { + const text = fs.readFileSync(p, 'utf8'); + if (/\.ya?ml$/i.test(p)) { + const yaml = await import('js-yaml').catch(() => null); + if (!yaml) throw new Error('js-yaml is needed to read YAML specs (npm i js-yaml)'); + return yaml.load(text); + } + return JSON.parse(text); +} + +const VERBS = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options']; +const ops = (s) => { + const m = new Map(); + for (const [p, item] of Object.entries(s.paths || {})) { + for (const v of VERBS) if (item?.[v]) m.set(`${v.toUpperCase()} ${p}`, item[v].operationId || ''); + } + return m; +}; + +const a = await load(oldPath); +const b = await load(newPath); +const A = ops(a), B = ops(b); +console.log(`operations: ${A.size} -> ${B.size}; openapi ${a.openapi || a.swagger} -> ${b.openapi || b.swagger}; version ${a.info?.version} -> ${b.info?.version}`); +const added = [...B].filter(([k]) => !A.has(k)); +const removed = [...A].filter(([k]) => !B.has(k)); +const renamed = [...B].filter(([k, id]) => A.has(k) && A.get(k) !== id); +const list = (title, rows, fmt) => { console.log(`${title} (${rows.length})`); for (const r of rows) console.log(` ${fmt(r)}`); }; +list('ADDED', added, ([k, id]) => `${k} ${id}`); +list('REMOVED', removed, ([k, id]) => `${k} ${id}`); +list('RENAMED operationId', renamed, ([k, id]) => `${k} ${A.get(k)} -> ${id}`); + +const sa = a.components?.schemas || {}, sb = b.components?.schemas || {}; +const ka = new Set(Object.keys(sa)), kb = new Set(Object.keys(sb)); +const changed = [...kb].filter((k) => ka.has(k) && JSON.stringify(sa[k]) !== JSON.stringify(sb[k])); +console.log(`schemas: ${ka.size} -> ${kb.size}; added ${[...kb].filter((k) => !ka.has(k)).join(', ') || '-'}; removed ${[...ka].filter((k) => !kb.has(k)).join(', ') || '-'}`); +console.log(`changed schemas (${changed.length}): ${changed.join(', ') || '-'}`); + +// constructs that OpenAPI 3.0 validation rejects - each needs a fix class +const counts = {}; +const bump = (k) => { counts[k] = (counts[k] || 0) + 1; }; +const walk = (n) => { + if (Array.isArray(n)) { n.forEach(walk); return; } + if (!n || typeof n !== 'object') return; + if (n.type === 'null') bump('type: null (-> nullable: true)'); + if (Array.isArray(n.type)) bump('type array (3.1 -> single type + nullable)'); + if (typeof n.exclusiveMinimum === 'number' || typeof n.exclusiveMaximum === 'number') bump('numeric exclusiveMinimum/Maximum (-> minimum/maximum + boolean)'); + if ('propertyNames' in n) bump('propertyNames (remove)'); + if ('const' in n) bump('const (-> enum)'); + if (typeof n.$schema === 'string') bump('$schema key (remove)'); + if ('hideDefinitions' in n) bump('hideDefinitions (vendor artifact, remove)'); + if ('unevaluatedProperties' in n || 'prefixItems' in n || 'dependentRequired' in n) bump('2020-12 keyword (unevaluatedProperties/prefixItems/dependentRequired)'); + for (const v of Object.values(n)) walk(v); +}; +walk(b); +console.log('fix-class candidates in the fetched spec:'); +if (Object.keys(counts).length === 0) console.log(' none'); +for (const [k, v] of Object.entries(counts)) console.log(` ${String(v).padStart(4)} ${k}`); diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..cf90a27 --- /dev/null +++ b/.env.example @@ -0,0 +1,37 @@ +# Live smoke-test credentials (copy to .env - gitignored - and fill in). +# `make smoke` and the other smoke targets source .env when present. Never +# point this at a production organization. +# +# The variable names are the ones the NVIDIA Terraform provider +# (NVIDIA/terraform-provider-ngc) reads, so one environment serves both. + +# NGC Personal API Key (NGC console -> Setup -> Generate Personal API Key). +# Service scopes needed: Private Registry for the registry service, and +# Cloud Functions at the ORGANIZATION level for the nvcf_* services (a key +# with a team-level Cloud Functions role does not work with NVCF - NVIDIA's +# own documentation warns about this). The provider sends it as +# `Authorization: Bearer`. To check a key before a run (the same call the +# NGC CLI makes; a valid key answers 200 with its orgName and products): +# curl -s -X POST --data-urlencode "credentials=$NGC_API_KEY" \ +# https://api.ngc.nvidia.com/v3/keys/get-caller-info +NGC_API_KEY=nvapi-... + +# NGC organization name (the org id shown under Organization -> Setup, e.g. +# 0123456789ab). Resolves the org_name server variable so org-scoped queries +# (registry, orgs) need no WHERE org_name clause; the smoke suite runs +# against this org. +NGC_ORG=0123456789ab + +# Optional: a team in the org. Only used by the smoke suite to exercise the +# *_by_team registry methods; leave unset to skip them. +# NGC_TEAM= + +# Optional, `make smoke-nvcf` only: the container image the gated deploy +# lifecycle deploys (an image in this org's private registry - the NVCF +# echo sample or any small HTTP container). Without it the deploy step is +# skipped with a notice; the undeployed function lifecycle (free) still +# runs whenever Cloud Functions is enabled for the org. GPU minutes on the +# deployed function are billable - the lifecycle uses the smallest instance +# type of the first cluster group, stays well under $1, and always tears +# down. +# NVCF_SMOKE_CONTAINER_IMAGE=nvcr.io/0123456789ab/echo:latest diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..6817939 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,10 @@ +# Normalize line endings: everything text is LF in the repo and on checkout +# (the shell scripts and node scripts run under WSL/Linux CI). +* text=auto eol=lf +*.png binary +*.ico binary +*.jpg binary +*.gif binary +*.woff binary +*.woff2 binary +*.whl binary diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..0d88430 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,38 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '[BUG]' +labels: 'bug' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + +**Smartphone (please complete the following information):** + - Device: [e.g. iPhone6] + - OS: [e.g. iOS8.1] + - Browser [e.g. stock browser, safari] + - Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..9d33cbe --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: "[FEATURE]" +labels: enhancement +assignees: '' + +--- + +**Feature Description** +A clear and concise description of what you want to happen. + +**Example(s)** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Possible Approaches or Libraries to Consider** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md new file mode 100644 index 0000000..b72dd78 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question.md @@ -0,0 +1,15 @@ +--- +name: Question +about: Pose a question to the StackQL team +title: "[QUESTION]" +labels: question +assignees: '' + +--- + + +## Question + +This channel is an opportunity to ask ad-hoc questions to the `stackql` team. This channel is in lieu of an official platform for ongoing discussions and questions. Please ask your question :) + +**Note**: Questions over github issues will be deprecated and retired once we settle on a platform / process ongoing. \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..8fd35fd --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,14 @@ +## Description + +Please include a summary of the changes and the related issue(s). Please also include relevant motivation and context. + +## Checklist + +Please make sure that the following criteria are met: + +- [ ] The PR title is descriptive. +- [ ] I have starred the [stackql](https://github.com/stackql/stackql) repo and this repo. + +## Additional Notes + +Add any additional information or context that might help the reviewers. diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 0000000..84f6bac --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,3 @@ +# GitHub Copilot entry point + +Read and follow the repository's canonical guidance in [AGENTS.md](../AGENTS.md) for all work in this repository. diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml new file mode 100644 index 0000000..338c4ee --- /dev/null +++ b/.github/workflows/build-and-test.yml @@ -0,0 +1,220 @@ +name: build-and-test + +# Build the nvidia provider from the committed spec pins and run every +# credential-free test layer on each push / PR; the live smoke suite runs +# only where the NGC secrets are configured (never the NVCF deploy +# lifecycle - that is `make smoke-nvcf`, run deliberately); a scheduled +# upstream-drift job re-downloads the three upstream inputs (the NVCF spec, +# the NGC API definitions, the ngcsdk wheel), diffs them against the pins, +# checks the NGC deprecation schedule page for changes, and opens an issue +# when anything moves (NVIDIA serves unversioned definitions, so drift is +# expected and must be reviewed, never silent). + +on: + push: + branches: [main, 'feature/**'] + paths-ignore: ['website/**'] + pull_request: + branches: [main] + paths-ignore: ['website/**'] + schedule: + - cron: '17 3 * * 1' # weekly upstream drift check (Monday 03:17 UTC) + workflow_dispatch: + +jobs: + build-and-test: + if: github.event_name != 'schedule' + runs-on: ubuntu-latest + # Consumed by the smoke job's `if`: a job-level condition cannot read + # secrets or another job's step outputs directly, so both gates are + # computed here and exported. + outputs: + pinned: ${{ steps.pin.outputs.pinned }} + smoke_creds: ${{ steps.creds.outputs.present }} + steps: + - uses: actions/checkout@v7 + + - uses: actions/setup-node@v7 + with: + node-version: 22 + cache: npm + + - name: Install dependencies + run: npm ci + + # puts the latest stackql on PATH; bin/start-server.sh and the test + # runners resolve it from there + - name: Install stackql + uses: stackql/setup-stackql@v2 + + - name: stackql version + run: stackql --version + + # The pins are written by `make refresh-spec`; without them there is + # nothing to build or test. + - name: Detect whether the specs are pinned + id: pin + run: | + if [ -f provider-dev/config/spec_pin.json ]; then + echo "pinned=true" >> "$GITHUB_OUTPUT" + else + echo "pinned=false" >> "$GITHUB_OUTPUT" + echo "::notice title=No pinned specs::provider-dev/config/spec_pin.json does not exist - the build, drift check, tests and docs steps were skipped. Run 'make refresh-spec' to pin the upstream inputs." + fi + + # Only presence is recorded, never the value. The notice is raised only + # where the smoke job would otherwise have run (not a pull request), so + # PRs from forks stay quiet. + - name: Detect whether the smoke credentials are configured + id: creds + env: + NGC_API_KEY: ${{ secrets.NGC_API_KEY }} + run: | + if [ -n "$NGC_API_KEY" ]; then + echo "present=true" >> "$GITHUB_OUTPUT" + else + echo "present=false" >> "$GITHUB_OUTPUT" + if [ "${{ steps.pin.outputs.pinned }}" = "true" ] && [ "$GITHUB_EVENT_NAME" != "pull_request" ]; then + echo "::notice title=Live smoke suite skipped::NGC_API_KEY / NGC_ORG are not configured - the smoke job was skipped. Credential-free coverage still ran via the mock-server integration suite." + fi + fi + + # Drift is reported, not fatal, here: the committed pins are what gets + # built and tested (fetch-spec refreshes provider-dev/downloaded in + # place, so the pinned inputs are restored after a failure). The + # upstream-drift job below opens the review issue. + - name: Verify the pinned inputs against upstream (warns on drift) + if: steps.pin.outputs.pinned == 'true' + run: | + if ! make fetch-spec; then + echo "::warning title=Upstream drift::One or more upstream inputs no longer match provider-dev/config/spec_pin.json - run 'make upgrade' and review the diff. Building from the committed pins." + git checkout -- provider-dev/downloaded + fi + + - name: Build provider from the committed pins (pin check, clean, inventory, split, mappings, normalize, generate, post-process) + if: steps.pin.outputs.pinned == 'true' + run: make build + + - name: Fail on uncommitted generation drift + if: steps.pin.outputs.pinned == 'true' + run: | + git add -N . + if ! git diff --quiet -- provider-dev/openapi provider-dev/config provider-dev/source provider-dev/downloaded; then + echo "Generated output differs from the committed artifacts - run 'make build' and commit (a diff in provider-dev/config/all_services.csv is a mapping change: review it as a breaking-change candidate)." + git diff --stat -- provider-dev/openapi provider-dev/config provider-dev/source provider-dev/downloaded + exit 1 + fi + + - name: Offline validation + if: steps.pin.outputs.pinned == 'true' + run: make test-offline + + - name: Integration tests (mock NGC + NVCF) + if: steps.pin.outputs.pinned == 'true' + run: make test-integration + + - name: Meta-route tests + if: steps.pin.outputs.pinned == 'true' + run: make test-meta + + - name: Generate docs (sanity - the site build runs on the web workflows) + if: steps.pin.outputs.pinned == 'true' + run: make docs + + smoke: + # Live smoke suite against the dedicated test organization. Skipped at + # the job level, so no runner is consumed, on pull requests (secrets are + # not available to forks), on the schedule, until the specs are pinned + # and until the secrets are configured; the last two arrive as + # build-and-test outputs. Never the NVCF deploy lifecycle - trigger that + # deliberately with `make smoke-nvcf`. + runs-on: ubuntu-latest + needs: build-and-test + if: >- + github.event_name != 'pull_request' && + github.event_name != 'schedule' && + needs.build-and-test.outputs.pinned == 'true' && + needs.build-and-test.outputs.smoke_creds == 'true' + env: + NGC_API_KEY: ${{ secrets.NGC_API_KEY }} + NGC_ORG: ${{ secrets.NGC_ORG }} + NGC_TEAM: ${{ secrets.NGC_TEAM }} + steps: + - uses: actions/checkout@v7 + + - uses: actions/setup-node@v7 + with: + node-version: 22 + cache: npm + + - uses: actions/setup-python@v7 + with: + python-version: '3.12' + + - name: Install dependencies + run: npm ci + + - name: Live smoke suite (catalog + org/registry reads, cheap write lifecycles, NVCF reads where enabled) + run: make smoke + + upstream-drift: + # Re-download every upstream input and diff against the pins on a + # schedule and on demand; check the NGC deprecation schedule page for + # changes; open a labelled issue when anything moves. + runs-on: ubuntu-latest + if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' + permissions: + contents: read + issues: write + steps: + - uses: actions/checkout@v7 + + - uses: actions/setup-node@v7 + with: + node-version: 22 + cache: npm + + - name: Install dependencies + run: npm ci + + - name: Fetch upstream inputs and compare against the pins + id: drift + run: | + set +e + make fetch-spec > fetch.log 2>&1 + rc=$? + set -e + cat fetch.log + if [ "$rc" -eq 0 ]; then + echo "drift=false" >> "$GITHUB_OUTPUT" + else + echo "drift=true" >> "$GITHUB_OUTPUT" + # the refreshed downloads are in the working tree; materialise the diff for the issue body + git diff --stat -- provider-dev/downloaded > drift.txt || true + cat drift.txt + fi + + - name: Check the NGC deprecation schedule page + id: deprecation + run: | + node provider-dev/scripts/check_deprecation_page.mjs > deprecation.log 2>&1 || echo "changed=true" >> "$GITHUB_OUTPUT" + cat deprecation.log + + - name: Report drift + if: steps.drift.outputs.drift == 'true' || steps.deprecation.outputs.changed == 'true' + uses: actions/github-script@v9 + with: + script: | + const fs = require('fs'); + const stat = fs.existsSync('drift.txt') ? fs.readFileSync('drift.txt', 'utf8') : ''; + const dep = fs.existsSync('deprecation.log') ? fs.readFileSync('deprecation.log', 'utf8') : ''; + const title = 'NVIDIA NGC / NVCF upstream drift detected'; + const body = 'One or more upstream inputs no longer match the pins in provider-dev/config/spec_pin.json, or the NGC deprecation schedule page changed.\n\nSpec drift:\n```\n' + (stat || '(none)') + '\n```\nDeprecation page:\n```\n' + dep + '\n```\nRun `make upgrade` (refresh-spec, build, test, docs, website), review the generated diff - new or removed operations, mapping changes in all_services.csv, new deprecation families in build_inventory.mjs - update NOTES.md, and commit.'; + await core.summary.addHeading(title).addCodeBlock(stat + '\n' + dep).write(); + const { data: issues } = await github.rest.issues.listForRepo({ + owner: context.repo.owner, repo: context.repo.repo, state: 'open', labels: 'upstream-drift' + }); + if (issues.some(i => i.title === title)) return; + await github.rest.issues.create({ + owner: context.repo.owner, repo: context.repo.repo, title, body, labels: ['upstream-drift'] + }); diff --git a/.github/workflows/prod-web-deploy.yml b/.github/workflows/prod-web-deploy.yml new file mode 100644 index 0000000..3beaa76 --- /dev/null +++ b/.github/workflows/prod-web-deploy.yml @@ -0,0 +1,63 @@ +name: Deploy to GitHub Pages + +on: + push: + branches: + - main + paths: + - 'website/**' + # path filters cannot be evaluated on a branch-creation push (no `before` + # commit to diff against), so the initial push never triggers the deploy - + # workflow_dispatch covers that case, ad-hoc redeploys, and the menu-sync + # fan-out in stackql/docusaurus-config (gh workflow run) + workflow_dispatch: + +jobs: + build: + name: Build Docusaurus + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + with: + fetch-depth: 0 + + - uses: actions/setup-node@v7 + with: + node-version: 22 + cache: yarn + cache-dependency-path: website/yarn.lock + + - name: Install dependencies + run: yarn install --frozen-lockfile + working-directory: website + + - name: Build website + run: yarn build + working-directory: website + + - name: Upload Build Artifact + uses: actions/upload-pages-artifact@v5 + with: + path: website/build # Ensure the path is correctly set to the Docusaurus build output + + deploy: + name: Deploy to GitHub Pages + needs: build + + # Grant GITHUB_TOKEN the permissions required to make a Pages deployment + permissions: + pages: write # to deploy to Pages + id-token: write # to verify the deployment originates from an appropriate source + + # Deploy to the github-pages environment + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + runs-on: ubuntu-latest + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v5 + with: + working-directory: website/build # Ensures the correct directory is used for deployment diff --git a/.github/workflows/test-web-deploy.yml b/.github/workflows/test-web-deploy.yml new file mode 100644 index 0000000..17422e2 --- /dev/null +++ b/.github/workflows/test-web-deploy.yml @@ -0,0 +1,31 @@ +name: Test deployment + +on: + pull_request: + branches: + - main + paths: + - 'website/**' + +jobs: + test-deploy: + name: Test deployment + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + with: + fetch-depth: 0 + + - uses: actions/setup-node@v7 + with: + node-version: 22 + cache: yarn + cache-dependency-path: website/yarn.lock + + - name: Install dependencies + run: yarn install --frozen-lockfile + working-directory: website + + - name: Test build website + run: yarn build + working-directory: website \ No newline at end of file diff --git a/.gitignore b/.gitignore index 872d5f6..0c296f3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,143 +1,57 @@ -# Logs -logs +# stackql binary and server artifacts +stackql +stackql.exe +stackql-deploy +stackql-deploy.exe +stackql-zip +stackql*.zip +nohup.out *.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* +/.stackql -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories +# node node_modules/ -jspm_packages/ -# Snowpack dependency directory (https://snowpack.dev/) -web_modules/ +# python +__pycache__/ +*.py[cod] +.venv/ +venv/ -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional stylelint cache -.stylelintcache - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variable files +# env / secrets .env .env.* !.env.example -# parcel-bundler cache (https://parceljs.org/) -.cache -.parcel-cache - -# Next.js build output -.next -out - -# Nuxt.js build / generate output -.nuxt -dist -.output - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and not Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# vuepress v2.x temp directory -.temp - -# Sveltekit cache directory -.svelte-kit/ - -# vitepress build output -**/.vitepress/dist - -# vitepress cache directory -**/.vitepress/cache - -# Docusaurus cache and generated files -.docusaurus - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# Firebase cache directory -.firebase/ - -# TernJS port file -.tern-port - -# Stores VSCode versions used for testing VSCode extensions -.vscode-test - -# pnpm -.pnpm-store - -# yarn v3 -.pnp.* -.yarn/* -!.yarn/patches -!.yarn/plugins -!.yarn/releases -!.yarn/sdks -!.yarn/versions - -# Vite files -vite.config.js.timestamp-* -vite.config.ts.timestamp-* -.vite/ +# IDE / editor +.vscode/ +.idea/ +*.swp +*.swo + +# docs site build output and the vendored shared config +website/build/ +website/.docusaurus/ +website/.shared-config/ +website/.cache-loader/ + +# misc +.DS_Store +*.tmp +*.bak + +# The pinned upstream inputs in provider-dev/downloaded/ ARE committed (the +# NVCF spec, the harvested NGC definitions, the ngcsdk-derived schemas and +# the download manifest): every refresh is then a reviewable diff against +# the hash pins in provider-dev/config/spec_pin.json. So are +# provider-dev/source (split and normalized service specs), +# provider-dev/openapi (the generated provider), +# provider-dev/config/all_services.csv (the mapping contract) and +# website/docs (so pages stamp with their regeneration date). + +# the pinned PyPI wheel cached by harvest_ngc_sdk_schemas.mjs (the derived +# ngc_sdk_schemas.json IS committed) +*.whl + +# integration test registry copy (rebuilt every run) +tests/integration/.registry-tmp/ diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..691d217 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +@jsr:registry=https://npm.jsr.io \ No newline at end of file diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..df48c1d --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,68 @@ +# Project guidance + +This file is the canonical, tool-neutral guidance for work in this repository. Claude Code ([CLAUDE.md](CLAUDE.md)) and GitHub Copilot ([.github/copilot-instructions.md](.github/copilot-instructions.md)) entry points refer here; Codex should use this file directly. Keep project rules here rather than duplicating them in tool-specific files. + +## Project scope and architecture + +- This repository builds and documents the `nvidia` provider for [StackQL](https://github.com/stackql/stackql): SQL query and provisioning operations against the NVIDIA NGC control plane - NVIDIA Cloud Functions (NVCF: functions and versions, deployments and GPU specifications, cluster groups and GPU inventory, request queues, sharing grants, HTTP-polling invocation), the NGC private registry (models, resources, recipes, generic artifacts such as helm charts, endpoints and blueprints, versions and files, collections, shares, encryption keys), the public NGC catalog, and NGC organizations, teams, users, roles and invitations. +- Scope notes, recorded so they are never relitigated: Run:ai and DGX Cloud Lepton have their own control planes and are reserved future siblings. The NIM / API-catalog inference endpoints (`integrate.api.nvidia.com`) are a data-plane LLM surface, out of scope. Artifact binary push/pull is the registry data plane, skipped (`data-plane-file-transfer`). Streaming and gRPC invocation forms are not in the published spec; the HTTP-polling form is mapped (`nvcf_invocation`). Fleet Command, Base Command batch, subscription/billing and notification definitions are out of scope (recorded in `download_manifest.json`). Container images live under the container registry API, whose definition is not published (NOTES.md, Open 5). +- Archetype: DIRECT, a hybrid of three pinned inputs. Paths, parameters and request bodies come from the vendor's published definitions; response schemas for the registry surface fall back to the pinned `ngcsdk` Python wheel's data classes (response side only). The procedure is the `stackql-provider-development` skill in `.claude/skills/stackql-provider-development/` (`SKILL.md` is the map, `references/*.md` the step procedures, `references/uplift-checklist.md` the entry point for a refresh); read the reference file for a step before executing it. The finished reference repositories are [`stackql-provider-supabase`](../../S/stackql-provider-supabase) and [`stackql-provider-clickhouse`](../../C/stackql-provider-clickhouse); sibling-build NOTES.md findings are reused, not re-derived. nvidia-specific findings live in [NOTES.md](NOTES.md) - read it before changing a mapping. +- NVIDIA publishes a Go Terraform provider ([`NVIDIA/terraform-provider-ngc`](https://github.com/NVIDIA/terraform-provider-ngc)) covering NVCF functions and telemetry endpoints (one resource and one data source each). State that once, factually. This provider's counter is mechanical completeness from the published definitions (335 operations, 7 services, 82 resources plus the `vw_gpu_capacity` view) and the query surfaces that matter: GPU and cluster-group inventory, NVCF fleet state by deployment specification, function sharing audits, registry estate reports, org membership. Capability statements and runnable examples, never editorializing. + +## Spec sources (three, all pinned) + +1. **NVCF** - `https://api.nvcf.nvidia.com/v3/openapi` (openapi 3.1.0, linked from the NVCF API docs). Management operations are served from `api.ngc.nvidia.com`, queue details and invocation from `api.nvcf.nvidia.com`; the host is carried per service (`nvcf_queues`, `nvcf_invocation` on the nvcf host). +2. **NGC core** - two definitions behind the API explorer at `docs.ngc.nvidia.com/api/`, fetched from pinned URLs by `harvest_ngc_spec.mjs`: `ngc_kas.json` (orgs, teams, users; served publicly at `api.ngc.nvidia.com/v3/api-docs`) and `ngc_models.json` (the Private Artifacts (Models) API: registry and catalog artifact metadata; declared on `models.ngc.nvidia.com/v1/...`, served publicly at `api.ngc.nvidia.com/v2/...` - the clean step rewrites the prefix). +3. **ngcsdk** - `harvest_ngc_sdk_schemas.mjs` downloads the `ngcsdk` wheel from PyPI (pinned version + sha256), parses `registry/data/model/*.py` into JSON Schema (`ngc_sdk_schemas.json`, committed), and `clean_specs.mjs` attaches them as 200 responses to any operation that declares none, by an operationId rule table (`SDK_RESPONSE_CLASSES`). The current models definition ships responses on every operation, so the rule injects nothing today; it stays as the recorded fallback, and a SELECT method left on the bare `Response` envelope fails the inventory. + +Pins (URL, date, sha256 of the canonical JSON) are in `provider-dev/config/spec_pin.json`; the downloads are committed (NVIDIA versions none of these URLs). `make fetch-spec` re-downloads and fails on drift; `make refresh-spec` accepts it (review the diff with `node .claude/skills/stackql-provider-development/scripts/spec_diff.mjs <pinned> <fetched>` and record the summary in NOTES.md). The weekly CI job also snapshots the NGC deprecation schedule page (`check_deprecation_page.mjs`, `deprecation_schedule.json`). + +## Design decisions (settled - see NOTES.md for the evidence) + +- **Authentication** - `bearer` from `NGC_API_KEY` (an NGC Personal API Key, `nvapi-...`), the NVIDIA Terraform provider's and the NGC CLI's variable; `provider-dev/config/provider_config.json` becomes `config:` in `provider.yaml`. Two fixed hosts. A personal key is sent as `Authorization: Bearer` directly; the legacy `$oauthtoken` JWT exchange is not involved (NOTES.md 19, 21a). +- **Scoping** - org scope is a path-level server variable. `bin/split.mjs` rebases every org-scoped operation (leading `/v2/org/{org_name}`, `/v3/orgs/{org_name}`, `/v2/artifact-registry/org/{org_name}`) onto the remainder path; `post_process.mjs` attaches a path-item `servers` template carrying `org_name` with `x-stackQL-envVar: NGC_ORG`. A `WHERE org_name` value beats the environment; unset, `org_name` is required. NVCF paths carry no org (the key implies it). A JOIN cannot fan out on the server variable; the docs teach the two-statement / `UNION ALL` pattern. `orgs.orgs.get` keeps `org_name` as a plain path parameter. +- **The flagship mapping** - the GPU estate: `nvcf_deployments.cluster_groups` (cluster groups with their GPU types and instance types) flattened by the `vw_gpu_capacity` view, and the NVCF fleet state joined to deployment specifications. +- **Deprecation schedule as a build input** - NVIDIA's NGC deprecated API reference ends `/teams/{team}` scoping for NVCF, NVCT, FNDS, Skyway, SIS, SI, PYM, Infinity Manager and GDN on 2026-09-30; `SCHEDULED_DEPRECATIONS` in `build_inventory.mjs` skips those families (`deprecated-schedule-2026-09-30`). Private Registry (and Data Services) team scoping is explicitly exempt, so registry/org team-scoped paths are mapped: `*_by_team` methods on the same resources (they add `team_name` to the signature) and `team_members` / `team_member_roles` / `team_invitations` resources in `orgs`. +- **The service is `private_registry`, not `registry`** - `registry` is a reserved word in the StackQL grammar (`REGISTRY PULL`). +- **Casing** - `snake_case_aliases: true` on the provider plus `request.nativeCasing` on every method: `camel` (NVCF, JSON bodies) or `kebab` (NGC core query parameters such as `page-size`), decided per method by the inventory column `native_casing`. The column rename from the wire spelling is the accepted break; `sanitize-docs` renders kebab parameters as snake_case on the resource pages. +- **Pagination** - NGC core collections page with zero-based `page-number` + `page-size` and echo `paginationInfo {index, totalPages}`; `post_process` configures any-sdk's `page_number` algorithm per list method and pushes `LIMIT` to `page-size` (`queryParamPushdown.top`). NVCF collections are unpaginated. The terminating-page behaviour on the live wire is still owed (NOTES.md 21). +- **objectKey** - list envelopes unwrap their array property, entity envelopes their object property; when several qualify the property named after the resource wins (`modelVersion` for `model_versions`). Entities with array fields (GPU catalog rows) get none. +- **Opaque bodies and scalar lists** - the pexec invocation body is a `{body}` wrapper plus request transform; `function_ids` and the invocation status body are re-shaped by response transforms. +- **Update semantics** - GET list/get `SELECT`, POST create `INSERT`, PATCH/PUT `UPDATE` (PUT is not `REPLACE` without field-drop evidence - keycloak rule; the one PUT with a PATCH twin, `artifacts.replace`, is `REPLACE`), DELETE `DELETE`, actions `EXEC`; grants-as-data for authorizations, shares, roles and team membership (add = `INSERT`, remove = `DELETE`). +- **Skip codes** (160 operations): `service-infra`, `internal-admin`, `deprecated-inline`, `superseded-by-v3-twin`, `non-generator-http-verb`, `data-plane-file-transfer`, `non-json-response`, `non-projectable-response`, `legacy-twin`, `duplicate-endpoint-family`, `inbound-webhook-not-client-api`, `deprecated-schedule-2026-09-30`. Counts are in NOTES.md 11 and the README. +- **Rate limit** - NVIDIA publishes no request limit for these APIs; the smoke harness paces every statement at `INTER_REQUEST_DELAY_S` (0.5 s) and a 429 fails the run as a harness bug, not a retry case. +- **Labels** - vendor `deprecated` markers and summaries flow into the docs as written; inline-deprecated operations with a replacement are skipped (`deprecated-inline`). +- **Engine typing** - `UPDATE` marshals every `SET` value as a string; `INSERT` and `EXEC` send typed JSON; `EXEC` cannot carry a boolean. Documented in the docs header, probed by the smoke suite, not worked around in the provider. +- **Views** - `views/nvcf_deployments/views.yaml` ships `vw_gpu_capacity` (one row per cluster group x GPU x instance type), spliced at generate time and documented like a resource. + +## Toolchain and validation + +- Latest `@stackql/provider-utils`, `@stackql/pgwire-lite` and `@apidevtools/swagger-parser` (check npm before starting: `npm view @stackql/provider-utils version`); Docusaurus `^3.10.x`. Node >= 22.19 (Node 20 reached end of life in April 2026; swagger-parser 13 needs 22.19), `type: module`. `js-yaml` stays on 4.x (provider-utils emits with js-yaml 4; v5 drops the default export and changes scalar quoting, so that bump is coordinated with provider-utils). `package-lock.json` pins what CI installs; a toolchain bump is an explicit commit that regenerates the artifacts. +- Linux, macOS or WSL (WSL is the execution environment on the maintainer's machine: GNU make, bash, the latest `stackql` release on PATH, Python 3, yarn; keep the smoke venv off the DrvFs mount with `make smoke VENV=$HOME/.venvs/stackql-nvidia`). The Makefile is the operator surface (`make help`); the two provider-utils CLI entry points are npm scripts invoked through `node`, never `.bin` shims, flags after `--`. +- `make all` = `deps fetch-spec build test docs website`: pin verify (network, fails on drift) -> pin-check -> clean-specs -> inventory -> split -> mappings -> pre-normalize -> normalize -> generate (+ post-process, views, GraphQL merge) -> test-offline -> test-integration -> test-meta -> docs -> website. It never needs credentials and never bills. `build` deliberately verifies the committed downloads offline (`pin-check`) rather than re-downloading (three documents plus a 2.4 MB wheel). Every step is deterministic and re-runnable; manual decisions are rules in scripts (the classify functions and `SCHEDULED_DEPRECATIONS` in `build_inventory.mjs`, response-class rules and fix classes in `clean_specs.mjs`, passes in `pre_normalize.mjs`, numbered rules in `post_process.mjs`), never hand-edits to CSVs, specs or generated output. `endpoint_inventory.csv` is the single source of truth every later step reads; `all_services.csv` is the committed operation -> resource.method contract and a diff there is a breaking-change review, not noise. Validate-and-fail-without-writing is the standard for every script. +- Tests, in order after every regeneration: `make test-offline` (`SHOW`/`DESCRIBE` against the local file registry: services, resources, verbs, the `NGC_ORG` behaviour, snake aliases, transforms, the view), `make test-integration` (the mock NGC + NVCF API in `tests/integration/mock_nvidia_server.mjs`, both hosts, bearer enforced, row-level and wire-level assertions per archetype; `npm run probe -- "<sql>"` for ad-hoc binding checks), `make test-meta` (the meta-route walk; a resource with no columns fails it - fix the mapping, never the test). Then `make smoke` / `smoke-live` / `smoke-read-only` / `smoke-nvcf` / `smoke-cleanup` from `.env` (`NGC_API_KEY`, `NGC_ORG`, optional `NGC_TEAM`, `NVCF_SMOKE_CONTAINER_IMAGE`): tiered by what the key can reach, everything named `stackql-smoke-<stamp>`, breadcrumbs swept first; only the gated `smoke-nvcf` target deploys anything (smallest instance, always torn down). +- Never run tests against a production organization. The live run still owed with an entitled key is listed in NOTES.md 21; the key last tried is recorded as invalid by NVIDIA's own validator (NOTES.md 21b). + +## Documentation and publishing + +- `make docs` (generate with `--snake-case-aliases` and `--source-project $(SOURCE_PROJECT)`, then `sanitize-docs`) and `make website`; `website/docs` is committed after every regeneration so pages stamp with their regeneration date. `headerContent1.txt` is the landing-page front matter and pitch; `headerContent2.txt` the getting-started page, closing with `## Example Queries` in the shape every provider site shares. +- Publishing is a separate, human-in-the-loop step: push the generated `provider-dev/openapi/src/nvidia` directory to `providers/src` in a feature branch of [`stackql-provider-registry`](https://github.com/stackql/stackql-provider-registry), follow the registry release flow, verify with `REGISTRY PULL nvidia` from the dev registry and `make smoke-live`. The microsite deploys to GitHub Pages (`nvidia-provider.stackql.io` CNAME -> `stackql.github.io.`); the provider is listed in the Providers menu by adding it to `src/configs/providers.json` in the `stackql.io` repository. + +## Writing conventions + +These apply to every piece of text the build generates: README, docs headers and examples, NOTES, this file, code comments, commit messages, console output, inventory and CSV columns, mock fixtures. Text the vendor owns (operation summaries, schema and parameter descriptions, the pinned snapshots, `provider-dev/source`, the generated provider and `website/docs`) is passed through as the vendor wrote it; the only alteration is the MDX escaping `sanitize-docs` applies. + +- Measured, precise copy, no hyperbole; third-person or passive framing for descriptive copy. The Terraform provider is mentioned once, factually. +- No em dashes and no `--` as a dash; use `-`. No characters that are not on a QWERTY keyboard: no emoji, no typographic quotes, `->` for arrows. No stacked headings. +- Sample queries follow the k8s README style: realistic, runnable against the generated surface, snake_case names, `json_extract` for nested fields, parser keywords double-quoted. + +## Non-negotiables + +1. Latest `@stackql/provider-utils`, always +2. The skill is the procedure; the supabase / clickhouse repos are the reference pattern; sibling-build NOTES.md findings are reused, not re-derived - deviate only with a documented reason in NOTES.md +3. The three upstream inputs are pinned with evidence; the response-side SDK derivation is a recorded decision in `spec_pin.json` and `download_manifest.json`, never a silent switch +4. The deprecation schedule is a build input: scheduled families are never mapped, exempt families are never blanket-skipped +5. Deterministic scripts, never hand-edits to derived artifacts +6. Every regeneration is followed by `make test` before commit +7. Test harnesses pace under the rate limit - a 429 in CI is a harness bug +8. Smoke tests clean up everything they create and never leave a deployed function running - a failed run must not leave GPU-billing resources behind diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..386fff3 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,3 @@ +# Claude Code entry point + +Read and follow the repository's canonical guidance in [AGENTS.md](AGENTS.md) for all work in this repository. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..35e7ed0 --- /dev/null +++ b/Makefile @@ -0,0 +1,202 @@ +# StackQL nvidia (NVIDIA NGC + NVIDIA Cloud Functions) provider - build, +# test and docs pipeline. +# +# Every step is deterministic and re-runnable; manual mapping decisions live +# in provider-dev/scripts (classification rules and skip codes in +# build_inventory.mjs, response-class rules and fix classes in +# clean_specs.mjs, passes in pre_normalize.mjs, numbered rules in +# post_process.mjs), never in hand-edited artifacts. `make all` runs the +# full chain: +# fetch/pin the three upstream inputs -> clean -> inventory -> split +# service specs -> mappings -> pre-normalize -> normalize -> generate +# (+ post-process, views, GraphQL merge) -> offline + integration + +# meta-route tests -> docs -> website. +# `make all` never needs credentials and never bills; the live smoke targets +# (`make smoke*`) are separate and source .env when present. `make upgrade` +# is `all` with the upstream change ACCEPTED (re-pins the inputs - review +# the resulting diff). +# +# One deliberate difference from the template: `build` verifies the +# committed downloads against the pins offline (`pin-check`) instead of +# re-downloading, because the inputs are three documents plus a 2.4 MB PyPI +# wheel; `all` and CI run `fetch-spec` (network, fails on drift) first. +# +# Requirements: Node >= 22.19, GNU make + bash, a stackql binary ($STACKQL, +# ./stackql or on PATH - bin/start-server.sh downloads one if none is found), +# Python 3 (a venv with pystackql is created on demand for the smoke suite), +# yarn for the website. Runs on Linux, macOS or WSL (under WSL keep the venv +# off the DrvFs mount: `make smoke VENV=$HOME/.venvs/stackql-nvidia`). +# +# Live credentials for the smoke suite (never committed - .env is +# gitignored; the smoke targets source it if present; see .env.example): +# NGC_API_KEY NGC Personal API Key (bearer) - the Terraform provider variable +# NGC_ORG NGC organization name (x-stackQL-envVar target for org_name) +# NGC_TEAM optional team for the *_by_team registry methods + +SHELL := bash +.DEFAULT_GOAL := help + +PROVIDER := nvidia +VERSION := v00.00.00000 +OPENAPI_DIR := provider-dev/openapi +SERVICES_DIR := $(OPENAPI_DIR)/src/$(PROVIDER) +PROVIDER_DIR := $(SERVICES_DIR)/$(VERSION) +SOURCE_DIR := provider-dev/source +CONFIG_DIR := provider-dev/config +GRAPHQL_DIR := provider-dev/source-graphql +# The repository docgen links from the Provider Summary on the docs landing +# page (the label is the URL's last path segment). Always this repository's +# URL; override on the command line for a fork hosted elsewhere. +SOURCE_PROJECT ?= https://github.com/stackql-registry/stackql-provider-$(PROVIDER) +PORT ?= 5444 +VENV := .venv +PY := $(VENV)/bin/python +ENV_FILE := .env + +.PHONY: help deps fetch-spec refresh-spec pin-check clean-specs inventory split mappings mappings-report pre-normalize normalize generate post-process graphql-merge build \ + test-offline test-integration test-meta test venv smoke smoke-live smoke-read-only smoke-nvcf smoke-cleanup \ + docs website website-start start-server stop-server server-status clean all upgrade + +help: ## show this help + @grep -E '^[a-zA-Z_-]+:.*?## ' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " %-24s %s\n", $$1, $$2}' + +deps: ## install node dependencies (latest @stackql/provider-utils, @stackql/pgwire-lite and swagger-parser per package.json ranges) + npm install + +# ---------------------------------------------------------------- pipeline + +fetch-spec: ## download the NVCF spec, harvest the NGC definitions + ngcsdk schemas, and verify against the pins (fails on drift) + npm run fetch-specs -- --check + +refresh-spec: ## download everything and ACCEPT the upstream change (rewrites the pins - review the diff) + npm run fetch-specs + +pin-check: ## verify the committed downloads against provider-dev/config/spec_pin.json (no network) + npm run pin-specs -- --check + +clean-specs: ## deterministic spec repairs (v2 gateway prefix, snake_case path params, SDK response injection) + swagger-parser validation + npm run clean-specs + +inventory: ## build provider-dev/config/endpoint_inventory.csv from the cleaned specs (every operation classified or skip-coded) + npm run build-inventory + +split: ## split the cleaned specs into per-service specs on their hosts, org-scoped paths rebased (provider-dev/source) + npm run split -- --provider-name $(PROVIDER) --overwrite + +mappings: ## regenerate all_services.csv from scratch and apply the inventory mappings (fails on unmapped ops; prints the mapping diff) + rm -f $(CONFIG_DIR)/all_services.csv + npm run generate-mappings -- --provider-name $(PROVIDER) --input-dir $(SOURCE_DIR) --output-dir $(CONFIG_DIR) + npm run map-operations + +mappings-report: ## print every derived mapping without writing (design the inventory rules) + npm run map-operations -- --report + +pre-normalize: ## nvidia-specific spec surgery on provider-dev/source before the generic normalize pass + npm run pre-normalize + +normalize: ## generic provider-utils normalize pass (allOf flatten, oneOf/anyOf lowering, opaque objects, bare-array wrap) + npm run normalize -- --api-dir $(SOURCE_DIR) + +# No --servers / --service-config: servers are per service (two hosts) and +# the org-scoped paths ride a path-level server template - both come from +# the endpoint inventory (split + post-process). Views under +# ./views/<service>/views.yaml are spliced automatically. +generate: ## generate the provider (bearer auth, snake_case aliases, naive request bodies, views), then post-process and GraphQL merge + rm -rf $(OPENAPI_DIR)/* + npm run generate-provider -- \ + --provider-name $(PROVIDER) \ + --input-dir $(SOURCE_DIR) \ + --output-dir $(SERVICES_DIR) \ + --config-path $(CONFIG_DIR)/all_services.csv \ + --provider-config $(CONFIG_DIR)/provider_config.json \ + --naive-req-body-translate \ + --overwrite + $(MAKE) post-process + $(MAKE) graphql-merge + +post-process: ## re-apply everything the generator cannot express (org server templates + NGC_ORG, casing, pagination, LIMIT pushdown, objectKeys, transforms) + npm run post-process + +graphql-merge: ## merge GraphQL-backed resources from provider-dev/source-graphql (no-op: NVIDIA publishes no GraphQL API) + npm run graphql-merge -- --provider-dir $(PROVIDER_DIR) --source-dir $(GRAPHQL_DIR) + +build: pin-check clean-specs inventory split mappings pre-normalize normalize generate ## full spec -> provider pipeline from the committed pins + +# ------------------------------------------------------------------- tests + +test-offline: ## offline validation against the local file registry (SHOW / DESCRIBE, NGC_ORG behaviour, views, no network) + npm run test-offline + +test-integration: ## row-level and wire-level assertions against the mock NGC + NVCF API (no account required) + npm run test-integration + +# The server is always torn down and the meta-route walk's exit status is +# preserved so a failure stops `make all`. +test-meta: ## meta-route walk (every service, resource, method) against a local stackql server + bash bin/start-server.sh --provider $(PROVIDER) --registry "$(CURDIR)/$(OPENAPI_DIR)" --port $(PORT) + node bin/test-meta-routes.cjs $(PROVIDER) --port $(PORT); status=$$?; bash bin/stop-server.sh --port $(PORT); exit $$status + +test: test-offline test-integration test-meta ## all credential-free test layers + +start-server: ## start a local stackql server on PORT (default 5444) over provider-dev/openapi + bash bin/start-server.sh --provider $(PROVIDER) --registry "$(CURDIR)/$(OPENAPI_DIR)" --port $(PORT) + +stop-server: ## stop the local stackql server + bash bin/stop-server.sh --port $(PORT) + +server-status: ## status of the local stackql server + bash bin/server-status.sh --port $(PORT) + +# ------------------------------------------------------------------- smoke + +$(VENV)/bin/activate: + python3 -m venv $(VENV) + $(VENV)/bin/pip install --quiet --upgrade pip pystackql + +venv: $(VENV)/bin/activate ## create the python venv with pystackql for the smoke suite + +# The smoke targets source .env when present so a developer checkout works +# without exporting anything; CI sets the variables from secrets. +with_env = set -a; [ -f $(ENV_FILE) ] && source <(tr -d '\r' < $(ENV_FILE)); set +a; + +smoke: venv ## live smoke suite with the locally generated provider - catalog + org/registry reads, cheap self-cleaning write lifecycles (needs .env) + @$(with_env) $(PY) tests/smoke_test.py + +smoke-live: venv ## live smoke suite against the PUBLISHED provider in the stackql registry (post-publish verification) + @$(with_env) $(PY) tests/smoke_test.py --live + +smoke-read-only: venv ## live read smokes only, no writes + @$(with_env) $(PY) tests/smoke_test.py --read-only + +smoke-nvcf: venv ## live suite INCLUDING the gated NVCF function deploy lifecycle (billable GPU minutes, smallest instance, always torn down) + @$(with_env) $(PY) tests/smoke_test.py --with-nvcf-deploy + +smoke-cleanup: venv ## sweep stackql-smoke-* breadcrumbs (registry models, NVCF functions and deployments) and exit + @$(with_env) $(PY) tests/smoke_test.py --cleanup-only + +# -------------------------------------------------------------------- docs + +docs: ## generate the website docs (snake_case surface, source project link), then sanitize for MDX + npm run generate-docs -- \ + --provider-name $(PROVIDER) \ + --provider-dir ./$(PROVIDER_DIR) \ + --output-dir ./website \ + --provider-data-dir ./provider-dev/docgen/provider-data \ + --snake-case-aliases \ + --source-project $(SOURCE_PROJECT) + npm run sanitize-docs + +website: ## build the docusaurus microsite (vendors the shared stackql config first) + cd website && yarn install && yarn build + +website-start: ## run the docusaurus dev server + cd website && yarn install && yarn start + +# ------------------------------------------------------------------- misc + +clean: ## remove generated artifacts (provider output, docs, website build, test registry copy) + rm -rf $(OPENAPI_DIR)/* website/build website/.docusaurus website/docs/services tests/integration/.registry-tmp stackql-server.log + +all: deps fetch-spec build test docs website ## everything non-live: deps, upstream drift check, pipeline, tests, docs, site build + +upgrade: deps refresh-spec build test docs website ## accept upstream changes (re-pin), then the full pipeline, tests, docs and site build diff --git a/NOTES.md b/NOTES.md new file mode 100644 index 0000000..fd9499d --- /dev/null +++ b/NOTES.md @@ -0,0 +1,68 @@ +# Engineering Notes + +Phase 1 (2026-07-14) acquired and pinned the specs, verified the public-read posture on the wire, built the endpoint inventory and piloted the mapping. Phase 2 (2026-09-25) refreshed the toolchain (`@stackql/provider-utils` 0.7.10, `@stackql/pgwire-lite` 1.0.2, Docusaurus 3.10.2), converted the pipeline to `make`, resolved the response-schema gap in the harvested models definition, corrected the deprecation rule, added the org server template, the casing/pagination/pushdown wiring, the mock-backed integration suite, the offline validation, the tiered smoke suite, the docs microsite and CI. Live verification against an NGC organization is still owed (item 21). + +Sibling findings reused, not re-derived: supabase (the project-scope server template with `x-stackQL-envVar`, root-path server overrides in post_process, the offline validation and mock-server integration layers, `--live` smokes, the weekly drift job), k8s (mock-first CI, the meta-route walk, `snake_case_aliases` + `nativeCasing`), clickhouse (org-scoped server template without a default), godaddy (path-level server templates with an env-var variable; the `kindOf` request transform), dockerhub (public-read classification), proxmox (EXEC returns a request id + status SELECT), vsphere (skip-with-notice gating), keycloak (PUT is not REPLACE without evidence), vercel (opaque body wrapper + transform). + +## Resolved + +1. **NVCF spec source - live.** `https://api.nvcf.nvidia.com/v3/openapi` (openapi 3.1.0, version 2.245.1, 35 paths / 54 operations), linked from https://docs.nvidia.com/nvcf/api. swagger-parser validates it clean. Pinned by sha256 in `spec_pin.json`. + +2. **NGC harvest - usable; the explorer moved, the definitions did not.** In phase 1 the explorer at docs.ngc.nvidia.com/api/ was a swagger-ui over per-service definitions listed in its JS bundle. By 2026-09-25 the explorer is a hosted ReadMe site with no definition list in its pages, but the definition URLs the bundle declared still serve, and the NGC API definition is also served by the public gateway (`https://api.ngc.nvidia.com/v3/api-docs`, identical bytes to the internal host). `harvest_ngc_spec.mjs` now carries that catalogue as pinned URLs (with fallbacks) instead of scraping the bundle. Two in-scope definitions are publicly retrievable: `ngc_kas.json` (orgs/teams/users, v3.249.17, 77 paths, 102 operations, every one with a typed 2xx response) and `ngc_models.json` (registry and catalog artifact metadata, 232 paths, 334 operations). Five in-scope definitions (Org Mgmt, User IAM, Search, Metadata, Publishing) refuse public connections (the gateway answers 401 for the search and meta docs) - recorded in `download_manifest.json`. + +3. **The models definition was response-less in July; the ngcsdk fallback covered the response side, and stays as the safety net.** The 2026-07-14 harvest declared no 2xx response on 303 of 333 models operations (4 `*Response` schemas in total); provider-utils `generate` refuses an operation without a 2xx, and a SELECT without a response schema projects nothing. The `ngcsdk` wheel on PyPI (4.36.6, sha256 `8cf4ce3b...`) ships auto-generated data classes for exactly this API (`registry/data/model/*.py`: `Model`, `ModelListResponse`, `ArtifactVersionFileListResponse`, `PaginationInfo`, ...; "auto-generated by main/tools/jsonparser"). `harvest_ngc_sdk_schemas.mjs` parses 149 classes into JSON Schema (typed property by property from the setter guards; enum modules skipped) and `clean_specs.mjs` merges the classes the definition lacks into `components.schemas` and attaches a 200 response to every response-less operation by an operationId rule (`SDK_RESPONSE_CLASSES`). The 2026-09-25 harvest of the same URL declares a 2xx response on every operation (127 schemas), so the rule now injects nothing and the vendor's own response schemas drive the mapping; the SDK derivation remains the recorded fallback (`spec_pin.json` `ngcSdk`, `download_manifest.json`) and `build_inventory.mjs` still fails on any SELECT method left on the bare `Response` envelope. Response naming differences between the SDK classes and the vendor schemas were absorbed by the objectKey rules (item 14). + +4. **Gateway v1 -> v2 rewrite - applied in clean, confirmed by the SDK.** The models definition declares `/v1/...` on `models.ngc.nvidia.com`; the public gateway serves the same operations at `api.ngc.nvidia.com/v2/...` (phase-1 probes; the SDK's endpoint builders are `v2/org/{org}/models`, `v2/org/{org}/helm-charts/...`, `v2/artifact-registry/org/{org}/encryption-keys`, `v2/csps`; the Terraform provider's model URIs are `/v2/org/nvidia/team/nemo/models/...`). Rule `gateway-v2-path-prefix` rewrites 228 paths and the server. + +5. **Public reads - wire-proven (phase 1).** Unauthenticated `GET /v2/models`, `/v2/models/{org}/{name}`, `/versions`, `/v2/recipes`, `/v2/resources`, `/v2/collections`, `/v2/gpus`, `/v2/{artifact_type}` return 200; org-scoped registry reads, `/v2/orgs`, `/v2/users/me`, `/v2/nvcf/*` return 401. The `/v2/gpus` body is a bare array (normalize wraps it). The provider's bearer config still requires `NGC_API_KEY` to be set for any query; any value works for the public reads (documented). + +6. **Deprecation schedule - corrected in phase 2.** The authoritative page is https://docs.nvidia.com/ngc/latest/ngc-deprecated-api.html: on 2026-09-30 NVIDIA ends team-scoped (`/teams/{team}`) paths for NVCF, NVCT, FNDS, Skyway, SIS, SI, PYM, Infinity Manager and GDN, with the org-scoped replacement being the same path minus the segment; "products other than NVIDIA Private Registry and NVIDIA Data Services do not support team-level resource scoping". The phase-1 blanket skip of 141 team-scoped registry/org twins citing that schedule was therefore wrong: those families are exempt. Phase 2 maps them as `*_by_team` methods on the same resources (121 methods; `team_name` joins the required-parameter signature, so no verb overload clashes) and as `team_members` / `team_member_roles` / `team_invitations` resources in `orgs`. `SCHEDULED_DEPRECATIONS` in `build_inventory.mjs` encodes the page's families (none appear in the pinned specs today - the NVCF spec is `/v2/nvcf/...` without an org segment - but the rule is the build input); `check_deprecation_page.mjs` snapshots the page (`deprecation_schedule.json`, 86 path patterns) for the weekly drift job. + +7. **NVCF paths: the published `/v2/nvcf/...` form is used, not the gateway's org-scoped form.** The Terraform provider and the deprecation page show `/v2/orgs/{org}/nvcf/functions/...` (and `/teams/{team}/` between) on the gateway; the published spec declares `/v2/nvcf/functions` and the NVCF docs use that form with a personal key. Both are served; the spec form needs no org and is what the pin documents. Switching is a one-line rebase rule if live use shows otherwise (item 21). + +8. **Org scope as a server variable.** 204 org-scoped operations (orgs + private registry) are rebased by `bin/split.mjs` (prefix stripped, org path parameter dropped) and `post_process.mjs` attaches path-item `servers` templates (`https://api.ngc.nvidia.com/v2/org/{org_name}` etc.) with `org_name` carrying `x-stackQL-envVar: NGC_ORG`, no default. Verified offline (`org_name` leaves the required parameters when `NGC_ORG` is set) and against the mock (env value routes to `/v2/org/<NGC_ORG>/...`, a `WHERE org_name` value wins, unset with no `WHERE` fails with "cannot find any viable servers" - any-sdk's message, not one naming the variable). Root paths that keep an org parameter (`/v2/orgs/{org_name}`, `/v2/csps/{artifact_type}/org/{org_name}/...`) are ordinary path parameters. One host per service is validated by the inventory; `nvcf_queues` and `nvcf_invocation` sit on `api.nvcf.nvidia.com`. + +9. **Reserved word.** `registry` cannot be a service name (`SHOW RESOURCES IN nvidia.registry` is a parser error - `REGISTRY` is a statement keyword). The service is `private_registry`. + +10. **Definition defects repaired in clean, with a report** (`clean_report.json`): `ngc_kas` declares a relative server (`/`), 29 path parameters whose `name` is prose ("user id or b64encoded email") rather than the template token, one stray path parameter with no token, 16 query parameters with prose names ("Filter using org name" - wire names unknown, dropped) and 24 cookie parameters (`ncid`, `VisitorID`; any-sdk has no cookie location); `ngc_models` has 16 cookie parameters (`sc_cmp`) and camelCase / kebab-case path tokens used inconsistently (`{orgName}` and `{org-name}` for the same thing). Every path parameter is snake_cased in clean (provider-utils' split only converts the first hyphen per token). + +11. **Mapping - green.** 502 operations inventoried (55 NVCF, 447 NGC core incl. the 4 SDK-evidenced deletes), 342 mapped (select 156, insert 64, update 42, delete 52, replace 4, exec 24), 160 skipped with reason codes (service-infra 24, internal-admin 34, deprecated-inline 44, superseded-by-v3-twin 4, non-generator-http-verb 7, data-plane-file-transfer 22, non-json-response 4, non-projectable-response 2, legacy-twin 3, duplicate-endpoint-family 15, inbound-webhook 1), 83 resources across 7 services (`catalog` 21, `nvcf_deployments` 7, `nvcf_functions` 7, `nvcf_invocation` 4, `nvcf_queues` 2, `orgs` 11, `private_registry` 31). The 2026-09-25 refresh (NVCF 2.245.1 -> 2.256.0 with a new `/info` endpoint, models definition with a new NIM metadata endpoint, collection shares deprecated inline) moved the counts from the phase-2 baseline of 347 / 149. Notable spec truths: the definition declares no DELETE for models or resources and the generic artifacts family only takes `helm-charts`, `endpoints`, `agents`, `blueprints`, `apis`, `playbooks` and `skills` (so "delete via artifacts" was never possible); the SDK's `remove_model` / resources `remove` issue `DELETE` on the entity path, and `clean_specs.mjs` (`inject-sdk-operations`) adds those four operations (org and team forms) with the evidence recorded on the operation - `models.delete` and `resources.delete` are SDK-evidenced, purge stays `EXEC`; functions get/update/delete live on `function_versions` (the spec addresses a function by version); `authorizations` is grants-as-data (list `SELECT`, add `INSERT`, remove `DELETE`, set `REPLACE`, delete-all `EXEC`). + +12. **Pagination.** NGC core lists declare zero-based `page-number` + `page-size`; `ngc_kas` responses carry `paginationInfo {index, size, totalPages, totalResults, nextPage}` and the SDK's `ModelListResponse` etc. carry the same object (undeclared in the models definition). any-sdk's `page_number` algorithm (linode/vercel precedent) follows `$.paginationInfo.index` / `$.paginationInfo.totalPages`: it requests page N after the last page N-1 and stops when the echoed index reaches the total, so the terminating request must return an empty page rather than an error - the mock does; the live behaviour is owed (item 21). 64 list methods carry the config plus `queryParamPushdown.top -> page-size` (no documented maximum, none set). NVCF lists are unpaginated. Verified against the mock: 5 rows over 3 pages of 2, `LIMIT 1` -> `page-size=1`. + +13. **Casing.** `snake_case_aliases: true` on the provider; `request.nativeCasing` per method from the inventory (`camel` x229 for NVCF and JSON bodies, `kebab` x113 for methods with kebab query parameters). Verified against the mock: `resolve_labels = 'true'` -> `resolve-labels=true`; `display_name` -> `displayName` in POST/PATCH bodies. Docs render the wire spelling of kebab parameters (`page-size`); the engine accepts `page_size`. + +14. **objectKey per response shape.** Lists unwrap their array property; entity reads unwrap their object property; when several qualify the property named after the resource wins (`modelVersion` for `model_versions`, `recipeVersion` for `resource_versions` via the trailing-segment rule, `artifactVersion` for `helm_chart_versions`). Entities with array fields (GPU catalog rows, `gpuCounts`) get none - the first rule tried used the array property and projected `column_anon`. The vendor types `GET .../license/acceptance` as the `requestStatus`-only envelope, so that read is skipped (`non-projectable-response`); the acceptance `POST` stays mapped. + +15. **Transforms.** `function_ids.list` (`{functionIds: [string]}`) is re-shaped to `function_id` rows; `invocation_status.get` (typed as a byte buffer in the spec, really the function's own JSON) is wrapped into a `response` column; the pexec invocation body (lowered to an opaque string by normalize) is a `{body}` wrapper with a `kindOf`-guarded request transform - stackql hands a JSON-looking string argument to the template already parsed, so `toJson .body` is required (the `_raw: map[prompt:hello]` failure mode). All three verified against the mock. + +16. **Integer-typed columns swallow non-numeric values, and the neighbouring columns too.** With the SDK's `ModelVersion.id` typed `long`, a mock that put "v1.0" in `id` made `SELECT id, status` return `id = 0, status = null` for the row while `SELECT *` was fine. The real wire has a numeric `id` and the string `versionId` ("use this instead of id" per the SDK) - the mock was corrected. Worth remembering when a typed column looks empty: check the wire type before the mapping. + +17. **Terraform parity.** `NVIDIA/terraform-provider-ngc` (Go, 2024-, `ngc_cloud_function` + `ngc_cloud_function_telemetry`) reads `NGC_API_KEY`, `NGC_ORG`, `NGC_TEAM`, `NGC_ENDPOINT`. The provider uses the first three by name (`NGC_TEAM` only in the smoke suite - team scope is a per-query `team_name`). Its test template names the smallest instance it deploys with (`DGX-CLOUD.GPU.L40_1x` / `L40`) - the smoke suite picks the first instance type of the first cluster group instead. + +18. **Auth error envelopes.** `api.ngc.nvidia.com` returns `{"requestStatus": {"statusCode": "UNAUTHORIZED", ...}}` with 401; `api.nvcf.nvidia.com` returns an empty 401 body. The mock reproduces both; the integration suite asserts the bearer header on every call and the 401 with a wrong key. + +19. **Two key types.** The explorer exchanges a legacy NGC API key for a JWT (`authn.nvidia.com/token`, `Basic $oauthtoken:<key>`); personal API keys (`nvapi-...`) work directly as `Authorization: Bearer` per the NVCF docs and the Terraform provider. The provider assumes the direct-bearer personal-key path. + +20. **The definition servers are not byte-stable.** Two fetches of the models definition seconds apart were canonically identical but differed in bytes (the `securitySchemes` scopes map, a Java map, serialises in a different key order each time), so a raw-byte pin drifted on the very next `make all`. The fetchers now write every download as canonical JSON (keys sorted recursively, arrays untouched - `lib/canonical.mjs`) and the pins hash those bytes; a pin drift therefore means real upstream change. NVCF 2.245.1 -> 2.256.0 and the models definition's new NIM endpoint were real changes accepted on 2026-09-25. + +22. **Template uplift (2026-10-16) - aligned with `stackql-provider-TEMPLATE` and the bundled `stackql-provider-development` skill.** Toolchain: `@apidevtools/swagger-parser` 12 -> 13.1.0 (clean_specs validation unchanged), Node >= 22.19 in `engines`, the Makefile header, the README and every `setup-node` step, `license: MIT`, `npm run probe`; `@stackql/provider-utils` 0.7.12 and `@stackql/pgwire-lite` 1.0.2 were already current. Repository shape: `AGENTS.md` is the canonical guidance with `CLAUDE.md` and `.github/copilot-instructions.md` as pointers (the supabase pattern); `SECURITY.md`, the issue and PR templates, `provider-dev/config/provider_config.json` (replacing the inline `--provider-config` JSON), `provider-dev/scripts/lib/spec_helpers.mjs` (the provider constants the harnesses and `graphql_merge.mjs` read), `provider-dev/source-graphql` with an empty manifest (NVIDIA publishes no GraphQL API, so the merge is a no-op kept for the standard `make generate` shape), `tests/integration/harness.mjs` (the template's shared plumbing, carrying this build's two-host rewrite and org-template check from the former `registry.mjs`), the template's server scripts and meta-route runner, `website/scripts/sanitize-docs.mjs` (the template version plus the kebab-parameter rule, recounting the landing-page resources; its scope annotation is switched off through `website/provider.js` because docgen 0.7.12 does not render the path-level server variable into the scoped pages' examples at all, and the `org_name` that does appear - on the public catalog's `/v2/models/{org_name}/...` pages and `orgs.orgs` (`/v2/orgs/{org_name}`) - is a plain path parameter `NGC_ORG` never resolves, so the template rule marked exactly the wrong pages), the chrome components re-copied, the Docusaurus boilerplate (HomepageFeatures, undraw images, stock README) removed, `website/package.json` engines and the web manifest corrected. Makefile targets renamed to the standard (`fetch-spec` / `refresh-spec`, `mappings-report`, `graphql-merge`, `start-server` / `stop-server` / `server-status`, `test-meta` preserving the walk's exit status); `build` keeps verifying the committed downloads offline (`pin-check`) rather than re-downloading three documents plus a 2.4 MB wheel on every run - `all` and CI run `fetch-spec` first, and CI restores `provider-dev/downloaded` from git after a drift warning so the committed pins are what gets built. CI gained the template's job-level smoke gate (`pinned` and `smoke_creds` outputs) and the drift gate now covers `provider-dev/downloaded`. One view added, `nvcf_deployments.vw_gpu_capacity` (cluster group x GPU x instance type, sqlite3 `json_each` with a postgres `jsonb_array_elements` fallback), asserted offline and against the mock. `make fetch-spec` on the day reported drift on all three inputs; the refresh is item 23. Working-tree CRLF line endings on 23 tracked files were normalized to LF (the index already held LF under `.gitattributes`, so no content changed). + +23. **Upstream refresh (2026-10-16) - all three inputs drifted; accepted with `make refresh-spec`, one breaking change.** `spec_diff.mjs` pinned vs fetched: NVCF 2.256.0 -> 2.261.2 adds one operation, `GET /v2/nvcf/authorizations/functions` (`getAuthorizedPartiesForAllFunctions`, `{functions: [AuthorizedPartiesByFunctionDto]}` - the same row shape as the per-function read), and changes `LlmConfigDto` / `LlmConfigUpdateDto`; the models definition (still 0.0.1-SNAPSHOT) removes the eight model-share operations (`shareModelInOrgWithOrg`, `revokeShareModelInOrgWithOrg`, the team-target and in-team forms) and replaces `HealthComponent` with `KaizenHealthStatus`, changing `ArtifactCreateRequest` and `LicenseMetadata`; the NGC definition (v3.249.17) only renumbered the operationIds of the `/swagger-resources` infra endpoints, which are `service-infra` skips. Mapping diff: `+1 -8 0 changed`. The removal retires the `private_registry.model_shares` resource (add_org / remove_org / add_team / remove_team and their `_by_team` twins) - a breaking change accepted because the published definition no longer declares those operations and a stale snapshot would be fabricating them; model sharing through the generic artifact family (`artifact_shares`, `artifact_product_shares`, `collection_product_shares`) is unaffected. The new read maps as `nvcf_functions.authorizations.list_all` (SELECT, objectKey `$.functions`, no parameters; it sits last in the select list after `list_version` and `list`, so it only routes a statement with no `function_id` - verified against the mock, which now serves the path). Counts moved from 502 / 342 / 83 to 495 inventoried, 335 mapped (select 157, insert 60, update 42, delete 48, replace 4, exec 24), 160 skipped (unchanged), 82 resources (private_registry 30), 119 team twins (was 121), 200 org-scoped rebases (was 204), `nativeCasing` camel x222 (was 229). The docs lost the `model_shares` page and gained `authorizations.list_all`, and the sharing-audit example now leads with the fleet-wide read. A second nondeterminism in the NGC definition surfaced on the same day (the first was the map ordering of item 20): springdoc numbers the seven same-named handlers of each `/swagger-resources` path with `_N` suffixes in reflection order, which differs between server instances - the morning fetch carried `swaggerResources` on OPTIONS and `swaggerResources_3` on POST, the two later fetches the reverse - so `harvest_ngc_spec.mjs` now applies a counted fix class before writing (`stable-swagger-resources-operation-ids`: 21 operations renamed to verb-keyed ids such as `swaggerResources_get`, recorded per file in `download_manifest.json`); the family is a `service-infra` skip, so no mapping is affected and the pin no longer flips on it. The other `_N` suffixes in the definition (`listOrganizations_1`, `addUserRole_3`, ...) have been stable across every fetch since the September pin and are left alone; the weekly drift job is the detector if that changes. + +## Blocked on a key + +21a. **First live run (2026-09-26, INDIVIDUAL org `0783126463337528`, a 70-character `nvapi-` personal key).** The public catalog reads work with the key on the wire (`catalog.models` with `LIMIT` pushdown, the model get, the bare-array GPU catalog, collections). Every authenticated NGC core call answers 403 `FORBIDDEN` / "Access Denied" (`/v2/users/me`, `/v2/orgs`, `/v2/org/{org}/users|teams|models`, `/v2/csps`), `api.ngc.nvidia.com/v2/nvcf/*` answers 401 "Authentication Failed", and `api.nvcf.nvidia.com/v2/nvcf/functions` answers 403 "Authorization failed" (the NVCF problem-details body) - the bearer is recognised as a credential and refused authorization, which is the signature of a key without the Private Registry / Cloud Functions service scopes (or an org without those services: an INDIVIDUAL org has no private registry and NVCF needs enablement). The legacy token exchange (`$oauthtoken:<key>` at `authn.nvidia.com/token`) answers 401 for a personal key, `Authorization: ApiKey` answers 401, basic auth 401 "Not Authenticated", and `POST /v3/keys/get-caller-info` says "Invalid API key." for it - so none of those is the missing step; direct bearer is the right mechanism, and the key or org entitlements are the blocker. Harness finding: pystackql 3.8.4 `execute()` swallows an HTTP error on a SELECT into an empty result (the first run showed 17 false PASSes); `q()` now re-probes an empty SELECT through `executeStmt()`, which surfaces the error. + +21b. **Second live run (2026-10-16, the same key and org) - the key is invalid, not under-scoped.** `make smoke-read-only` reproduced 21a exactly (4 passed, 10 failed, 2 skipped; the public catalog on the wire, every org / registry / NVCF call refused). Direct probes settled the cause: NVIDIA's own key validator, `POST https://api.ngc.nvidia.com/v3/keys/get-caller-info` with the form body `credentials=<key>` and no Authorization header - the exact request the pinned ngcsdk makes in `ngcbase/api/authentication.py` `get_sak_key_details()` for every `nvapi-` key before anything else - answers 401 `"Invalid API key."`, and a freshly generated random `nvapi-` string gets byte-identical responses on every endpoint (403 `Access Denied` on `api.ngc.nvidia.com`, 403 `Authorization failed` on `api.nvcf.nvidia.com`, 401 `Invalid API key.` from the validator), while no header at all answers 401 `Not Authenticated`. A valid but under-scoped key would pass the validator (its response carries `orgName`, `keyType` and `products`). The key in `.env` is therefore expired, revoked or mistyped and must be regenerated (NGC console -> Setup -> Generate Personal API Key, with the Private Registry and Cloud Functions services ticked) before item 21 can be closed; the provider's auth design (direct bearer, no JWT exchange) is unchanged. The two catalog 404s in the run are a harness defect, not a provider one: the catalog `models.list` row's `name` is the model's short name but the public catalog `get` path for a model published under a team (`nvidia/nemo/...`) needs `team_name` as well, so the smoke now takes its get target from a row whose `team_name` is empty. + +21. **Live verification - still owed with an entitled key.** `make smoke` covers: bearer acceptance on `orgs`, `current_user`, `users`, `teams`, registry models; the `page_number` pagination against a real multi-page collection (terminating request behaviour, `paginationInfo` present on registry lists); the kebab query parameters; a registry model INSERT / UPDATE / DELETE; NVCF enablement (cluster groups), fleet reads and an undeployed function INSERT / version get / authorizations / DELETE. `make smoke-nvcf` adds the deploy lifecycle (billable, gated, needs `NVCF_SMOKE_CONTAINER_IMAGE`). Also to confirm: whether `/v2/nvcf/...` or the gateway's `/v2/orgs/{org}/nvcf/...` form is right for a personal key (item 7), PUT field-drop semantics on `function_versions.update` and `artifacts.replace` (keycloak rule), and whether `GET /v2/csps` needs the Private Registry scope (phase-1 probe: 401). + +## Open + +1. **Catalog search** (`/v2/search/catalog/...`, wire-proven in phase 1) has no retrievable definition (the Search API host refuses public connections); the operation stays out until a definition materializes or the authenticated gateway probe (`api.ngc.nvidia.com/v3/search/api-docs`, 401 unauthenticated) succeeds with a key. +2. **`/v2/orgs` list filters** (`Filter using org name`, `...PEC ID`, ...) are declared with prose names; the wire parameter names are unknown, so the list is unfiltered on the wire (client-side `WHERE` still applies). +3. **`csps` writes** (`create`/`update`/`delete` on `/v2/csps`) and the GPU catalog writes are publisher-privileged; mapped as documented, untested. +4. **`orgs.orgs.get` keeps `org_name` as a path parameter** (the remainder after the org prefix is empty, so it cannot ride the server template) - it does not default from `NGC_ORG`. +5. **Container images are not in the harvested definitions.** The generic artifact family (`/v2/org/{org}/{artifact_type}`) accepts `helm-charts`, `endpoints`, `agents`, `blueprints`, `apis`, `playbooks` and `skills` (the gateway answers 404 "No static resource" for `containers`); container repositories and image tags live under the container registry API (`/v2/org/{org}/repos...`, the SDK's `registry/api/image.py`), whose definition the explorer never published. A candidate for a future harvest if a definition surfaces; the docs say so. +6. **Docs casing for kebab parameters** - handled by `sanitize-docs.mjs` (kebab parameter tokens rendered as snake_case, the spelling the engine accepts). diff --git a/README.md b/README.md index 59e6732..ccf3b8d 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,246 @@ -# stackql-provider-nvidia -StackQL provider for NVIDIA +# `nvidia` provider for [`stackql`](https://github.com/stackql/stackql) + +This repository generates and documents the `nvidia` provider for StackQL, enabling SQL-based query and provisioning operations against the NVIDIA NGC control plane: NVIDIA Cloud Functions (NVCF - functions and versions, deployments and GPU specifications, cluster groups and GPU inventory, request queues, sharing grants, HTTP-polling invocation), the NGC private registry (models, resources, recipes, helm charts and other artifacts as metadata, collections, shares, encryption keys), the public NGC catalog, and NGC organizations, teams, users, roles and invitations. The provider is built using the `@stackql/provider-utils` package. + +The build procedure is the bundled Claude Code skill, [`.claude/skills/stackql-provider-development`](.claude/skills/stackql-provider-development/SKILL.md); the settled decisions are in [AGENTS.md](AGENTS.md) and the findings with their evidence in [NOTES.md](NOTES.md). + +## Positioning + +NVIDIA publishes a Go Terraform provider, [`NVIDIA/terraform-provider-ngc`](https://github.com/NVIDIA/terraform-provider-ngc), covering NVCF functions and telemetry endpoints (one resource and one data source each); it reads `NGC_API_KEY`, `NGC_ORG` and `NGC_TEAM`, and this provider uses the same variables. The surface here is generated mechanically from the published NVCF OpenAPI document and the NGC API definitions behind the NGC API explorer: 335 operations across 7 services and 82 resources, plus the `vw_gpu_capacity` view, with response schemas for the registry taken from the `ngcsdk` Python SDK's data classes. The query surfaces that matter: GPU and cluster-group inventory, NVCF function fleet state by deployment specification, function sharing audits, registry and model estate reports, and org membership - the AI infrastructure control plane as data. + +## Design Principles + +- **Bearer auth with an NGC Personal API Key** - `Authorization: Bearer` with the key in `NGC_API_KEY` (`provider-dev/config/provider_config.json`). Keys need the Private Registry service scope for the registry service and, for NVCF, Cloud Functions at the organization level (NVIDIA's own docs warn that team-level roles break NVCF keys). +- **Org scope is a server variable** - registry and organization resources are scoped by `org_name`, resolved from `NGC_ORG` via `x-stackQL-envVar`; a `WHERE org_name` value always wins. NVCF paths carry no org (the key implies it). +- **Two hosts, one provider** - NVCF management, the registry, the catalog and organizations are served from `api.ngc.nvidia.com`; queue details and invocation from `api.nvcf.nvidia.com`, carried per service. +- **Deprecation-aware mapping** - NVIDIA's NGC deprecated API reference ends team-scoped (`/teams/{team}`) paths for NVCF and sibling services on 2026-09-30; those families are excluded by rule. Private Registry team scoping is exempt from that schedule and stays mapped as `*_by_team` methods on the same resources. +- **Registry resources are metadata** - artifact binary push/pull is the registry data plane and out of scope; streaming and gRPC invocation are not in the published spec, the HTTP-polling form is mapped. +- **snake_case surface** - columns, parameters and body attributes are snake_case aliases of the camelCase and kebab-case wire names. +- **Deterministic builds** - every step is a re-runnable `make` target; manual mapping decisions are rules in scripts, never hand-edits to derived artifacts; `all_services.csv` is committed as the durable record of every operation-to-method mapping. + +Sibling-build findings are reused, not re-derived: supabase (the project-scope server template, offline validation and mock-server layers), k8s (mock-first CI, meta-route walk, snake_case aliases), clickhouse, godaddy, dockerhub, proxmox, vsphere, keycloak and vercel precedents are cited in [NOTES.md](NOTES.md). + +## Prerequisites + +- Node.js >= 22.19 and GNU make with bash (Linux, macOS or WSL) +- A `stackql` binary (`$STACKQL`, `./stackql`, or on `PATH`; `bin/start-server.sh` downloads one if none is found) +- Python 3 for the smoke suite (a venv with `pystackql` is created on demand); yarn for the docs microsite +- For live tests only: an NGC organization that is not a production one, with a Personal API Key in `NGC_API_KEY` and the organization name in `NGC_ORG` (see `.env.example`); the public catalog, the mock-backed integration suite and every other layer run without one + +## Makefile + +Every step is a `make` target (`make help` lists them). The composites: + +```bash +make all # deps, upstream drift check, full pipeline (pin check, clean, inventory, split, mappings, + # pre-normalize, normalize, generate, post-process, views, GraphQL merge), offline + + # integration + meta-route tests, docs generation, website build - no credentials needed +make upgrade # the same chain, but ACCEPTING upstream changes (re-pins the inputs - review the diff) +make build # the spec -> provider pipeline only (offline, from the committed pins) +make test # the three credential-free test layers +make smoke # live smoke suite against the test organization (sources .env if present) +``` + +`make all` never touches a real account. The live suites are `smoke`, `smoke-live` (the published provider, post-publish verification), `smoke-read-only`, `smoke-nvcf` (the gated NVCF deploy lifecycle, billable minutes) and `smoke-cleanup` (sweep `stackql-smoke-*` breadcrumbs). Under WSL keep the venv off the DrvFs mount: `make smoke VENV=$HOME/.venvs/stackql-nvidia`. + +| Target | Purpose | +|---|---| +| `make deps` | install node dependencies | +| `make fetch-spec` / `make refresh-spec` | download the NVCF spec, harvest the NGC definitions and the ngcsdk schemas; verify against the pins / accept the change | +| `make pin-check` | verify the committed downloads against the pins (no network) | +| `make clean-specs` | deterministic spec repairs and swagger-parser validation | +| `make inventory` | classify every operation into `endpoint_inventory.csv` | +| `make split` | per-service specs on their hosts, org-scoped paths rebased | +| `make mappings` / `make mappings-report` | regenerate and validate `all_services.csv` / print every derived mapping without writing | +| `make pre-normalize normalize` | lower polymorphism in the service specs | +| `make generate` | generate the provider (runs `post-process` and `graphql-merge` automatically; views spliced) | +| `make test-offline test-integration test-meta` | the three credential-free test layers | +| `make start-server` / `stop-server` / `server-status` | a local stackql server over `provider-dev/openapi` (`PORT`, default 5444) | +| `make docs website` | generate the doc pages and build the microsite | + +## 0. Acquire, pin and clean the upstream specs + +```bash +make fetch-spec # download the three inputs and verify against the recorded pins (fails on drift) +make refresh-spec # accept an upstream change (rewrites the pins - review the diff) +make clean-specs # deterministic repairs + swagger-parser validation, report in provider-dev/config/clean_report.json +``` + +Three pinned inputs (`provider-dev/config/spec_pin.json`: URL, date, sha256 of the canonical JSON; the downloads are committed since NVIDIA versions none of these URLs): + +1. **NVCF** - the published OpenAPI spec served by the NVCF API itself (`https://api.nvcf.nvidia.com/v3/openapi`, linked from the NVCF API docs; openapi 3.1.0, version 2.261.2, 36 paths, 56 operations). +2. **NGC core** - `provider-dev/scripts/harvest_ngc_spec.mjs` downloads the definitions behind the NGC API explorer (`docs.ngc.nvidia.com/api/`) from their pinned URLs: the NGC API definition (orgs, teams, users - served by the public gateway at `api.ngc.nvidia.com/v3/api-docs`) and the Private Artifacts (Models) API (registry and catalog artifact metadata, from `models.ngc.nvidia.com`). The definitions that refuse public connections are recorded in `download_manifest.json`. +3. **ngcsdk** - the July 2026 models definition declared no 2xx response on 303 of its 333 operations. `harvest_ngc_sdk_schemas.mjs` downloads the `ngcsdk` wheel from PyPI (pinned version and sha256), converts its auto-generated data classes (`registry/data/model/*.py`) to JSON Schema, and the clean step attaches them as 200 responses to any operation that lacks one. The current definition ships responses on every operation, so the rule injects nothing today; it stays as the recorded fallback. + +`clean_specs.mjs` applies deterministic repair rules with a per-source report: the relative server on the NGC definition, the `/v1` -> `/v2` public-gateway prefix on the models definition, snake_case path parameters throughout, path parameters whose declared name does not match their template token, cookie parameters (unsupported by the engine), query parameters with prose names, and the SDK response injection. It fails without writing on anything unfixable. Before accepting a refresh: `node .claude/skills/stackql-provider-development/scripts/spec_diff.mjs <pinned> <fetched>` and record the summary in `NOTES.md`. + +## 1. Endpoint inventory and service split + +```bash +make inventory +make split +``` + +`build_inventory.mjs` classifies every operation of the cleaned specs into `provider-dev/config/endpoint_inventory.csv` - host, org and team scoping, the org-scope rebase (`org_prefix`, `rebased_path`, `server_url`), declared auth and wire-observed public reads, pagination parameters, wire casing, response shape and objectKey candidate, the proposed service / resource / method / SQL verb, and a skip reason where applicable. The deprecation schedule is applied here as a rule (`SCHEDULED_DEPRECATIONS`). The CSV is the single source of truth every later step reads; it fails without writing on an unclassified operation, a duplicate method, a rebase collision, a service spanning two hosts, or a SELECT method without a projectable response. + +The split assigns operations to services from the inventory, sets each service's root server (host) and title (`provider-dev/config/service_names.json`), and rebases org-scoped operations: the leading org prefix (`/v2/org/{org_name}`, `/v3/orgs/{org_name}`, `/v2/artifact-registry/org/{org_name}`) is removed from the path and the org path parameter dropped, to be re-attached as a server template in post-processing. Output: `provider-dev/source/<service>.yaml` (committed build artifacts). + +495 operations inventoried, 335 mapped (select 157, insert 60, update 42, delete 48, replace 4, exec 24), 160 skipped with reason codes (service-infra 24, internal-admin 34, deprecated-inline 44, superseded-by-v3-twin 4, non-generator-http-verb 7, data-plane-file-transfer 22, non-json-response 4, non-projectable-response 2, legacy-twin 3, duplicate-endpoint-family 15, inbound-webhook-not-client-api 1), 82 resources across 7 services: + +| Service | Resources | Contents | +|---|---|---| +| `orgs` | 11 | organizations, teams, users, team members and member roles, role grants, invitations, current user | +| `private_registry` | 30 | org-scoped artifact metadata: models, resources, recipes, generic artifacts (helm charts, endpoints, blueprints, agents, playbooks, APIs, skills), versions and files, collections, shares, deployment parameters, encryption keys, workflows; `*_by_team` twins | +| `catalog` | 21 | public artifact metadata reads plus the GPU and cloud service provider catalogs, NIM metadata publishing | +| `nvcf_functions` | 7 | functions, versions, function ids, metadata, authorizations (sharing grants), secrets, rate limits | +| `nvcf_deployments` | 7 (+ 1 view) | deployments and GPU specifications, cluster groups and GPUs, registry credentials, telemetries; `vw_gpu_capacity` | +| `nvcf_queues` | 2 | queue details, queue position | +| `nvcf_invocation` | 4 | HTTP-polling invocation (pexec + status), assets, assertion tokens | + +## 2. Mappings + +```bash +make mappings-report # print every derived mapping without writing +make mappings # regenerate all_services.csv from scratch and apply the inventory mappings +``` + +`map_operations.mjs` fills the `stackql_resource_name`, `stackql_method_name`, `stackql_verb` and `stackql_object_key` columns from the inventory (joined by service and operationId), validates that every operation is mapped, that method names are unique per resource and that overloaded SQL verbs have unique path-parameter signatures, prints the mapping diff against the committed `all_services.csv` (a diff there is a breaking-change review, not noise), and fails without writing on any violation. + +| Operation pattern | StackQL verb | Resource / method | +|---|---|---| +| GET collection | `SELECT` | `<resource>.list` (objectKey per envelope: `$.models`, `$.functions`, `$.clusterGroups`, ...) | +| GET single | `SELECT` | `<resource>.get` (entity envelopes unwrapped: `$.model`, `$.function`, `$.user`, ...) | +| POST create | `INSERT` | `<resource>.create` | +| PATCH / PUT update | `UPDATE` (PUT with a PATCH twin: `REPLACE`) | `<resource>.update` / `replace` | +| DELETE | `DELETE` | `<resource>.delete` | +| team-scoped registry twins | same verb | `<resource>.<method>_by_team` | +| function sharing add / remove / set | `INSERT` / `DELETE` / `REPLACE` | `nvcf_functions.authorizations` - grants-as-data | +| shares, role grants, team membership | `INSERT` / `DELETE` | `*_shares`, `user_roles`, `team_members`, ... | +| HTTP-polling invocation | `EXEC` + status `SELECT` | `nvcf_invocation.invocations.invoke`, `invocation_status.get` | +| actions (purge, stash, malware scan, resend, api-key mint, ...) | `EXEC` | on the owning resource | +| streaming / gRPC invocation, artifact binary transfer, admin and infra endpoints, scheduled team-scoped families | skipped | reason-coded in the inventory | + +## 3. Normalize + +```bash +make pre-normalize # nvidia-specific passes in provider-dev/scripts/pre_normalize.mjs +make normalize # provider-utils: allOf flatten, opaque objects, param lifting, bare-array wrap +``` + +`pre_normalize.mjs` lowers OpenAPI 3.1 constructs (type arrays, numeric exclusive bounds) and strips the models definition's per-operation `x-ssa-scopes` security hints. `normalize` (provider-utils) then flattens composition, converts opaque objects to JSON-blob strings, lifts path-item parameters onto operations and wraps bare-array responses (the GPU catalog). + +## 4. Generate + +```bash +make generate # rm output, generate (bearer auth, snake_case aliases, naive bodies, views), post-process, GraphQL merge +``` + +Output: `provider-dev/openapi/src/nvidia/v00.00.00000/provider.yaml` + `services/*.yaml` (committed). No `--servers` or `--service-config` is passed: servers are per service (two hosts) and the org templates, casing and pagination are per method, all driven by the inventory in `post_process.mjs`, which applies as numbered rules: + +- **Org server templates** - every rebased path item gets a path-level `servers` template (`https://api.ngc.nvidia.com/v2/org/{org_name}` and the v3 / artifact-registry forms) whose `org_name` variable carries `x-stackQL-envVar: NGC_ORG`. any-sdk resolves servers operation -> path item -> document, so the override applies to those operations only; it is applied after generation because normalize strips path-level servers. +- **Casing** - `request.nativeCasing: camel` (NVCF and JSON bodies) or `kebab` (methods with kebab query parameters such as `page-size`, `resolve-labels`) on every method, paired with `snake_case_aliases` on the provider. +- **Pagination and LIMIT pushdown** - NGC core collections page with zero-based `page-number` + `page-size` and echo `paginationInfo {index, totalPages}`; the `page_number` algorithm is configured per list method and `LIMIT n` is pushed to `page-size`. +- **Opaque bodies and scalar lists** - the pexec invocation body becomes a `{body}` wrapper with a request transform; `function_ids` and the invocation status body are re-shaped by response transforms. + +Views in `views/<service>/views.yaml` are spliced by the generator (`vw_gpu_capacity` in `nvcf_deployments`: one row per cluster group x GPU x instance type); `provider-dev/source-graphql/` is present for the standard `make generate` shape but lists no operations (NVIDIA publishes no GraphQL API). + +### Organization scope + +```bash +export NGC_API_KEY='nvapi-...' +export NGC_ORG='0123456789ab' # org_name default; a WHERE org_name value always wins +``` + +```sql +SELECT name, framework, latest_version_id_str, updated_date +FROM nvidia.private_registry.models; + +SELECT name FROM nvidia.private_registry.models WHERE org_name = 'another-org'; +SELECT name FROM nvidia.private_registry.models WHERE team_name = 'ml-platform'; -- the *_by_team twin +``` + +With `NGC_ORG` unset, `org_name` is a required parameter on every org-scoped method (visible in `SHOW METHODS`). + +## 5. Test + +```bash +make test-offline # SHOW / DESCRIBE against the local file registry +make test-integration # mock NGC + NVCF API, row-level and wire-level assertions +make test-meta # meta-route walk over a local stackql server +make smoke # live (needs .env) +``` + +[tests/offline_validation.mjs](tests/offline_validation.mjs) runs `SHOW SERVICES` / `SHOW RESOURCES` / `SHOW METHODS` / `DESCRIBE EXTENDED` against the local file registry and asserts the service and resource lists, verbs and required parameters, the `NGC_ORG` behaviour (`org_name` required only when unset), snake aliases, the transforms and the view - no network, no server. + +[tests/integration/mock_nvidia_server.mjs](tests/integration/mock_nvidia_server.mjs) plays both hosts with real wire shapes (the `{<entities>, paginationInfo, requestStatus}` envelopes, the bare-array GPU catalog, the NVCF `{functions}` / `{function}` envelopes, the 202 + `NVCF-REQID` invocation) and enforces the bearer token. [run_integration_tests.mjs](tests/integration/run_integration_tests.mjs) materialises a test copy of the provider pointed at the mock (`harness.mjs`) and asserts row-level results and wire calls: envelope unwrapping, pagination over three pages and `LIMIT` pushdown, `NGC_ORG` resolution and override, the `*_by_team` routing, kebab and camel casing on the wire, a registry model lifecycle, the NVCF function / authorization / deployment lifecycles, queue details on the second host, the polling invocation, the view and a 404. `npm run probe -- "SELECT ..."` runs ad-hoc SQL against the mock and prints the wire calls. + +The meta-route suite starts a StackQL wire server against the local registry and walks every service, resource and method, asserting that every resource has methods, that no two methods on the same SQL verb share a required-parameter signature, and that every selectable resource yields a non-empty `DESCRIBE EXTENDED`. + +[tests/smoke_test.py](tests/smoke_test.py) (pystackql) runs against a real NGC organization, tiered by what the credentials can reach: the public catalog; organization and registry reads plus a free registry model `INSERT` / `UPDATE` / `DELETE` (the `UPDATE` string-coercion probe); NVCF reads (cluster groups and GPUs, fleet state) plus an undeployed function `INSERT` / version get / authorizations / `DELETE` where Cloud Functions is enabled (auto-detected, skipped with a notice otherwise). Everything it creates is named `stackql-smoke-<stamp>`, breadcrumbs are swept first, every statement is paced, and a `429` fails the run. Only the gated deploy lifecycle costs anything (the smallest instance type of the first cluster group, waited to `ACTIVE`, always torn down; well under $1): + +```bash +make smoke # local provider (creates a pystackql venv on demand) +make smoke-live # --live: the published provider in the stackql registry +make smoke-read-only # reads only +make smoke-nvcf # + the gated deploy lifecycle (billable minutes; needs NVCF_SMOKE_CONTAINER_IMAGE) +make smoke-cleanup # just sweep breadcrumbs +``` + +Never run tests against a production organization. The live run still owed, and the result of the last attempt, are recorded in [NOTES.md](NOTES.md) (items 21, 21a, 21b). + +## 6. Docs + +```bash +make docs # generate website/docs (snake_case surface, source project link) and sanitize for MDX +make website # yarn install && yarn build (vendors the shared stackql/docusaurus-config) +make website-start +``` + +The doc microsite (`website/`) is Docusaurus 3.10 on the shared [`stackql/docusaurus-config`](https://github.com/stackql/docusaurus-config), vendored into `.shared-config/` at build time. Site-local files are the provider identity (`website/provider.js`), thin wrappers (`docusaurus.config.js`, which flips `showLastUpdateTime` on, and `sidebars.js`), the shared components under `src/`, and static assets including `static/CNAME`. `provider-dev/docgen/provider-data/headerContent1.txt` is the landing-page front matter and pitch; `headerContent2.txt` the getting-started page (installation, scope, authentication, organization scope, pagination and casing, rate limit, deprecations, example queries). `make docs` passes `--source-project $(SOURCE_PROJECT)`, which adds a `source project` row to the Provider Summary linking to this repository. Commit `website/docs` after every regeneration. + +To publish the site, select GitHub Actions as the source under Pages -> Build and deployment in the repository settings (the deploy workflows build from `main` with `yarn install --frozen-lockfile`, cached on the committed `website/yarn.lock`) and create the DNS record (the served hostname is pinned by `website/static/CNAME`): + +| Source domain | Record type | Target | +|---|---|---| +| `nvidia-provider.stackql.io` | CNAME | `stackql.github.io.` | + +The provider is listed in the Providers menu of every StackQL site by adding it to `src/configs/providers.json` in the `stackql.io` repository. + +## 7. Publish + +Push the generated `provider-dev/openapi/src/nvidia` directory to `providers/src` in a feature branch of [stackql-provider-registry](https://github.com/stackql/stackql-provider-registry) and follow the [registry release flow](https://github.com/stackql/stackql-provider-registry/blob/dev/docs/build-and-deployment.md). Verify from the dev registry, then `make smoke-live`: + +```bash +export DEV_REG='{ "url": "https://registry-dev.stackql.app/providers" }' +stackql --registry="${DEV_REG}" shell +``` + +```sql +REGISTRY PULL nvidia; +``` + +## 8. CI + +[.github/workflows/build-and-test.yml](.github/workflows/build-and-test.yml): on push / PR - `npm ci`, `stackql/setup-stackql`, pin verification against upstream (warns on drift and restores the committed inputs), `make build`, a hard failure on uncommitted generation drift, the three credential-free test layers, docs generation; a live smoke job that is skipped at the job level on pull requests, on the schedule and until the `NGC_API_KEY` / `NGC_ORG` secrets are configured (never the deploy lifecycle); a weekly `upstream-drift` job that re-downloads every input, diffs it against the pins, snapshots the NGC deprecation schedule page and opens a labelled issue when anything moves. The web deploy workflows build the site from `main`. + +## Authentication reference + +`provider-dev/config/provider_config.json` becomes `config:` in `provider.yaml`: + +```json +{"auth": {"type": "bearer", "credentialsenvvar": "NGC_API_KEY"}, "snake_case_aliases": true} +``` + +A user can override at runtime with `stackql --auth='{"nvidia": {"type": "bearer", "credentialsenvvar": "MY_OTHER_VAR"}}'`. + +## Contributing + +Contributions are welcome - rules in scripts, `make build && make test`, then a pull request. + +## Security + +Report vulnerabilities privately through the repository's advisory form, never in a public issue - see [SECURITY.md](SECURITY.md). + +## License + +MIT - see [LICENSE](LICENSE). diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..7910526 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,46 @@ +# Security Policy + +The StackQL team takes the security of the `nvidia` StackQL provider seriously. We appreciate everyone who reports vulnerabilities responsibly, and we will do our best to acknowledge and address valid reports promptly. + +## Reporting a Vulnerability + +Please do not open a public GitHub issue for security reports. A public issue discloses the problem before a fix is available and puts users at risk. + +Instead, report privately using GitHub private vulnerability reporting: + +1. Open the [new advisory form](https://github.com/stackql-registry/stackql-provider-nvidia/security/advisories/new) (Security tab -> Advisories -> "Report a vulnerability"). +2. Provide as much detail as you can: the provider version (`SHOW PROVIDERS` in a `stackql shell`, or the version directory under `provider-dev/openapi/src/nvidia/`), the resource and method involved, reproduction steps (the SQL statement and the request it produced, with credentials redacted), impact, and any suggested remediation. +3. Submit. This opens a private advisory thread visible only to you and the maintainers. + +If you cannot use GitHub private vulnerability reporting, email us at [info@stackql.io](mailto:info@stackql.io). Please put "SECURITY" in the subject line and treat the contents as confidential. + +## Supported Versions + +Security fixes are applied to the latest version of the provider published to the [StackQL provider registry](https://github.com/stackql/stackql-provider-registry); `REGISTRY PULL nvidia` installs it. Earlier published versions are supported on a best-effort basis only; we recommend pulling the latest version. + +## Response Expectations + +These are targets, not contractual guarantees: + +- We aim to acknowledge a report within a few business days. +- We will keep you updated as we investigate and work on a fix. +- We will coordinate disclosure timing with you once a fix or mitigation is ready. + +## Disclosure Policy + +We follow coordinated (responsible) disclosure. Please give us a reasonable opportunity to release a fix before any public disclosure. We are happy to credit reporters in the advisory and release notes, unless you prefer to remain anonymous. + +## Scope + +This policy covers what this repository produces and runs: the generated provider definition under `provider-dev/openapi/`, the build scripts under `provider-dev/scripts/` and `bin/`, the test harnesses under `tests/` (including the mock API server), the documentation site under `website/`, and the CI workflows. Reports in scope include a credential or token leaking into a generated document, a log, a docs page or a test fixture; a server template or request transform that sends a credential to a host other than the NVIDIA NGC and NVCF APIs; and a test harness that reaches a live account when it should not. + +Issues in the following belong elsewhere: + +- The `stackql` engine (SQL parsing, authentication handling, the HTTP client): [stackql/stackql](https://github.com/stackql/stackql/security/policy). +- The request-execution library: [stackql/any-sdk](https://github.com/stackql/any-sdk). +- The provider build tooling: [stackql-registry/stackql-provider-utils](https://github.com/stackql-registry/stackql-provider-utils). +- The NVIDIA NGC and NVCF APIs themselves: NVIDIA's own security program. This provider describes that API; it does not operate it. + +## Credentials + +The provider reads credentials from environment variables at query time and does not store them. The live smoke suite reads them from `.env`, which is excluded from version control; never commit a real credential. If a credential is committed or published by mistake, rotate it first, then report the exposure as above. diff --git a/bin/fetch-specs.sh b/bin/fetch-specs.sh new file mode 100644 index 0000000..944bcb4 --- /dev/null +++ b/bin/fetch-specs.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +# +# Acquire every upstream input into provider-dev/downloaded/: +# 1. NVCF - published OpenAPI spec served by the NVCF API itself +# (provider-dev/scripts/fetch_nvcf_spec.mjs) +# 2. NGC - per-service definitions harvested from the API explorer at +# docs.ngc.nvidia.com/api/ (provider-dev/scripts/harvest_ngc_spec.mjs) +# 3. ngcsdk - response schemas derived from the pinned ngcsdk PyPI wheel +# (provider-dev/scripts/harvest_ngc_sdk_schemas.mjs; the wheel +# is pinned by version + sha256 inside the script) +# then record (default) or verify (--check) the pins in +# provider-dev/config/spec_pin.json. +# +# Re-runnable. With --check the downloads are refreshed and verified against +# the recorded pins WITHOUT rewriting them: any drift fails the run, and +# `git checkout -- provider-dev/downloaded` restores the pinned inputs +# (or `npm run fetch-specs` accepts the change by re-pinning). + +set -euo pipefail + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +REPO_ROOT="$( cd "$SCRIPT_DIR/.." && pwd )" + +CHECK_MODE="" +if [ "${1:-}" = "--check" ]; then + CHECK_MODE="--check" +fi + +node "$REPO_ROOT/provider-dev/scripts/fetch_nvcf_spec.mjs" +node "$REPO_ROOT/provider-dev/scripts/harvest_ngc_spec.mjs" +node "$REPO_ROOT/provider-dev/scripts/harvest_ngc_sdk_schemas.mjs" +node "$REPO_ROOT/provider-dev/scripts/pin_specs.mjs" $CHECK_MODE + +echo "Done. Upstream inputs in $REPO_ROOT/provider-dev/downloaded" diff --git a/bin/server-status.sh b/bin/server-status.sh new file mode 100644 index 0000000..ed92445 --- /dev/null +++ b/bin/server-status.sh @@ -0,0 +1,78 @@ +#!/bin/bash + +# Default port +PORT="5444" + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case $1 in + --port) + PORT="$2" + shift 2 + ;; + --help) + echo "Usage: server-status.sh [--port PORT]" + echo "Check status of StackQL server" + exit 0 + ;; + *) + echo "Unknown option: $1" + echo "Usage: server-status.sh [--port PORT]" + exit 1 + ;; + esac +done + +# Search for stackql process running on specified port +stackql_process=$(ps -ef | grep -E "[s]tackql.*--pgsrv.port=${PORT}") + +# Check if the process is running +if [ -z "$stackql_process" ]; then + echo "StackQL server is not running on port ${PORT}." + exit 1 +else + # Extract PID using awk + pid=$(echo "$stackql_process" | awk '{print $2}') + + # Get process start time + if [ "$(uname)" == "Darwin" ]; then + # macOS + start_time=$(ps -p $pid -o lstart= 2>/dev/null) + else + # Linux + start_time=$(ps -p $pid -o lstart= 2>/dev/null) + fi + + # Get registry path if possible + registry_info=$(echo "$stackql_process" | grep -o -E "registry=\{[^}]+\}") + + echo "StackQL server is running on port ${PORT} (PID: ${pid})" + echo "Started: ${start_time}" + + if [ ! -z "$registry_info" ]; then + echo "Registry: ${registry_info#*=}" + fi + + # Check if we can connect to the server + echo "Testing connection..." + if command -v psql &> /dev/null; then + if PGPASSWORD=stackql psql -h localhost -p ${PORT} -U stackql -d stackql -c "SELECT 1 as test" &> /dev/null; then + echo "OK: server is accepting connections" + else + echo "FAILED: could not connect to server" + fi + else + echo "Note: Install psql client to test connection" + fi + + # Check server log + BASE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/.." && pwd )" + LOG_FILE="${BASE_DIR}/stackql-server.log" + + if [ -f "$LOG_FILE" ]; then + echo "Recent log entries:" + tail -n 5 "$LOG_FILE" + fi + + exit 0 +fi \ No newline at end of file diff --git a/bin/split.mjs b/bin/split.mjs new file mode 100644 index 0000000..1a43d2f --- /dev/null +++ b/bin/split.mjs @@ -0,0 +1,172 @@ +#!/usr/bin/env node + +// Split the cleaned upstream specs (provider-dev/downloaded/cleaned) into +// per-service specs in provider-dev/source. Service assignment is the +// endpoint inventory (provider-dev/scripts/service_rules.mjs reads it) - +// one deterministic classification for every operation, never hand-edits +// to the outputs. +// +// After the split, every service spec is rewritten from the inventory: +// - root `servers` is the service's host (api.ngc.nvidia.com for the NGC +// core and NVCF management services, api.nvcf.nvidia.com for queue +// details and invocation) +// - org-scoped operations are rebased: the leading org prefix +// (/v2/org/{org_name}, /v3/orgs/{org_name}, /v2/artifact-registry/org/ +// {org_name}) is removed from the path key and the org path parameter +// is dropped; post_process.mjs re-attaches it as a path-level server +// template whose org_name variable resolves from NGC_ORG via +// x-stackQL-envVar (the clickhouse / supabase precedent). It is done +// here, before the mappings, so all_services.csv keys carry the +// rebased paths. +// +// Usage: node bin/split.mjs --provider-name nvidia [--input-dir DIR] [--output-dir DIR] [--overwrite] [--verbose] + +import fs from 'fs'; +import os from 'os'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import yaml from 'js-yaml'; +import { providerdev } from '@stackql/provider-utils'; +import { loadInventory } from '../provider-dev/scripts/lib/inventory.mjs'; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +const HTTP_VERBS = ['get', 'post', 'put', 'patch', 'delete']; + +async function main() { + const args = process.argv.slice(2); + const getArg = (flag) => { + const index = args.indexOf(flag); + return index !== -1 ? args[index + 1] : null; + }; + + const providerName = getArg('--provider-name'); + const inputDir = getArg('--input-dir') || path.join(repoRoot, 'provider-dev', 'downloaded', 'cleaned'); + const outputDir = getArg('--output-dir') || path.join(repoRoot, 'provider-dev', 'source'); + const overwrite = args.includes('--overwrite'); + const verbose = args.includes('--verbose'); + + if (!providerName) { + console.error('Error: Missing required arguments'); + console.error('Usage: node bin/split.mjs --provider-name NAME [--input-dir DIR] [--output-dir DIR] [--overwrite] [--verbose]'); + process.exit(1); + } + + const rulesPath = path.join(repoRoot, 'provider-dev', 'scripts', 'service_rules.mjs'); + const { serviceFor } = await import(`file://${rulesPath}`); + const { byOp, hostByService } = loadInventory(); + const serviceNames = JSON.parse(fs.readFileSync(path.join(repoRoot, 'provider-dev', 'config', 'service_names.json'), 'utf8')); + + const specFiles = fs.readdirSync(inputDir).filter((f) => f.endsWith('.json')).sort(); + if (specFiles.length === 0) { + console.error(`Error: No cleaned specs found in ${inputDir}`); + process.exit(1); + } + + fs.mkdirSync(outputDir, { recursive: true }); + const existing = fs.readdirSync(outputDir).filter((f) => /\.(yaml|yml|json)$/.test(f)); + if (existing.length > 0 && !overwrite) { + console.error(`Error: Output directory ${outputDir} is not empty. Use --overwrite to replace existing service specs.`); + process.exit(1); + } + + // service file -> { doc, sourceFile } + const produced = new Map(); + + for (const specFile of specFiles) { + const sourceName = specFile.replace(/\.json$/, ''); + console.log(`Splitting ${specFile} (source: ${sourceName})`); + const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'stackql-split-')); + try { + const result = await providerdev.split({ + apiDoc: path.join(inputDir, specFile), + providerName, + outputDir: tmpDir, + svcDiscriminator: 'function', + svcDiscriminatorFn: (pathKey, operationId, tags, ctx) => serviceFor(sourceName, pathKey, operationId, tags, ctx), + overwrite: true, + verbose, + svcNameOverrides: {} + }); + if (!result) { + console.error(`Error: Split failed for ${specFile}`); + process.exit(1); + } + for (const outFile of fs.readdirSync(tmpDir)) { + if (produced.has(outFile)) { + console.error(`Error: Service spec ${outFile} produced by both ${produced.get(outFile).sourceFile} and ${specFile} - service names must not collide across sources`); + process.exit(1); + } + produced.set(outFile, { doc: yaml.load(fs.readFileSync(path.join(tmpDir, outFile), 'utf8')), sourceFile: specFile }); + } + } finally { + fs.rmSync(tmpDir, { recursive: true, force: true }); + } + } + + // rewrite from the inventory: host, org rebase + const summary = []; + for (const [outFile, { doc, sourceFile }] of produced) { + const service = outFile.replace(/\.(yaml|yml|json)$/, ''); + const host = hostByService.get(service); + if (!host) { + console.error(`Error: no host recorded for service ${service} in the inventory`); + process.exit(1); + } + doc.servers = [{ url: host }]; + const names = serviceNames[service]; + if (!names) { + console.error(`Error: service ${service} has no entry in provider-dev/config/service_names.json`); + process.exit(1); + } + doc.info = { ...(doc.info || {}), title: names.title, description: names.description }; + + const newPaths = {}; + let rebased = 0, kept = 0; + for (const [pathKey, item] of Object.entries(doc.paths || {})) { + for (const verb of HTTP_VERBS) { + const op = item[verb]; + if (!op) continue; + const row = byOp.get(`${sourceFile}::${op.operationId}`); + if (!row) { + console.error(`Error: ${sourceFile} ${verb} ${pathKey} (${op.operationId}) is not in the inventory`); + process.exit(1); + } + if (row.service !== service) { + console.error(`Error: ${sourceFile} ${op.operationId} landed in ${service} but the inventory says ${row.service}`); + process.exit(1); + } + const target = row.rebased_path; + const dropOrg = row.org_prefix !== ''; + const orgParamNames = new Set(['org_name', 'org']); + const prune = (params) => (params || []).filter((p) => !(p && p.in === 'path' && orgParamNames.has(p.name))); + if (!newPaths[target]) newPaths[target] = {}; + if (newPaths[target][verb]) { + console.error(`Error: rebase collision in ${service}: ${verb} ${target} produced twice (${pathKey})`); + process.exit(1); + } + // path-item level parameters are lifted onto each operation so the + // rebased path item stays self-contained + const inherited = (item.parameters || []).filter((p) => !(op.parameters || []).some((q) => q && p && q.name === p.name && q.in === p.in)); + const params = [...inherited, ...(op.parameters || [])]; + op.parameters = dropOrg ? prune(params) : params; + newPaths[target][verb] = op; + if (dropOrg) rebased++; else kept++; + } + } + doc.paths = newPaths; + summary.push(`${outFile}: ${Object.keys(newPaths).length} paths on ${host} (${rebased} org-scoped operations rebased, ${kept} kept as root paths)`); + } + + for (const f of existing) fs.rmSync(path.join(outputDir, f)); + for (const [outFile, { doc }] of produced) { + fs.writeFileSync(path.join(outputDir, outFile), yaml.dump(doc, { lineWidth: -1, noRefs: true })); + } + + console.log(`Split operation completed successfully: ${produced.size} service specs written to ${outputDir}`); + for (const line of summary.sort()) console.log(` ${line}`); +} + +main().catch((err) => { + console.error('Error splitting OpenAPI doc(s):', err); + process.exit(1); +}); diff --git a/bin/start-server.sh b/bin/start-server.sh new file mode 100644 index 0000000..ae23ad4 --- /dev/null +++ b/bin/start-server.sh @@ -0,0 +1,133 @@ +#!/bin/bash + +# Get current directory +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +BASE_DIR="$( cd "$DIR/.." && pwd )" + +# Parse command line arguments +PROVIDER="" +REG_PATH="" +PORT="5444" +VERIFY="false" + +function display_help() { + echo "Usage: start-server.sh [OPTIONS]" + echo "Options:" + echo " --provider NAME Provider name (default: use provider from package.json)" + echo " --registry PATH Path to local registry (default: current directory)" + echo " --port PORT Port to run server on (default: 5444)" + echo " --verify Enable signature verification (default: false)" + echo " --help Display this help message" +} + +while [[ $# -gt 0 ]]; do + case $1 in + --provider) + PROVIDER="$2" + shift 2 + ;; + --registry) + REG_PATH="$2" + shift 2 + ;; + --port) + PORT="$2" + shift 2 + ;; + --verify) + VERIFY="true" + shift + ;; + --help) + display_help + exit 0 + ;; + *) + echo "Unknown option: $1" + display_help + exit 1 + ;; + esac +done + +# If provider not specified, try to get from package.json +if [ -z "$PROVIDER" ]; then + if [ -f "$BASE_DIR/package.json" ]; then + PROVIDER=$(grep -o '"name": "stackql-provider-[^"]*"' "$BASE_DIR/package.json" | sed 's/"name": "stackql-provider-//' | sed 's/"//') + fi +fi + +# If registry path not specified, use current directory +if [ -z "$REG_PATH" ]; then + REG_PATH="$BASE_DIR/provider-dev/openapi" +fi + +echo "Using provider: $PROVIDER" +echo "Registry path: $REG_PATH" +echo "Port: $PORT" +echo "Verify signatures: $VERIFY" + +# Resolve the stackql binary: $STACKQL, ./stackql, `stackql` on PATH, else +# download the latest release into the repo root (gitignored). +if [ -n "${STACKQL:-}" ] && [ -x "$STACKQL" ]; then + STACKQL_BIN="$STACKQL" +elif [ -x "$BASE_DIR/stackql" ]; then + STACKQL_BIN="$BASE_DIR/stackql" +elif command -v stackql > /dev/null 2>&1; then + STACKQL_BIN="$(command -v stackql)" +else + echo "StackQL binary not found. Downloading..." + OS=$(uname -s | tr '[:upper:]' '[:lower:]') + ARCH=$(uname -m) + if [ "$ARCH" = "x86_64" ]; then + ARCH="amd64" + elif [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then + ARCH="arm64" + fi + if [ "$OS" = "darwin" ]; then + DOWNLOAD_URL="https://releases.stackql.io/stackql/latest/stackql_darwin_${ARCH}.zip" + elif [ "$OS" = "linux" ]; then + DOWNLOAD_URL="https://releases.stackql.io/stackql/latest/stackql_linux_${ARCH}.zip" + else + echo "Unsupported OS: $OS" + echo "Please download stackql manually from https://github.com/stackql/stackql/releases" + exit 1 + fi + cd "$BASE_DIR" + curl -L -o stackql.zip "$DOWNLOAD_URL" + unzip -o stackql.zip + rm stackql.zip + chmod +x stackql + STACKQL_BIN="$BASE_DIR/stackql" + echo "StackQL binary downloaded successfully" +fi +echo "StackQL binary: $STACKQL_BIN ($("$STACKQL_BIN" --version 2>/dev/null | head -1))" + +# Set registry configuration +if [ "$VERIFY" = "true" ]; then + REG='{"url": "file://'${REG_PATH}'", "localDocRoot": "'${REG_PATH}'", "verifyConfig": {"nopVerify": false}}' +else + REG='{"url": "file://'${REG_PATH}'", "localDocRoot": "'${REG_PATH}'", "verifyConfig": {"nopVerify": true}}' +fi + +# Check if server is already running +if pgrep -f "stackql.*--pgsrv.port=${PORT}" > /dev/null; then + echo "StackQL server is already running on port ${PORT}" + exit 0 +fi + +# Start the server +echo "Starting StackQL server with registry: $REG" +cd "$BASE_DIR" +nohup "$STACKQL_BIN" --registry="${REG}" --pgsrv.port="${PORT}" srv > stackql-server.log 2>&1 & +SERVER_PID=$! + +# Check if server started successfully +sleep 2 +if ps -p $SERVER_PID > /dev/null; then + echo "StackQL server started successfully with PID: $SERVER_PID" + echo "Server log: $BASE_DIR/stackql-server.log" +else + echo "Failed to start StackQL server. Check log file: $BASE_DIR/stackql-server.log" + exit 1 +fi \ No newline at end of file diff --git a/bin/stop-server.sh b/bin/stop-server.sh new file mode 100644 index 0000000..fc7f070 --- /dev/null +++ b/bin/stop-server.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +# Get command line arguments +PORT="5444" + +while [[ $# -gt 0 ]]; do + case $1 in + --port) + PORT="$2" + shift 2 + ;; + *) + echo "Unknown option: $1" + echo "Usage: stop-server.sh [--port PORT]" + exit 1 + ;; + esac +done + +# Find the process ID of the StackQL server on the specified port +PID=$(pgrep -f "stackql.*--pgsrv.port=${PORT}") + +if [ -z "$PID" ]; then + echo "No stackql server found running on port ${PORT}." +else + echo "Stopping stackql server on port ${PORT} (PID: $PID)..." + kill $PID + + # Check if server stopped + sleep 2 + if ps -p $PID > /dev/null; then + echo "Server did not stop gracefully, attempting force kill..." + kill -9 $PID + + sleep 1 + if ps -p $PID > /dev/null; then + echo "Failed to stop server. Please check manually with 'ps -ef | grep stackql'" + exit 1 + fi + fi + + echo "StackQL server stopped successfully." +fi \ No newline at end of file diff --git a/bin/test-meta-routes.cjs b/bin/test-meta-routes.cjs new file mode 100644 index 0000000..2d60f99 --- /dev/null +++ b/bin/test-meta-routes.cjs @@ -0,0 +1,461 @@ +#!/usr/bin/env node + +const { runQuery } = require('@stackql/pgwire-lite'); +const fs = require('fs'); +const path = require('path'); + +// Get current directory +const baseDir = path.resolve(path.dirname(process.argv[1]), '..'); + +// Default connection settings +const defaultOptions = { + user: 'stackql', + database: 'stackql', + // IPv4 loopback, not 'localhost': stackql srv binds 0.0.0.0 and Node + // resolves 'localhost' to ::1 first, which refuses the connection + host: '127.0.0.1', + port: 5444, + debug: false, +}; + +// Parse command line arguments +const args = process.argv.slice(2); +let provider = null; +let port = 5444; +let host = '127.0.0.1'; +let verbose = false; +let outputFormat = 'json'; +let timeoutMs = 60000; // Default timeout: 60 seconds + +for (let i = 0; i < args.length; i++) { + if (args[i].startsWith('--')) { + switch (args[i]) { + case '--port': + port = parseInt(args[++i], 10); + break; + case '--host': + host = args[++i]; + break; + case '--verbose': + verbose = true; + break; + case '--format': + outputFormat = args[++i]; + if (!['json', 'csv', 'markdown'].includes(outputFormat)) { + console.error(`Error: Invalid output format "${outputFormat}". Must be json, csv, or markdown.`); + process.exit(1); + } + break; + case '--timeout': + timeoutMs = parseInt(args[++i], 10); + break; + case '--help': + console.log(` +Usage: test-meta-routes.js <provider> [OPTIONS] + +Test all metadata routes for a StackQL provider. + +Arguments: + provider Name of the provider to test + +Options: + --port PORT Server port (default: 5444) + --verbose Enable verbose output + --format FORMAT Output format: json, csv, markdown (default: json) + --timeout MILLISECONDS Query timeout in milliseconds (default: 60000) + --help Display this help message + `); + process.exit(0); + break; + default: + console.error(`Error: Unknown option "${args[i]}"`); + process.exit(1); + } + } else if (!provider) { + provider = args[i]; + } +} + +// Check that provider was specified +if (!provider) { + console.error('Error: Provider name must be specified'); + console.error('Usage: test-meta-routes.js <provider> [OPTIONS]'); + process.exit(1); +} + +// Set up connection options +const connectionOptions = { + ...defaultOptions, + host, + port, + // Set query timeout + statement_timeout: timeoutMs, +}; + +// Get start time +const startTime = new Date(); + +// resources whose select response is a scalar (text) body - a single +// anonymous column at query time, so DESCRIBE EXTENDED is legitimately +// empty. Keep it empty unless a resource genuinely returns a scalar; a +// response transform in post_process.mjs that yields real columns is the +// better fix. +const SCALAR_RESPONSE_RESOURCES = new Set([]); + +const results = { + provider, + totalServices: 0, + totalResources: 0, + totalMethods: 0, + selectableMethods: 0, + nonSelectableResourceCount: 0, + nonSelectableResources: [], + scalarResponseResources: [], + failures: [], + errors: [], + summary: { errors: 0 }, +}; + +/** + * Run a query and handle errors + * @param {string} query - SQL query to run + * @param {string} description - Description for logging + * @returns {Promise<Array>} - Query results + */ +async function executeQuery(query, description) { + if (verbose) { + console.log(`Running: ${query}`); + } else { + process.stdout.write(`${description}... `); + } + + try { + const result = await runQuery(connectionOptions, query); + + if (!verbose) { + if (result.data && result.data.length) { + console.log(`OK (${result.data.length} rows)`); + } else { + console.log('OK'); + } + } else { + console.info(result.data); + } + + return result.data; + } catch (error) { + if (!verbose) { + console.log('FAIL'); + } + + results.errors.push({ + query, + description, + error: error.message, + timestamp: new Date().toISOString() + }); + + results.summary.errors++; + + if (error.message.includes('the last operation didn\'t produce a result')) { + return []; + } + + if (error.message.includes('SELECT not supported for this resource')) { + if (verbose) { + console.warn(` Warning: Resource is not selectable`); + } + return null; + } + + console.error(`Error executing ${description}: ${error.message}`); + return []; + } +} + +/** + * Test all provider meta routes + */ +async function testMetaRoutes() { + try { + console.log(`\nTesting meta routes for provider: ${provider}\n`); + + // SHOW PROVIDERS to verify provider exists + const registryQuery = "SHOW PROVIDERS"; + const providers = await executeQuery(registryQuery, "Checking registry providers"); + + const providerExists = providers && providers.some(p => p.name === provider); + if (!providerExists) { + console.error(`Error: Provider '${provider}' not found in registry`); + if (providers && providers.length > 0) { + console.log("Available providers:"); + providers.forEach(p => console.log(` - ${p.name}`)); + } + process.exit(1); + } + + // SHOW SERVICES IN <provider> + const servicesQuery = `SHOW SERVICES IN ${provider}`; + const services = await executeQuery(servicesQuery, "Getting services"); + + if (!services || services.length === 0) { + console.error(`Error: No services found for provider '${provider}'`); + process.exit(1); + } + + console.log(`\nFound ${services.length} services in ${provider}`); + results.totalServices += services.length; + + // for each service + for (const service of services) { + const serviceName = service.name; + console.log(`\nProcessing service: ${serviceName}`); + + // SHOW RESOURCES IN <provider>.<service> + const resourcesQuery = `SHOW RESOURCES IN ${provider}.${serviceName}`; + const resources = await executeQuery(resourcesQuery, `Getting resources for ${serviceName}`); + + if (!resources || resources.length === 0) { + console.error(`Error: No resources found for ${provider}.${serviceName}`); + process.exit(1); + } + + console.log(`Found ${resources.length} resources in ${serviceName}`); + results.totalResources += resources.length; + + // for each resource + for (const resource of resources) { + const resourceName = resource.name; + console.log(`\n Testing resource: ${resourceName}`); + + const resourceFQRN = `${provider}.${serviceName}.${resourceName}`; + const resourceData = { + name: resourceName, + service: serviceName, + selectable: false, + sqlVerbs: {} + }; + + // SHOW EXTENDED METHODS IN <provider>.<service>.<resource> + const methodsQuery = `SHOW EXTENDED METHODS IN ${resourceFQRN}`; + const methods = await executeQuery(methodsQuery, ` Getting methods for ${resourceName}`); + if (!methods || methods.length === 0) { + console.error(`Error: Resource ${resourceName} has no methods`); + process.exit(1); + } else { + console.log(`Found ${methods.length} methods for ${resourceName}`); + } + + results.totalMethods += methods.length; + + for (const method of methods) { + const methodName = method.MethodName; + const sqlVerb = method.SQLVerb || 'exec'; + + if(sqlVerb.toLowerCase() === 'select') { + results.selectableMethods++; + resourceData.selectable = true; + } + + // Initialize the array if it doesn't exist yet + if(!resourceData.sqlVerbs[sqlVerb]) { + resourceData.sqlVerbs[sqlVerb] = []; + } + + // Convert comma-delimited list to an array of trimmed values + let requiredParamsArray = []; + if (method.RequiredParams) { + requiredParamsArray = method.RequiredParams + .split(',') + .map(param => param.trim()) + .filter(param => param.length > 0); + } + + // Push the method info to the array with the parsed required params + resourceData.sqlVerbs[sqlVerb].push({ + methodName, + requiredParams: requiredParamsArray + }); + } + + // non exec methods must have unique signatures within a resource + // in other words no two methods mapped to the same sqlVerb should have the exact same set of required params, order is not important + // if this condition is detected, log it and exit the program immediately + let hasSelect = false; + for (const [verb, methods] of Object.entries(resourceData.sqlVerbs)) { + if (verb.toLowerCase() === 'select') { + hasSelect = true; + } + if (verb.toLowerCase() === 'exec') { + continue; + } + const seenSignatures = new Set(); + for (const method of methods) { + const signature = JSON.stringify(method.requiredParams); + if (seenSignatures.has(signature)) { + console.error(`Error: Duplicate method signature found for ${verb} in ${resourceData.service}.${resourceName}:`, method); + process.exit(1); + } + seenSignatures.add(signature); + } + } + + if (!hasSelect) { + results.nonSelectableResourceCount++; + results.nonSelectableResources.push(`${resourceData.service}.${resourceName}`); + } + + // Try DESCRIBE EXTENDED if available + if(resourceData.selectable) { + try { + const describeExtendedQuery = `DESCRIBE EXTENDED ${resourceFQRN}`; + const extendedColumns = await executeQuery(describeExtendedQuery, ` Describing extended ${resourceName}`); + + if (extendedColumns !== null && extendedColumns.length > 0) { + console.log(`Found ${extendedColumns.length} extended columns for ${resourceName}`); + } else if (SCALAR_RESPONSE_RESOURCES.has(resourceName)) { + // scalar (text) response - a single anonymous column at query + // time, so DESCRIBE is legitimately empty + console.log(`WARN: no columns for ${resourceName} (known scalar response)`); + results.scalarResponseResources.push(`${resourceData.service}.${resourceName}`); + } else { + console.error(`ERROR: No columns found for ${resourceName}`); + results.failures.push(`${resourceData.service}.${resourceName}: DESCRIBE EXTENDED returned no columns`); + } + } catch (error) { + console.error(`Error describing extended ${resourceName}:`, error.message); + results.failures.push(`${resourceData.service}.${resourceName}: ${error.message}`); + } + } + + } + } + + // Calculate execution time + const endTime = new Date(); + const executionTime = (endTime - startTime) / 1000; // in seconds + results.executionTime = executionTime; + + // Output summary + console.log("\nTest Summary:"); + console.info(results); + + if (results.failures.length > 0) { + console.error(`\nFAIL ${results.failures.length} failure(s):`); + for (const f of results.failures) console.error(` - ${f}`); + process.exit(1); + } + console.log("\nOK All meta route tests passed"); + + // Save results to file + // const resultsDir = path.join(baseDir, 'test-results'); + // if (!fs.existsSync(resultsDir)) { + // fs.mkdirSync(resultsDir, { recursive: true }); + // } + + // const timestamp = new Date().toISOString().replace(/[:.]/g, '-'); + + // if (outputFormat === 'json') { + // const resultsFile = path.join(resultsDir, `${provider}-meta-test-${timestamp}.json`); + // fs.writeFileSync(resultsFile, JSON.stringify(results, null, 2)); + // console.log(`\nDetailed results saved to: ${resultsFile}`); + // } + // else if (outputFormat === 'csv') { + // // Generate CSV files + + // // Main summary CSV + // const summaryFile = path.join(resultsDir, `${provider}-meta-test-summary-${timestamp}.csv`); + // const summaryCSV = [ + // 'Provider,Timestamp,Services,Resources,Methods,Selectable,Insertable,Updatable,Deletable,Executable,Errors,ExecutionTime', + // `${provider},${results.timestamp},${results.summary.totalServices},${results.summary.totalResources},${results.summary.totalMethods},${results.summary.selectableMethods},${results.summary.insertableMethods},${results.summary.updatableMethods},${results.summary.deletableMethods},${results.summary.executableMethods},${results.summary.errors},${results.executionTime}` + // ].join('\n'); + // fs.writeFileSync(summaryFile, summaryCSV); + + // // Services CSV + // const servicesFile = path.join(resultsDir, `${provider}-meta-test-services-${timestamp}.csv`); + // const servicesCSV = [ + // 'Service,Title,ResourceCount', + // ...results.services.map(s => `${s.name},${s.title || ''},${s.resourceCount || 0}`) + // ].join('\n'); + // fs.writeFileSync(servicesFile, servicesCSV); + + // // Resources CSV + // const resourcesFile = path.join(resultsDir, `${provider}-meta-test-resources-${timestamp}.csv`); + // const resourcesCSV = [ + // 'Service,Resource,FQRN,Selectable,ColumnCount,MethodCount', + // ...results.resources.map(r => `${r.service},${r.name},${r.fqrn},${r.selectable},${r.columnCount || 0},${r.methodCount || 0}`) + // ].join('\n'); + // fs.writeFileSync(resourcesFile, resourcesCSV); + + // // Methods CSV + // const methodsFile = path.join(resultsDir, `${provider}-meta-test-methods-${timestamp}.csv`); + // const methodsCSV = [ + // 'Service,Resource,Method,SQLVerb,FQRN', + // ...results.methods.map(m => `${m.service},${m.resource},${m.name},${m.sqlVerb},${m.fqrn}`) + // ].join('\n'); + // fs.writeFileSync(methodsFile, methodsCSV); + + // console.log(`\nDetailed results saved to CSV files in: ${resultsDir}`); + // } + // else if (outputFormat === 'markdown') { + // const mdFile = path.join(resultsDir, `${provider}-meta-test-${timestamp}.md`); + + // const markdownContent = [ + // `# StackQL Provider Test Results: ${provider}`, + // '', + // `Test run: ${results.timestamp}`, + // '', + // '## Summary', + // '', + // '| Metric | Count |', + // '|--------|-------|', + // `| Services | ${results.summary.totalServices} |`, + // `| Resources | ${results.summary.totalResources} |`, + // `| Methods | ${results.summary.totalMethods} |`, + // `| Errors | ${results.summary.errors} |`, + // `| Execution Time | ${results.executionTime.toFixed(2)} seconds |`, + // '', + // '### Methods by SQL Verb', + // '', + // '| Verb | Count |', + // '|------|-------|', + // ...Object.entries(results.verbs).map(([verb, count]) => `| ${verb.toUpperCase()} | ${count} |`), + // '', + // '## Services', + // '', + // '| Service | Resources |', + // '|---------|-----------|', + // ...results.services.map(s => `| ${s.name} | ${s.resourceCount || 0} |`), + // '', + // '## Resources with Most Methods', + // '', + // '| Resource | Service | Methods | Selectable |', + // '|----------|---------|---------|------------|', + // ...results.resources + // .sort((a, b) => (b.methodCount || 0) - (a.methodCount || 0)) + // .slice(0, 20) + // .map(r => `| ${r.name} | ${r.service} | ${r.methodCount || 0} | ${r.selectable ? 'OK' : 'FAIL'} |`), + // '', + // '## Errors', + // '', + // results.errors.length > 0 + // ? [ + // '| Query | Error |', + // '|-------|-------|', + // ...results.errors.map(e => `| \`${e.query}\` | ${e.error} |`) + // ].join('\n') + // : 'No errors encountered during testing.', + // ].join('\n'); + + // fs.writeFileSync(mdFile, markdownContent); + // console.log(`\nDetailed results saved to: ${mdFile}`); + // } + + } catch (error) { + console.error('Error in meta routes test:', error); + process.exit(1); + } +} + +// Run the tests +testMetaRoutes(); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..7c4a0f0 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,657 @@ +{ + "name": "stackql-provider-nvidia", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "stackql-provider-nvidia", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "@apidevtools/swagger-parser": "^13.1.0", + "@stackql/pgwire-lite": "^1.0.2", + "@stackql/provider-utils": "^0.7.12", + "js-yaml": "^4.1.0", + "pluralize": "^8.0.0" + }, + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-16.0.5.tgz", + "integrity": "sha512-z3LiEMqTP2FNu6u8bdUgBYErVuwMSZReOJy1MCEIB0BDHMoNgBtkciby32HOlcrfWwrOSzRU8YIsZ0CogYRuYQ==", + "license": "MIT", + "dependencies": { + "js-yaml": "^5.4.2" + }, + "engines": { + "node": ">=22.19.0" + }, + "peerDependencies": { + "@types/json-schema": "^7.0.15" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser/node_modules/argparse": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-3.0.3.tgz", + "integrity": "sha512-Sn98ftV3KfsO8xfLPHG6oT8y+b0yvbrLgZjgPDXsharNY15tTAjqIsIju4S32nl6/iEUNNE4v+yL2Zhm8ooP3w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "PSF-2.0" + }, + "node_modules/@apidevtools/json-schema-ref-parser/node_modules/js-yaml": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.5.0.tgz", + "integrity": "sha512-paNr4LFIFPjeeSmwNYdrb8FafLLG/Cr2Af3GjbsHJ5CxIjH4r0c2emlmRdAtpPAieP1gRVzk6buBbVP5gBMGAg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^3.0.3" + }, + "bin": { + "js-yaml": "bin/js-yaml.mjs" + } + }, + "node_modules/@apidevtools/openapi-schemas": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", + "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@apidevtools/swagger-methods": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", + "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", + "license": "MIT" + }, + "node_modules/@apidevtools/swagger-parser": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-13.1.0.tgz", + "integrity": "sha512-dkCuqCWh5U7u0aurmmc/qvel2KeKDxHTwVtUdYonndIpD7mXV6AVaWNdvaja2HAy628z7FT/Qdz8sCgzwhgwKg==", + "license": "MIT", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "^16.0.3", + "@apidevtools/openapi-schemas": "^2.1.0", + "@apidevtools/swagger-methods": "^3.0.2", + "@types/json-schema": "^7.0.15", + "ajv": "^8.20.0", + "ajv-draft-04": "^1.0.0", + "call-me-maybe": "^1.0.2" + }, + "engines": { + "node": ">=22.19.0" + }, + "peerDependencies": { + "openapi-types": ">=7" + } + }, + "node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.8.tgz", + "integrity": "sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==", + "license": "MIT", + "dependencies": { + "@so-ric/colorspace": "^1.1.6", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", + "license": "MIT" + }, + "node_modules/@jsep-plugin/assignment": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@jsep-plugin/assignment/-/assignment-1.3.0.tgz", + "integrity": "sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + }, + "peerDependencies": { + "jsep": "^0.4.0||^1.0.0" + } + }, + "node_modules/@jsep-plugin/regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@jsep-plugin/regex/-/regex-1.0.4.tgz", + "integrity": "sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + }, + "peerDependencies": { + "jsep": "^0.4.0||^1.0.0" + } + }, + "node_modules/@so-ric/colorspace": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@so-ric/colorspace/-/colorspace-1.1.6.tgz", + "integrity": "sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==", + "license": "MIT", + "dependencies": { + "color": "^5.0.2", + "text-hex": "1.0.x" + } + }, + "node_modules/@stackql/deno-openapi-dereferencer": { + "name": "@jsr/stackql__deno-openapi-dereferencer", + "version": "0.3.2", + "resolved": "https://npm.jsr.io/~/11/@jsr/stackql__deno-openapi-dereferencer/0.3.2.tgz", + "integrity": "sha512-Qj5B0pl2Rsec+GHwGGIh9254AQfEplkD82HW9FEhQR+vZvzhEgF2Ap72hmdLq8rWOGV4soSnQ4sFYorE2pIT5Q==", + "dependencies": { + "jsonpath-plus": "^10.3.0" + } + }, + "node_modules/@stackql/pgwire-lite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@stackql/pgwire-lite/-/pgwire-lite-1.0.2.tgz", + "integrity": "sha512-uHZA0yzVyow8TtWYyGPFI7/If8Ci/5EjjKdoaZ4YEk1XcSoCKaGQmH9KCUlR/R1FvQk4Ic3DV9It8XhePsoTqQ==", + "license": "MIT", + "dependencies": { + "winston": "^3.14.2" + } + }, + "node_modules/@stackql/provider-utils": { + "version": "0.7.12", + "resolved": "https://registry.npmjs.org/@stackql/provider-utils/-/provider-utils-0.7.12.tgz", + "integrity": "sha512-cwlnLkW/AZ86YVthU/HmVDVlwLHsuJtiCx+w0peqO7t/NpsgLsUneH5vG2PPt+yPv3euZeQg1HeO7NOAgDQdBw==", + "license": "MIT", + "dependencies": { + "@apidevtools/swagger-parser": "^10.1.1", + "@stackql/deno-openapi-dereferencer": "npm:@jsr/stackql__deno-openapi-dereferencer@^0.3.2", + "csv-parser": "^3.2.0", + "js-yaml": "^4.1.0", + "pluralize": "^8.0.0" + }, + "bin": { + "docgen-utils": "bin/docgen-utils.mjs", + "provider-dev-utils": "bin/provider-dev-utils.mjs" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@stackql/provider-utils/node_modules/@apidevtools/json-schema-ref-parser": { + "version": "11.7.2", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.2.tgz", + "integrity": "sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==", + "license": "MIT", + "dependencies": { + "@jsdevtools/ono": "^7.1.3", + "@types/json-schema": "^7.0.15", + "js-yaml": "^4.1.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/philsturgeon" + } + }, + "node_modules/@stackql/provider-utils/node_modules/@apidevtools/swagger-parser": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.1.1.tgz", + "integrity": "sha512-u/kozRnsPO/x8QtKYJOqoGtC4kH6yg1lfYkB9Au0WhYB0FNLpyFusttQtvhlwjtG3rOwiRz4D8DnnXa8iEpIKA==", + "license": "MIT", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "11.7.2", + "@apidevtools/openapi-schemas": "^2.1.0", + "@apidevtools/swagger-methods": "^3.0.2", + "@jsdevtools/ono": "^7.1.3", + "ajv": "^8.17.1", + "ajv-draft-04": "^1.0.0", + "call-me-maybe": "^1.0.2" + }, + "peerDependencies": { + "openapi-types": ">=7" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", + "license": "MIT" + }, + "node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "license": "MIT", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/call-me-maybe": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", + "license": "MIT" + }, + "node_modules/color": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/color/-/color-5.0.3.tgz", + "integrity": "sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==", + "license": "MIT", + "dependencies": { + "color-convert": "^3.1.3", + "color-string": "^2.1.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/color-convert": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-3.1.3.tgz", + "integrity": "sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==", + "license": "MIT", + "dependencies": { + "color-name": "^2.0.0" + }, + "engines": { + "node": ">=14.6" + } + }, + "node_modules/color-name": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-2.1.0.tgz", + "integrity": "sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==", + "license": "MIT", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/color-string": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-2.1.4.tgz", + "integrity": "sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==", + "license": "MIT", + "dependencies": { + "color-name": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/csv-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/csv-parser/-/csv-parser-3.2.1.tgz", + "integrity": "sha512-v8RPMSglouR9od735SnwSxLBbCJqEPSbgm1R5qfr8yIiMUCEFjox56kRZid0SvgHJEkxeIEu3+a9QS3YRh7CuA==", + "license": "MIT", + "bin": { + "csv-parser": "bin/csv-parser" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.3.tgz", + "integrity": "sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "license": "MIT" + }, + "node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", + "license": "MIT" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/js-yaml": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz", + "integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsep": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", + "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/jsonpath-plus": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-10.4.0.tgz", + "integrity": "sha512-T92WWatJXmhBbKsgH/0hl+jxjdXrifi5IKeMY02DWggRxX0UElcbVzPlmgLTbvsPeW1PasQ6xE2Q75stkhGbsA==", + "license": "MIT", + "dependencies": { + "@jsep-plugin/assignment": "^1.3.0", + "@jsep-plugin/regex": "^1.0.4", + "jsep": "^1.4.0" + }, + "bin": { + "jsonpath": "bin/jsonpath-cli.js", + "jsonpath-plus": "bin/jsonpath-cli.js" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", + "license": "MIT" + }, + "node_modules/logform": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", + "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==", + "license": "MIT", + "dependencies": { + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "license": "MIT", + "dependencies": { + "fn.name": "1.x.x" + } + }, + "node_modules/openapi-types": { + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", + "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", + "license": "MIT", + "peer": true + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", + "license": "MIT" + }, + "node_modules/triple-beam": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/winston": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.19.0.tgz", + "integrity": "sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA==", + "license": "MIT", + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.8", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.7.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.9.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz", + "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==", + "license": "MIT", + "dependencies": { + "logform": "^2.7.0", + "readable-stream": "^3.6.2", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..3f2dcc3 --- /dev/null +++ b/package.json @@ -0,0 +1,49 @@ +{ + "name": "stackql-provider-nvidia", + "version": "0.1.0", + "description": "StackQL Provider for NVIDIA NGC and NVIDIA Cloud Functions (NVCF)", + "type": "module", + "scripts": { + "fetch-specs": "bash ./bin/fetch-specs.sh", + "harvest-ngc": "node ./provider-dev/scripts/harvest_ngc_spec.mjs", + "harvest-sdk": "node ./provider-dev/scripts/harvest_ngc_sdk_schemas.mjs", + "pin-specs": "node ./provider-dev/scripts/pin_specs.mjs", + "clean-specs": "node ./provider-dev/scripts/clean_specs.mjs", + "build-inventory": "node ./provider-dev/scripts/build_inventory.mjs", + "split": "node ./bin/split.mjs", + "generate-mappings": "node ./node_modules/@stackql/provider-utils/bin/provider-dev-utils.mjs analyze", + "map-operations": "node ./provider-dev/scripts/map_operations.mjs", + "pre-normalize": "node ./provider-dev/scripts/pre_normalize.mjs", + "normalize": "node ./node_modules/@stackql/provider-utils/bin/provider-dev-utils.mjs normalize", + "generate-provider": "node ./node_modules/@stackql/provider-utils/bin/provider-dev-utils.mjs generate", + "post-process": "node ./provider-dev/scripts/post_process.mjs", + "graphql-merge": "node ./provider-dev/scripts/graphql_merge.mjs", + "generate-docs": "node ./node_modules/@stackql/provider-utils/bin/docgen-utils.mjs generate-docs", + "sanitize-docs": "node ./website/scripts/sanitize-docs.mjs", + "start-server": "bash ./bin/start-server.sh", + "stop-server": "bash ./bin/stop-server.sh", + "server-status": "bash ./bin/server-status.sh", + "test-meta-routes": "node ./bin/test-meta-routes.cjs", + "test-offline": "node ./tests/offline_validation.mjs", + "test-integration": "node ./tests/integration/run_integration_tests.mjs", + "probe": "node ./tests/integration/probe.mjs" + }, + "dependencies": { + "@apidevtools/swagger-parser": "^13.1.0", + "@stackql/pgwire-lite": "^1.0.2", + "@stackql/provider-utils": "^0.7.12", + "js-yaml": "^4.1.0", + "pluralize": "^8.0.0" + }, + "keywords": [ + "stackql", + "nvidia", + "ngc", + "nvcf", + "provider" + ], + "engines": { + "node": ">=22.19.0" + }, + "license": "MIT" +} diff --git a/provider-dev/config/all_services.csv b/provider-dev/config/all_services.csv new file mode 100644 index 0000000..0930de6 --- /dev/null +++ b/provider-dev/config/all_services.csv @@ -0,0 +1,336 @@ +filename,path,operationId,formatted_op_id,verb,response_object,tags,formatted_tags,stackql_resource_name,stackql_method_name,stackql_verb,stackql_object_key,op_description +catalog.yaml,/v2/collections,listPublicCollections,list_public_collections,get,CollectionListResponse,Collections,collections,collections,list,select,$.collections,List public collections +catalog.yaml,/v2/collections/{org_name}/{collection_name},getCollectionInOrgAsGuest,get_collection_in_org_as_guest,get,CollectionResponse,Collections,collections,collections,get,select,$.collection,Get collection in org as guest +catalog.yaml,/v2/collections/{org_name}/{collection_name}/artifacts/{artifact_type},listCollectionArtifactsInOrgAsGuest,list_collection_artifacts_in_org_as_guest,get,ArtifactListResponse,Collections,collections,collection_artifacts,list,select,$.artifacts,List collection artifacts in org as guest +catalog.yaml,/v2/collections/{org_name}/{team_name}/{collection_name},getCollectionInTeamAsGuest,get_collection_in_team_as_guest,get,CollectionResponse,Collections,collections,collections,get_by_team,select,$.collection,Get collection in team as guest +catalog.yaml,/v2/collections/{org_name}/{team_name}/{collection_name}/artifacts/{artifact_type},listCollectionArtifactsInTeamAsGuest,list_collection_artifacts_in_team_as_guest,get,ArtifactListResponse,Collections,collections,collection_artifacts,list_by_team,select,$.artifacts,List collection artifacts in org and team as guest +catalog.yaml,/v2/csps,listCloudServiceProviders,list_cloud_service_providers,get,CloudServiceProviderListResponse,Cloud service providers,cloud service providers,csps,list,select,$.cloudServiceProviders,List cloud service providers +catalog.yaml,/v2/csps,createCloudServiceProvider,create_cloud_service_provider,post,CloudServiceProvider,Cloud service providers,cloud service providers,csps,create,insert,,Create cloud service provider +catalog.yaml,/v2/csps/{artifact_type}/{org_name}/{artifact_name}/deployments/params,listPublicArtifactDeploymentParametersInOrg,list_public_artifact_deployment_parameters_in_org,get,DeploymentParametersListResponse,Artifact deployment parameters,artifact deployment parameters,artifact_deployment_params,list,select,$.deploymentParameters,List public artifact deployment parameters in org +catalog.yaml,/v2/csps/{artifact_type}/{org_name}/{artifact_name}/deployments/{csp_name}/params,getPublicArtifactDeploymentParametersInOrg,get_public_artifact_deployment_parameters_in_org,get,DeploymentParameters,Artifact deployment parameters,artifact deployment parameters,artifact_deployment_params,get,select,,Get public artifact deployment parameters details in org +catalog.yaml,/v2/csps/{artifact_type}/{org_name}/{team_name}/{artifact_name}/deployments/params,listPublicArtifactDeploymentParametersInTeam,list_public_artifact_deployment_parameters_in_team,get,DeploymentParametersListResponse,Artifact deployment parameters,artifact deployment parameters,artifact_deployment_params,list_by_team,select,$.deploymentParameters,List public artifact deployment parameters in team +catalog.yaml,/v2/csps/{artifact_type}/{org_name}/{team_name}/{artifact_name}/deployments/{csp_name}/params,getPublicArtifactDeploymentParametersInTeam,get_public_artifact_deployment_parameters_in_team,get,DeploymentParameters,Artifact deployment parameters,artifact deployment parameters,artifact_deployment_params,get_by_team,select,,Get public artifact deployment parameters details in team +catalog.yaml,/v2/csps/{csp_name},getCloudServiceProviderDetails,get_cloud_service_provider_details,get,CloudServiceProvider,Cloud service providers,cloud service providers,csps,get,select,,Get cloud service provider details +catalog.yaml,/v2/csps/{csp_name},updateCloudServiceProvider,update_cloud_service_provider,patch,CloudServiceProvider,Cloud service providers,cloud service providers,csps,update,update,,Update cloud service provider +catalog.yaml,/v2/csps/{csp_name},deleteCloudServiceProvider,delete_cloud_service_provider,delete,Response,Cloud service providers,cloud service providers,csps,delete,delete,,Delete cloud service provider +catalog.yaml,/v2/csps/{csp_name}/deployments/params,getCloudServiceProviderDeploymentParametersDetails,get_cloud_service_provider_deployment_parameters_details,get,DeploymentParameters,Cloud service provider deployment parameters,cloud service provider deployment parameters,csp_deployment_params,get,select,,Get cloud service provider deployment parameters details +catalog.yaml,/v2/csps/{csp_name}/deployments/params,createCloudServiceProviderDeploymentParameters,create_cloud_service_provider_deployment_parameters,post,DeploymentParameters,Cloud service provider deployment parameters,cloud service provider deployment parameters,csp_deployment_params,create,insert,,Create cloud service provider deployment parameters +catalog.yaml,/v2/csps/{csp_name}/deployments/params,updateCloudServiceProviderDeploymentParameters,update_cloud_service_provider_deployment_parameters,patch,DeploymentParameters,Cloud service provider deployment parameters,cloud service provider deployment parameters,csp_deployment_params,update,update,,Update cloud service provider deployment parameters +catalog.yaml,/v2/csps/{csp_name}/deployments/params,deleteCloudServiceProviderDeploymentParameters,delete_cloud_service_provider_deployment_parameters,delete,Response,Cloud service provider deployment parameters,cloud service provider deployment parameters,csp_deployment_params,delete,delete,,Delete cloud service provider deployment parameters +catalog.yaml,/v2/csps/{csp_name}/deployments/params/meta,getCloudServiceProviderDeploymentParametersMetaDetails,get_cloud_service_provider_deployment_parameters_meta_details,get,DeploymentParametersMeta,Deployment parameters meta,deployment parameters meta,csp_deployment_params_meta,get,select,,Get cloud service provider deployment parameters meta details +catalog.yaml,/v2/csps/{csp_name}/deployments/params/meta,createCloudServiceProviderDeploymentParametersMeta,create_cloud_service_provider_deployment_parameters_meta,post,DeploymentParametersMeta,Deployment parameters meta,deployment parameters meta,csp_deployment_params_meta,create,insert,,Create cloud service provider deployment parameters meta +catalog.yaml,/v2/csps/{csp_name}/deployments/params/meta,updateCloudServiceProviderDeploymentParametersMeta,update_cloud_service_provider_deployment_parameters_meta,patch,DeploymentParametersMeta,Deployment parameters meta,deployment parameters meta,csp_deployment_params_meta,update,update,,Update cloud service provider deployment parameters meta +catalog.yaml,/v2/csps/{csp_name}/deployments/params/meta,deleteCloudServiceProviderDeploymentParametersMeta,delete_cloud_service_provider_deployment_parameters_meta,delete,Response,Deployment parameters meta,deployment parameters meta,csp_deployment_params_meta,delete,delete,,Delete cloud service provider deployment parameters meta +catalog.yaml,/v2/gpus,getGpus,get_gpus,get,GpuByPciResponse,GpuByPci,gpu_by_pci,gpus,list,select,,Get all GPUs +catalog.yaml,/v2/gpus/pci-device-id/{pci_device_id},getGpuByPciDeviceId,get_gpu_by_pci_device_id,get,GpuByPciResponse,GpuByPci,gpu_by_pci,gpus,get,select,,Get GPU by PCI Device ID +catalog.yaml,/v2/gpus/pci-device-id/{pci_device_id},createGpuByPciDeviceId,create_gpu_by_pci_device_id,post,GpuByPciResponse,GpuByPci,gpu_by_pci,gpus,create,insert,,Create GPU by PCI Device ID only +catalog.yaml,/v2/gpus/pci-device-id/{pci_device_id},updateGpuByPciDeviceId,update_gpu_by_pci_device_id,patch,GpuByPciResponse,GpuByPci,gpu_by_pci,gpus,update,update,,Partially update GPU by PCI Device ID only +catalog.yaml,/v2/gpus/pci-device-id/{pci_device_id},deleteGpuByPciDeviceId,delete_gpu_by_pci_device_id,delete,Response,GpuByPci,gpu_by_pci,gpus,delete,delete,,Delete GPU by PCI Device ID only +catalog.yaml,/v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id},getGpuByPciDeviceIdVendorId,get_gpu_by_pci_device_id_vendor_id,get,GpuByPciResponse,GpuByPci,gpu_by_pci,gpus,get_by_vendor,select,,Get GPUs by PCI Device ID and Vendor ID +catalog.yaml,/v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id}/pci-subsystem-device-id/{pci_subsystem_device_id},getGpuByPciDeviceIdVendorIdSubsystemDeviceId,get_gpu_by_pci_device_id_vendor_id_subsystem_device_id,get,GpuByPciResponse,GpuByPci,gpu_by_pci,gpus,get_by_vendor_subsystem,select,,"Get GPU by PCI Device ID, Vendor ID, and Subsystem Device ID" +catalog.yaml,/v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id}/pci-subsystem-device-id/{pci_subsystem_device_id},createGpuByPciFullKey,create_gpu_by_pci_full_key,post,GpuByPciResponse,GpuByPci,gpu_by_pci,gpus,create_by_vendor_subsystem,insert,,"Create GPU by PCI Device ID, Vendor ID, and Subsystem Device ID" +catalog.yaml,/v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id}/pci-subsystem-device-id/{pci_subsystem_device_id},updateGpuByPciFullKey,update_gpu_by_pci_full_key,patch,GpuByPciResponse,GpuByPci,gpu_by_pci,gpus,update_by_vendor_subsystem,update,,"Partially update GPU by PCI Device ID, Vendor ID, and Subsystem Device ID" +catalog.yaml,/v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id}/pci-subsystem-device-id/{pci_subsystem_device_id},deleteGpuByPciFullKey,delete_gpu_by_pci_full_key,delete,Response,GpuByPci,gpu_by_pci,gpus,delete_by_vendor_subsystem,delete,,"Delete GPU by PCI Device ID, Vendor ID, and Subsystem Device ID" +catalog.yaml,/v2/helm-charts/{org_name}/{artifact_name}/versions,listHelmChartVersionsInOrgAsGuest,list_helm_chart_versions_in_org_as_guest,get,ArtifactVersionListResponse,Helm Charts,helm charts,helm_chart_versions,list,select,$.artifactVersions,List chart versions in org as guest +catalog.yaml,/v2/helm-charts/{org_name}/{artifact_name}/versions/{version_id},getHelmChartVersionInOrgAsGuest,get_helm_chart_version_in_org_as_guest,get,ArtifactVersionResponse,Helm Charts,helm charts,helm_chart_versions,get,select,$.artifactVersion,Get chart version in org as guest +catalog.yaml,/v2/helm-charts/{org_name}/{team_name}/{artifact_name}/versions,listHelmChartVersionsInTeamAsGuest,list_helm_chart_versions_in_team_as_guest,get,ArtifactVersionListResponse,Helm Charts,helm charts,helm_chart_versions,list_by_team,select,$.artifactVersions,List chart versions in team as guest +catalog.yaml,/v2/helm-charts/{org_name}/{team_name}/{artifact_name}/versions/{version_id},getHelmChartVersionInTeamAsGuest,get_helm_chart_version_in_team_as_guest,get,ArtifactVersionResponse,Helm Charts,helm charts,helm_chart_versions,get_by_team,select,$.artifactVersion,Get chart version in team as guest +catalog.yaml,/v2/models,listPublicModels,list_public_models,get,ModelListResponse,Models,models,models,list,select,$.models,List public models +catalog.yaml,/v2/models/{org_name}/{model_name},getModelInOrgAsGuest,get_model_in_org_as_guest,get,ModelResponse,Models,models,models,get,select,$.model,Get model in org as guest +catalog.yaml,/v2/models/{org_name}/{model_name}/versions,listModelVersionsInOrgAsGuest,list_model_versions_in_org_as_guest,get,ModelVersionListResponse,Model Version,model version,model_versions,list,select,$.modelVersions,List model versions in org as guest +catalog.yaml,/v2/models/{org_name}/{model_name}/versions/{version_id},getModelVersionInOrgAsGuest,get_model_version_in_org_as_guest,get,ModelVersionResponse,Model Version,model version,model_versions,get,select,$.modelVersion,Get model version in org as guest +catalog.yaml,/v2/models/{org_name}/{model_name}/versions/{version_id}/files,listModeFilesInOrgAsGuest_2,list_mode_files_in_org_as_guest_2,get,ModelVersionFileListResponse,Model Version Files,model version files,model_files,list,select,$.modelFiles,List model files in org as guest +catalog.yaml,/v2/models/{org_name}/{team_name}/{model_name},getModelInTeamAsGuest,get_model_in_team_as_guest,get,ModelResponse,Models,models,models,get_by_team,select,$.model,Get model in team as guest +catalog.yaml,/v2/models/{org_name}/{team_name}/{model_name}/versions,listModelVersionsInTeamAsGuest,list_model_versions_in_team_as_guest,get,ModelVersionListResponse,Model Version,model version,model_versions,list_by_team,select,$.modelVersions,List model versions in team as guest +catalog.yaml,/v2/models/{org_name}/{team_name}/{model_name}/versions/{version_id},getModelVersionInTeamAsGuest,get_model_version_in_team_as_guest,get,ModelVersionResponse,Model Version,model version,model_versions,get_by_team,select,$.modelVersion,Get model version in team as guest +catalog.yaml,/v2/models/{org_name}/{team_name}/{model_name}/versions/{version_id}/files,listModeFilesInTeamAsGuest_2,list_mode_files_in_team_as_guest_2,get,ModelVersionFileListResponse,Model Version Files,model version files,model_files,list_by_team,select,$.modelFiles,List model files in team as guest +catalog.yaml,/v2/nim/{team}/{nim_name}/{tag}/metadata,createNimMetadata,create_nim_metadata,post,NimManifestMetadataResponse,NIM Metadata,nim metadata,nim_metadata,create,insert,$.profiles,Create NIM metadata +catalog.yaml,/v2/recipes,listPublicRecipes,list_public_recipes,get,RecipeListResponse,Resources,resources,recipes,list,select,$.recipes,List public recipes +catalog.yaml,/v2/recipes/{org_name}/{recipe_name},getRecipeInOrgAsGuest,get_recipe_in_org_as_guest,get,RecipeResponse,Resources,resources,recipes,get,select,$.recipe,Get recipe in org as guest +catalog.yaml,/v2/recipes/{org_name}/{recipe_name}/versions,listRecipeVersionsInOrgAsGuest,list_recipe_versions_in_org_as_guest,get,RecipeVersionListResponse,Resource Versions,resource versions,recipe_versions,list,select,$.recipeVersions,List recipe versions in org as guest +catalog.yaml,/v2/recipes/{org_name}/{recipe_name}/versions/{version_id},getRecipeVersionInOrgAsGuest,get_recipe_version_in_org_as_guest,get,RecipeVersionResponse,Resource Versions,resource versions,recipe_versions,get,select,$.recipeVersion,Get recipe version in org as guest +catalog.yaml,/v2/recipes/{org_name}/{recipe_name}/versions/{version_id}/files,listModeFilesInOrgAsGuest,list_mode_files_in_org_as_guest,get,RecipeVersionFileListResponse,Resource Version Files endpoints,resource version files endpoints,recipe_files,list,select,$.recipeFiles,List recipe files in org as guest +catalog.yaml,/v2/recipes/{org_name}/{team_name}/{recipe_name},getRecipeInTeamAsGuest,get_recipe_in_team_as_guest,get,RecipeResponse,Resources,resources,recipes,get_by_team,select,$.recipe,Get recipe in team as guest +catalog.yaml,/v2/recipes/{org_name}/{team_name}/{recipe_name}/versions,listRecipeVersionsInTeamAsGuest,list_recipe_versions_in_team_as_guest,get,RecipeVersionListResponse,Resource Versions,resource versions,recipe_versions,list_by_team,select,$.recipeVersions,List recipe versions in team as guest +catalog.yaml,/v2/recipes/{org_name}/{team_name}/{recipe_name}/versions/{version_id},getRecipeVersionInTeamAsGuest,get_recipe_version_in_team_as_guest,get,RecipeVersionResponse,Resource Versions,resource versions,recipe_versions,get_by_team,select,$.recipeVersion,Get recipe version in team as guest +catalog.yaml,/v2/recipes/{org_name}/{team_name}/{recipe_name}/versions/{version_id}/files,listModeFilesInTeamAsGuest,list_mode_files_in_team_as_guest,get,RecipeVersionFileListResponse,Resource Version Files endpoints,resource version files endpoints,recipe_files,list_by_team,select,$.recipeFiles,List recipe files in team as guest +catalog.yaml,/v2/resources,listPublicRecipes_1,list_public_recipes_1,get,RecipeListResponse,Resources,resources,resources,list,select,$.recipes,List public recipes +catalog.yaml,/v2/resources/{org_name}/{recipe_name},getRecipeInOrgAsGuest_1,get_recipe_in_org_as_guest_1,get,RecipeResponse,Resources,resources,resources,get,select,$.recipe,Get recipe in org as guest +catalog.yaml,/v2/resources/{org_name}/{recipe_name}/versions,listRecipeVersionsInOrgAsGuest_1,list_recipe_versions_in_org_as_guest_1,get,RecipeVersionListResponse,Resource Versions,resource versions,resource_versions,list,select,$.recipeVersions,List recipe versions in org as guest +catalog.yaml,/v2/resources/{org_name}/{recipe_name}/versions/{version_id},getRecipeVersionInOrgAsGuest_1,get_recipe_version_in_org_as_guest_1,get,RecipeVersionResponse,Resource Versions,resource versions,resource_versions,get,select,$.recipeVersion,Get recipe version in org as guest +catalog.yaml,/v2/resources/{org_name}/{recipe_name}/versions/{version_id}/files,listModeFilesInOrgAsGuest_1,list_mode_files_in_org_as_guest_1,get,RecipeVersionFileListResponse,Resource Version Files endpoints,resource version files endpoints,resource_files,list,select,$.recipeFiles,List recipe files in org as guest +catalog.yaml,/v2/resources/{org_name}/{team_name}/{recipe_name},getRecipeInTeamAsGuest_1,get_recipe_in_team_as_guest_1,get,RecipeResponse,Resources,resources,resources,get_by_team,select,$.recipe,Get recipe in team as guest +catalog.yaml,/v2/resources/{org_name}/{team_name}/{recipe_name}/versions,listRecipeVersionsInTeamAsGuest_1,list_recipe_versions_in_team_as_guest_1,get,RecipeVersionListResponse,Resource Versions,resource versions,resource_versions,list_by_team,select,$.recipeVersions,List recipe versions in team as guest +catalog.yaml,/v2/resources/{org_name}/{team_name}/{recipe_name}/versions/{version_id},getRecipeVersionInTeamAsGuest_1,get_recipe_version_in_team_as_guest_1,get,RecipeVersionResponse,Resource Versions,resource versions,resource_versions,get_by_team,select,$.recipeVersion,Get recipe version in team as guest +catalog.yaml,/v2/resources/{org_name}/{team_name}/{recipe_name}/versions/{version_id}/files,listModeFilesInTeamAsGuest_1,list_mode_files_in_team_as_guest_1,get,RecipeVersionFileListResponse,Resource Version Files endpoints,resource version files endpoints,resource_files,list_by_team,select,$.recipeFiles,List recipe files in team as guest +catalog.yaml,/v2/{artifact_type},listPublicArtifacts,list_public_artifacts,get,ArtifactListResponse,Artifacts,artifacts,artifacts,list,select,$.artifacts,List public artifacts +catalog.yaml,/v2/{artifact_type}/{org_name}/{artifact_name},getArtifactInOrgAsGuest,get_artifact_in_org_as_guest,get,ArtifactResponse,Artifacts,artifacts,artifacts,get,select,$.artifact,Get artifact in org as guest +catalog.yaml,/v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/files,listArtifactFilesInOrgAsGuest,list_artifact_files_in_org_as_guest,get,ArtifactVersionFileListResponse,Artifact Version Files,artifact version files,artifact_files,list,select,$.artifactFiles,List artifact files in org as guest +catalog.yaml,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name},getChartInTeamAsGuest,get_chart_in_team_as_guest,get,ArtifactResponse,Artifacts,artifacts,artifacts,get_by_team,select,$.artifact,Get artifact in team as guest +catalog.yaml,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/files,listArtifactFilesInTeamAsGuest,list_artifact_files_in_team_as_guest,get,ArtifactVersionFileListResponse,Artifact Version Files,artifact version files,artifact_files,list_by_team,select,$.artifactFiles,List artifact files in team as guest +catalog.yaml,/v2/{artifact_type}/{org_name}/{artifact_name}/spec,getPublicModelArtifactsSpec,get_public_model_artifacts_spec,get,AIPlaygroundResponse,AIPlayground,aiplayground,artifact_specs,get,select,,Get AI Playground for public artifactType +catalog.yaml,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/spec,getPublicModelArtifactsSpec_1,get_public_model_artifacts_spec_1,get,AIPlaygroundResponse,AIPlayground,aiplayground,artifact_specs,get_by_team,select,,Get AI Playground for public artifactType +nvcf_deployments.yaml,/v2/nvcf/clusterGroups,getClusterGroups,get_cluster_groups,get,ClusterGroupsResponse,Cluster Groups and GPUs,cluster groups and gpus,cluster_groups,list,select,$.clusterGroups,List Cluster Groups +nvcf_deployments.yaml,/v2/nvcf/deployments/functions/{function_id}/versions/{function_version_id},getFunctionDeployment,get_function_deployment,get,DeploymentResponse,Function Deployment,function deployment,deployments,get,select,$.deployment,Get Function Deployment Details +nvcf_deployments.yaml,/v2/nvcf/deployments/functions/{function_id}/versions/{function_version_id},createFunctionDeployment,create_function_deployment,post,DeploymentResponse,Function Deployment,function deployment,deployments,create,insert,$.deployment,Deploy Function +nvcf_deployments.yaml,/v2/nvcf/deployments/functions/{function_id}/versions/{function_version_id},updateFunctionDeployment,update_function_deployment,put,DeploymentResponse,Function Deployment,function deployment,deployments,update,update,$.deployment,Update Function Deployment +nvcf_deployments.yaml,/v2/nvcf/deployments/functions/{function_id}/versions/{function_version_id},deleteFunctionDeployment,delete_function_deployment,delete,FunctionResponse,Function Deployment,function deployment,deployments,delete,delete,$.function,Delete Function Deployment +nvcf_deployments.yaml,/v2/nvcf/deployments/{deployment_id},getFunctionDeployment_1,get_function_deployment_1,get,DeploymentResponse,Function Deployment,function deployment,deployments,get_by_id,select,$.deployment,Get Function Deployment Details +nvcf_deployments.yaml,/v2/nvcf/deployments/{deployment_id}/gpu-specifications/{gpu_spec_id},updateGpuSpecification,update_gpu_specification,patch,UpdateGpuSpecificationResponse,Function Deployment,function deployment,deployment_gpu_specs,update,update,$.gpuSpecification,Update the specified GPU specification under the specified deployment +nvcf_deployments.yaml,/v2/nvcf/recognized-registries,getRecognizedRegistries,get_recognized_registries,get,RecognizedRegistriesResponse,Registry Credential Management,registry credential management,recognized_registries,list,select,,List Recognized Registries +nvcf_deployments.yaml,/v2/nvcf/registry-credentials,listRegistryCredentialDetails,list_registry_credential_details,get,ListRegistryCredentialDetailsResponse,Registry Credential Management,registry credential management,registry_credentials,list,select,$.registryCredentials,List Registry Credentials +nvcf_deployments.yaml,/v2/nvcf/registry-credentials,addRegistryCredential,add_registry_credential,post,RegistryCredentialDetailsResponse,Registry Credential Management,registry credential management,registry_credentials,create,insert,$.registryCredential,Add new registry credential to the account +nvcf_deployments.yaml,/v2/nvcf/registry-credentials/{registry_credential_id},getRegistryCredentialDetails,get_registry_credential_details,get,RegistryCredentialDetailsResponse,Registry Credential Management,registry credential management,registry_credentials,get,select,$.registryCredential,Get Registry Credential Details +nvcf_deployments.yaml,/v2/nvcf/registry-credentials/{registry_credential_id},updateRegistryCredential,update_registry_credential,patch,RegistryCredentialDetailsResponse,Registry Credential Management,registry credential management,registry_credentials,update,update,$.registryCredential,Update registry credential +nvcf_deployments.yaml,/v2/nvcf/registry-credentials/{registry_credential_id},deleteRegistryCredential,delete_registry_credential,delete,,Registry Credential Management,registry credential management,registry_credentials,delete,delete,,Delete Registry Credential +nvcf_deployments.yaml,/v2/nvcf/secrets/telemetries/{telemetry_id},updateTelemetrySecret,update_telemetry_secret,put,,User Secret Management,user secret management,telemetry_secrets,update,update,,Update secret for a specific Telemetry Id +nvcf_deployments.yaml,/v2/nvcf/telemetries,getTelemetriesByAccount,get_telemetries_by_account,get,ListTelemetryResponse,Telemetry Management,telemetry management,telemetries,list,select,$.telemetries,List Telemetries +nvcf_deployments.yaml,/v2/nvcf/telemetries,createTelemetry,create_telemetry,post,TelemetryResponse,Telemetry Management,telemetry management,telemetries,create,insert,$.telemetry,Create Telemetry +nvcf_deployments.yaml,/v2/nvcf/telemetries/{telemetry_id},getTelemetry,get_telemetry,get,TelemetryResponse,Telemetry Management,telemetry management,telemetries,get,select,$.telemetry,Get Telemetry Details +nvcf_deployments.yaml,/v2/nvcf/telemetries/{telemetry_id},deleteTelemetry,delete_telemetry,delete,,Telemetry Management,telemetry management,telemetries,delete,delete,,Delete Telemetry +nvcf_functions.yaml,/v2/nvcf/authorizations/functions,getAuthorizedPartiesForAllFunctions,get_authorized_parties_for_all_functions,get,ListAuthorizedPartiesResponse,Function Sharing,function sharing,authorizations,list_all,select,$.functions,List Functions Authorized/Shared With Other Accounts +nvcf_functions.yaml,/v2/nvcf/authorizations/functions/{function_id},getAuthorizedPartiesForAllVersions,get_authorized_parties_for_all_versions,get,ListAuthorizedPartiesResponse,Function Sharing,function sharing,authorizations,list,select,$.functions,List Function Versions with Authorized Accounts For Specified Function +nvcf_functions.yaml,/v2/nvcf/authorizations/functions/{function_id},createAuthorizedPartiesForAllVersions,create_authorized_parties_for_all_versions,post,AuthorizedPartiesResponse,Function Sharing,function sharing,authorizations,set,replace,$.function,Authorize Accounts To Invoke Function +nvcf_functions.yaml,/v2/nvcf/authorizations/functions/{function_id},deleteAuthorizedPartiesForAllVersions,delete_authorized_parties_for_all_versions,delete,AuthorizedPartiesResponse,Function Sharing,function sharing,authorizations,delete_all,exec,$.function,Delete All Authorizations At Function Level +nvcf_functions.yaml,/v2/nvcf/authorizations/functions/{function_id}/add,addAuthorizedPartyForAllVersions,add_authorized_party_for_all_versions,patch,AuthorizedPartiesResponse,Function Sharing,function sharing,authorizations,add,insert,$.function,"Authorize Another Account To Invoke, List, and Check Queue Details of Function" +nvcf_functions.yaml,/v2/nvcf/authorizations/functions/{function_id}/remove,removeAuthorizedPartyForAllVersions,remove_authorized_party_for_all_versions,patch,AuthorizedPartiesResponse,Function Sharing,function sharing,authorizations,remove,delete,$.function,"Unauthorize Account From Invoking, Listing, and Checking Queue Details of Function" +nvcf_functions.yaml,/v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id},getAuthorizedPartiesForSpecificVersion,get_authorized_parties_for_specific_version,get,AuthorizedPartiesResponse,Function Sharing,function sharing,authorizations,list_version,select,$.function,Get Account Authorizations For Function Version +nvcf_functions.yaml,/v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id},createAuthorizedPartiesForSpecificVersion,create_authorized_parties_for_specific_version,post,AuthorizedPartiesResponse,Function Sharing,function sharing,authorizations,set_version,replace,$.function,Authorize Accounts To Invoke/List Function Version +nvcf_functions.yaml,/v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id},deleteAuthorizedPartiesForSpecificVersion,delete_authorized_parties_for_specific_version,delete,AuthorizedPartiesResponse,Function Sharing,function sharing,authorizations,delete_all_version,exec,$.function,Delete All Authorizations At Version Level +nvcf_functions.yaml,/v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id}/add,addAuthorizedPartyForSpecificVersion,add_authorized_party_for_specific_version,patch,AuthorizedPartiesResponse,Function Sharing,function sharing,authorizations,add_version,insert,$.function,"Authorize Another Account To Invoke, List, and Check Queue Details of Function Version" +nvcf_functions.yaml,/v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id}/remove,removeAuthorizedPartyForSpecificVersion,remove_authorized_party_for_specific_version,patch,AuthorizedPartiesResponse,Function Sharing,function sharing,authorizations,remove_version,delete,$.function,"Unauthorize Account From Invoking, Listing, and Checking Queue Details of Function Version" +nvcf_functions.yaml,/v2/nvcf/functions,getFunctions,get_functions,get,ListFunctionsResponse,Function Management,function management,functions,list,select,$.functions,List Functions +nvcf_functions.yaml,/v2/nvcf/functions,createFunction,create_function,post,CreateFunctionResponse,Function Management,function management,functions,create,insert,$.function,Create Function +nvcf_functions.yaml,/v2/nvcf/functions/ids,getFunctionIds,get_function_ids,get,ListFunctionIdsResponse,Function Management,function management,function_ids,list,select,$.functionIds,List Function Ids +nvcf_functions.yaml,/v2/nvcf/functions/{function_id}/versions,getFunctions_1,get_functions_1,get,ListFunctionsResponse,Function Management,function management,function_versions,list,select,$.functions,List Function Versions +nvcf_functions.yaml,/v2/nvcf/functions/{function_id}/versions,createFunction_1,create_function_1,post,CreateFunctionResponse,Function Management,function management,function_versions,create,insert,$.function,Create Function Version +nvcf_functions.yaml,/v2/nvcf/functions/{function_id}/versions/{function_version_id},getFunction,get_function,get,FunctionResponse,Function Management,function management,function_versions,get,select,$.function,Get Function Version Details +nvcf_functions.yaml,/v2/nvcf/functions/{function_id}/versions/{function_version_id},updateFunction,update_function,put,FunctionResponse,Function Management,function management,function_versions,update,update,$.function,Updates mutable fields of the specified function version. +nvcf_functions.yaml,/v2/nvcf/functions/{function_id}/versions/{function_version_id},deleteFunction,delete_function,delete,,Function Management,function management,function_versions,delete,delete,,Delete Function +nvcf_functions.yaml,/v2/nvcf/metadata/functions/{function_id}/versions/{function_version_id},updateFunctionMetadata,update_function_metadata,put,FunctionResponse,Function Management,function management,function_metadata,update,update,$.function,Update Function Metadata +nvcf_functions.yaml,/v2/nvcf/ratelimit/functions/{function_id}/versions/{version_id},updateRateLimit,update_rate_limit,put,,User Ratelimit Management,user ratelimit management,function_ratelimits,update,update,,Update user ratelimit for a function version +nvcf_functions.yaml,/v2/nvcf/ratelimit/functions/{function_id}/versions/{version_id},deleteRateLimit,delete_rate_limit,delete,,User Ratelimit Management,user ratelimit management,function_ratelimits,delete,delete,,Delete user ratelimit for a function version +nvcf_functions.yaml,/v2/nvcf/secrets/functions/{function_id}/versions/{version_id},updateFunctionSecrets,update_function_secrets,put,,User Secret Management,user secret management,function_secrets,update,update,,Update user secrets for a function version +nvcf_invocation.yaml,/v2/nvcf/assets,getAssets,get_assets,get,ListAssetsResponse,Asset Management,asset management,assets,list,select,$.assets,List Assets +nvcf_invocation.yaml,/v2/nvcf/assets,createAsset,create_asset,post,CreateAssetResponse,Asset Management,asset management,assets,create,insert,,Create Asset +nvcf_invocation.yaml,/v2/nvcf/assets/{asset_id},getAsset,get_asset,get,AssetResponse,Asset Management,asset management,assets,get,select,$.asset,Show Asset Details +nvcf_invocation.yaml,/v2/nvcf/assets/{asset_id},deleteAsset,delete_asset,delete,,Asset Management,asset management,assets,delete,delete,,Delete Asset +nvcf_invocation.yaml,/v2/nvcf/pexec/functions/{function_id},invokeFunction,invoke_function,post,,Function Invocation,function invocation,invocations,invoke,exec,,Call Function +nvcf_invocation.yaml,/v2/nvcf/pexec/functions/{function_id}/versions/{version_id},invokeFunction_1,invoke_function_1,post,,Function Invocation,function invocation,invocations,invoke_version,exec,,Call Function +nvcf_invocation.yaml,/v2/nvcf/pexec/status/{request_id},getFunctionInvocationResult,get_function_invocation_result,get,,Function Invocation,function invocation,invocation_status,get,select,,Poll For Result Using Function Invocation Request +nvcf_invocation.yaml,/v2/nvcf/tokens/functions,issueMultiFunctionsInvocationToken,issue_multi_functions_invocation_token,post,,Function Invocation Assertion Token,function invocation assertion token,tokens,create_for_functions,exec,,Issue Function Invocation Token +nvcf_invocation.yaml,/v2/nvcf/tokens/functions/{function_id},issueInvocationToken_1,issue_invocation_token_1,post,,Function Invocation Assertion Token,function invocation assertion token,tokens,create_for_function,exec,,Issue Function Invocation Token +nvcf_invocation.yaml,/v2/nvcf/tokens/functions/{function_id}/versions/{function_version_id},issueInvocationToken,issue_invocation_token,post,,Function Invocation Assertion Token,function invocation assertion token,tokens,create_for_version,exec,,Issue Function Invocation Token +nvcf_queues.yaml,/v2/nvcf/queues/functions/{function_id},getQueuesDetails_1,get_queues_details_1,get,GetQueuesResponse,Queue Details,queue details,queues,list,select,$.queues,Queue Details +nvcf_queues.yaml,/v2/nvcf/queues/functions/{function_id}/versions/{version_id},getQueuesDetails,get_queues_details,get,GetQueuesResponse,Queue Details,queue details,queues,list_version,select,$.queues,Queue Details +nvcf_queues.yaml,/v2/nvcf/queues/{request_id}/position,getPositionInQueue,get_position_in_queue,get,GetPositionInQueueResponse,Queue Details,queue details,queue_positions,get,select,,Queue Position +orgs.yaml,/roles,getRoles,get_roles,get,UserRoleDefinitionsResponse,Services,services,roles,list,select,$.roles,NGC Roles +orgs.yaml,/starfleetIds/{starfleet_id},getUserInOrg_1,get_user_in_org_1,get,UserResponse,Users Management,users management,users,get_by_starfleet_id,select,$.user,Get User in org +orgs.yaml,/team/{team_name}/starfleetIds/{starfleet_id},getUserInTeamByStarfleetId,get_user_in_team_by_starfleet_id,get,UserResponse,Users Management,users management,team_members,get_by_starfleet_id,select,,Get User in team +orgs.yaml,/team/{team_name}/users,listUsersInTeam,list_users_in_team,get,UserListResponse,Users Management,users management,team_members,list,select,$.users,List users in team +orgs.yaml,/team/{team_name}/users,createUserInTeam,create_user_in_team,post,UserResponse,Users Management,users management,team_members,create,insert,,Creates a User in team +orgs.yaml,/team/{team_name}/users/invitations,listInvitationsForUserInTeam,list_invitations_for_user_in_team,get,UserInvitationListResponse,Users Management,users management,team_invitations,list,select,$.invitations,List user invitations in a team. +orgs.yaml,/team/{team_name}/users/invitations/{id},deleteUserInvitationInTeam,delete_user_invitation_in_team,delete,Response,Users Management,users management,team_invitations,delete,delete,,Delete a specific invitation in a team. +orgs.yaml,/team/{team_name}/users/invitations/{id}/resend-invitation-email,resendUserInvitationEmailInTeam,resend_user_invitation_email_in_team,get,UserResponse,Users Management,users management,team_invitations,resend_email,exec,,Resend email of a specific invitation in a team. +orgs.yaml,/team/{team_name}/users/{id},addUserToTeam,add_user_to_team,post,Response,Users Management,users management,team_members,add,insert,,Add a User to team +orgs.yaml,/teams,listTeams,list_teams,get,TeamListResponse,Teams,teams,teams,list,select,$.teams,List Teams +orgs.yaml,/teams,createTeam,create_team,post,TeamCreateResponse,Teams,teams,teams,create,insert,$.team,Create Team +orgs.yaml,/teams/{team_name},getTeam,get_team,get,TeamResponse,Teams,teams,teams,get,select,$.team,Get Team +orgs.yaml,/teams/{team_name},editTeam,edit_team,patch,TeamResponse,Teams,teams,teams,update,update,$.team,Edit Team +orgs.yaml,/teams/{team_name},deleteTeam,delete_team,delete,Response,Teams,teams,teams,delete,delete,,Delete Team +orgs.yaml,/users,listUsersInOrg,list_users_in_org,get,UserListResponse,Users Management,users management,users,list,select,$.users,List users In org +orgs.yaml,/users,createUserInOrg,create_user_in_org,post,UserResponse,Users Management,users management,users,create,insert,$.user,Creates a User in org +orgs.yaml,/users/invitations,listInvitationsForUserInOrg,list_invitations_for_user_in_org,get,UserInvitationListResponse,Users Management,users management,user_invitations,list,select,$.invitations,List user invitations in an org. +orgs.yaml,/users/invitations/{id},deleteUserInvitationInOrg,delete_user_invitation_in_org,delete,Response,Users Management,users management,user_invitations,delete,delete,,Delete a specific invitation in an org. +orgs.yaml,/users/invitations/{id}/resend-invitation-email,resendUserInvitationEmailInOrg,resend_user_invitation_email_in_org,get,UserResponse,Users Management,users management,user_invitations,resend_email,exec,,Resend email of a specific invitation in an org. +orgs.yaml,/v2/orgs,listOrganizations_1,list_organizations_1,get,OrgListResponse,Orgs,orgs,orgs,list,select,$.organizations,List Organizations +orgs.yaml,/v2/orgs/{org_name},getOrganization,get_organization,get,OrgResponse,Orgs,orgs,orgs,get,select,$.organizations,Get Organization +orgs.yaml,/v2/orgs/{org_name},updateOrganization,update_organization,patch,OrgResponse,Orgs,orgs,orgs,update,update,$.organizations,Update Organization +orgs.yaml,/v2/users/me,whoAmI,who_am_i,get,UserResponse,Users Management,users management,current_user,get,select,$.user,Who am I? +orgs.yaml,/v2/users/me,editUserProfile,edit_user_profile,patch,UserResponse,Users Management,users management,current_user,update,update,$.user,Edit current user profile +orgs.yaml,/v2/users/me/api-key,generateUserApiKey,generate_user_api_key,post,UserKeyResponse,Users Management,users management,current_user,create_api_key,exec,,Generate API Key +orgs.yaml,/v3/orgs,createOrganizationFromScratch,create_organization_from_scratch,post,OrgResponse,Orgs,orgs,orgs,create,insert,$.organizations,Create Organization from Scratch +orgs.yaml,/v3/orgs/proto-org,createOrganizationFromProtoOrg,create_organization_from_proto_org,post,OrgResponse,Orgs,orgs,proto_orgs,create,insert,$.organizations,Create Organization from ProtoOrg +orgs.yaml,/v3/orgs/proto-org/validate,protoOrgInvitationValidate,proto_org_invitation_validate,get,OrgInvitationResponse,Orgs,orgs,proto_orgs,validate,select,$.orgInvitation,Validate org creation invite +orgs.yaml,/teams/{team_name}/users/nca-invitations,inviteUserToNcaInTeam,invite_user_to_nca_in_team,post,UserResponse,Users Management,users management,team_invitations,create_nca,insert,,Invite User to NCA (team version) +orgs.yaml,/teams/{team_name}/users/{id},removeUserFromTeam,remove_user_from_team,delete,Response,Users Management,users management,team_members,remove,delete,,Remove User from team +orgs.yaml,/teams/{team_name}/users/{user_email_or_id},listUserRolesInOrgTeam,list_user_roles_in_org_team,get,UserResponse,Users Management,users management,team_members,get,select,,Get user in a team by email or id. +orgs.yaml,/teams/{team_name}/users/{user_email_or_id}/add-role,addRoleOrInviteUserToTeam,add_role_or_invite_user_to_team,patch,UserResponse,Users Management,users management,team_member_roles,add,insert,,Invite user or add role in team +orgs.yaml,/teams/{team_name}/users/{user_email_or_id}/remove-role,removeRoleOrInvitationInTeam,remove_role_or_invitation_in_team,delete,UserResponse,Users Management,users management,team_member_roles,remove,delete,,Remove role or invitation in team +orgs.yaml,/users/nca-invitations,inviteUserToNcaInOrg,invite_user_to_nca_in_org,post,UserResponse,Users Management,users management,user_invitations,create_nca,insert,,Invite User to NCA (org version) +orgs.yaml,/users/{id},removeUserFromOrg,remove_user_from_org,delete,Response,Users Management,users management,users,delete,delete,,Remove User from org +orgs.yaml,/users/{user_email_or_id},listUserRolesInOrg,list_user_roles_in_org,get,UserResponse,Users Management,users management,users,get,select,$.user,Get user in an org by email or id. +orgs.yaml,/users/{user_email_or_id}/add-role,addRoleOrInviteUserToOrg,add_role_or_invite_user_to_org,patch,UserResponse,Users Management,users management,user_roles,add,insert,,Invite user or add role in org +orgs.yaml,/users/{user_email_or_id}/remove-role,removeRoleOrInvitationInOrg,remove_role_or_invitation_in_org,delete,UserResponse,Users Management,users management,user_roles,remove,delete,,Remove role or invitation in org +private_registry.yaml,/encryption-keys,listKeysInOrg,list_keys_in_org,get,KeyListResponse,Encryption Keys,encryption keys,encryption_keys,list,select,$.encryptionKeys,List encryption keys in org +private_registry.yaml,/encryption-keys/{key_id},listArtifactsForKeyInOrg,list_artifacts_for_key_in_org,get,KeyArtifactListResponse,Encryption Keys,encryption keys,encryption_keys,get,select,$.artifacts,List artifacts for encryption key in org +private_registry.yaml,/encryption-keys/{key_id},deleteKeyFromOrg,delete_key_from_org,delete,WorkflowStatusUrlResponse,Encryption Keys,encryption keys,encryption_keys,delete,delete,,Revoke encryption key in org +private_registry.yaml,/team/{team_name}/encryption-keys,listKeysInTeam,list_keys_in_team,get,KeyListResponse,Encryption Keys,encryption keys,encryption_keys,list_by_team,select,$.encryptionKeys,List encryption keys in org/team +private_registry.yaml,/team/{team_name}/encryption-keys/{key_id},listArtifactsForKeyInTeam,list_artifacts_for_key_in_team,get,KeyArtifactListResponse,Encryption Keys,encryption keys,encryption_keys,get_by_team,select,$.artifacts,List artifacts for encryption key in org/team +private_registry.yaml,/team/{team_name}/encryption-keys/{key_id},deleteKeyFromTeam,delete_key_from_team,delete,WorkflowStatusUrlResponse,Encryption Keys,encryption keys,encryption_keys,delete_by_team,delete,,Revoke encryption key in org/team +private_registry.yaml,/team/{team}/workflows/{workflow_id},getWorkflowStatusForTeam,get_workflow_status_for_team,get,,Workflows,workflows,workflows,get_by_team,select,,Get team-scoped workflow status +private_registry.yaml,/workflows/{workflow_id},getWorkflowStatus,get_workflow_status,get,,Workflows,workflows,workflows,get,select,,Get workflow status +private_registry.yaml,/collections,listCollectionsInOrg,list_collections_in_org,get,CollectionListResponse,Collections,collections,collections,list,select,$.collections,List collections in org +private_registry.yaml,/collections,createCollectionInOrg,create_collection_in_org,post,CollectionResponse,Collections,collections,collections,create,insert,$.collection,Create collection in org +private_registry.yaml,/collections/{collection_name},getCollectionInOrg,get_collection_in_org,get,CollectionResponse,Collections,collections,collections,get,select,$.collection,Get collection in org +private_registry.yaml,/collections/{collection_name},updateCollectionInOrg,update_collection_in_org,patch,CollectionResponse,Collections,collections,collections,update,update,$.collection,Update collection in org +private_registry.yaml,/collections/{collection_name},deleteCollectionInOrg,delete_collection_in_org,delete,Response,Collections,collections,collections,delete,delete,,Delete collection in org +private_registry.yaml,/collections/{collection_name}/artifacts,patchCollectionInOrg,patch_collection_in_org,patch,Response,Collections,collections,collection_artifacts,update_bulk,update,,Patch collection in org +private_registry.yaml,/collections/{collection_name}/artifacts/org/{artifact_org_name}/team/{artifact_team_name}/{artifact_type}/{artifact_name},addArtifactToCollectionInOrgFromAnotherOrgAndTeam,add_artifact_to_collection_in_org_from_another_org_and_team,put,Response,Collections,collections,collection_artifacts,add_cross_org_team,insert,,Add artifact to collection in org from another org and team +private_registry.yaml,/collections/{collection_name}/artifacts/org/{artifact_org_name}/team/{artifact_team_name}/{artifact_type}/{artifact_name},removeArtifactFromCollectionInOrgFromAnotherOrgAndTeam,remove_artifact_from_collection_in_org_from_another_org_and_team,delete,Response,Collections,collections,collection_artifacts,remove_cross_org_team,delete,,Remove artifact from collection in org from another org +private_registry.yaml,/collections/{collection_name}/artifacts/org/{artifact_org_name}/{artifact_type}/{artifact_name},addArtifactToCollectionInOrgFromAnotherOrg,add_artifact_to_collection_in_org_from_another_org,put,Response,Collections,collections,collection_artifacts,add_cross_org,insert,,Add artifact to collection in org from another org +private_registry.yaml,/collections/{collection_name}/artifacts/org/{artifact_org_name}/{artifact_type}/{artifact_name},removeArtifactFromCollectionInOrgFromAnotherOrg,remove_artifact_from_collection_in_org_from_another_org,delete,Response,Collections,collections,collection_artifacts,remove_cross_org,delete,,Remove artifact from collection in org from another org +private_registry.yaml,/collections/{collection_name}/artifacts/{artifact_type},listCollectionArtifactsInOrg,list_collection_artifacts_in_org,get,ArtifactListResponse,Collections,collections,collection_artifacts,list,select,$.artifacts,List collection artifacts in org +private_registry.yaml,/collections/{collection_name}/share/product,publishCollectionFromRequest,publish_collection_from_request,put,Response,Publish,publish,collection_product_shares,add,insert,,Publish collection to product +private_registry.yaml,/collections/{collection_name}/{artifact_type}/{artifact_name},addArtifactToCollectionInOrg,add_artifact_to_collection_in_org,put,Response,Collections,collections,collection_artifacts,add,insert,,Add artifact to collection in org +private_registry.yaml,/collections/{collection_name}/{artifact_type}/{artifact_name},removeArtifactFromCollectionInOrg,remove_artifact_from_collection_in_org,delete,Response,Collections,collections,collection_artifacts,remove,delete,,Remove artifact from collection in org +private_registry.yaml,/helm-charts/{artifact_name}/versions,listHelmChartVersionsInOrg,list_helm_chart_versions_in_org,get,ArtifactVersionListResponse,Helm Charts,helm charts,helm_chart_versions,list,select,$.artifactVersions,List chart versions in org +private_registry.yaml,/helm-charts/{artifact_name}/versions/{version_id},getHelmChartVersionInOrg,get_helm_chart_version_in_org,get,ArtifactVersionResponse,Helm Charts,helm charts,helm_chart_versions,get,select,$.artifactVersion,Get chart version in org +private_registry.yaml,/helm-charts/{artifact_name}/versions/{version_id},updateHelmChartVersionInOrg,update_helm_chart_version_in_org,patch,ArtifactVersionResponse,Helm Charts,helm charts,helm_chart_versions,update,update,$.artifactVersion,Update chart version in org +private_registry.yaml,/models,listModelsInOrg,list_models_in_org,get,ModelListResponse,Models,models,models,list,select,$.models,List models in org +private_registry.yaml,/models,createModelInOrg,create_model_in_org,post,ModelResponse,Models,models,models,create,insert,$.model,Create model in org +private_registry.yaml,/models/{artifact_name}/versions/{version_id}/stash,stashArtifactVersionInOrg,stash_artifact_version_in_org,patch,Response,Model Version,model version,model_versions,stash,exec,,Stash artifact version in org +private_registry.yaml,/models/{model_name},getModelInOrg,get_model_in_org,get,ModelResponse,Models,models,models,get,select,$.model,Get model details in org +private_registry.yaml,/models/{model_name},updateModelInOrg,update_model_in_org,patch,ModelResponse,Models,models,models,update,update,$.model,Update model in org +private_registry.yaml,/models/{model_name},deleteModelInOrg,delete_model_in_org,delete,Response,Models,models,models,delete,delete,,Delete model in org +private_registry.yaml,/models/{model_name}/encryption-key,disassociateKeyFromModelInOrg,disassociate_key_from_model_in_org,delete,WorkflowStatusUrlResponse,Models,models,model_encryption_keys,delete,delete,,Disassociate encryption key from model in org +private_registry.yaml,/models/{model_name}/versions,listModelVersionsInOrg,list_model_versions_in_org,get,ModelVersionListResponse,Model Version,model version,model_versions,list,select,$.modelVersions,List model versions in org +private_registry.yaml,/models/{model_name}/versions,createModelVersionInOrg,create_model_version_in_org,post,ModelVersionResponse,Model Version,model version,model_versions,create,insert,$.modelVersion,Create model version in org +private_registry.yaml,/models/{model_name}/versions/{version_id},getModelVersionInOrg,get_model_version_in_org,get,ModelVersionResponse,Model Version,model version,model_versions,get,select,$.modelVersion,Get model version in org +private_registry.yaml,/models/{model_name}/versions/{version_id},updateModelVersionInOrg,update_model_version_in_org,patch,ModelVersionResponse,Model Version,model version,model_versions,update,update,$.modelVersion,Update model version in org +private_registry.yaml,/models/{model_name}/versions/{version_id}/files,listModeFilesInOrg,list_mode_files_in_org,get,ModelVersionFileListResponse,Model Version Files,model version files,model_files,list,select,$.modelFiles,List model files in org +private_registry.yaml,/recipes,listRecipesInOrg,list_recipes_in_org,get,RecipeListResponse,Resources,resources,recipes,list,select,$.recipes,List recipes in org +private_registry.yaml,/recipes,createRecipeInOrg,create_recipe_in_org,post,RecipeResponse,Resources,resources,recipes,create,insert,$.recipe,Create recipe in org +private_registry.yaml,/recipes/{recipe_name},getRecipeInOrg,get_recipe_in_org,get,RecipeResponse,Resources,resources,recipes,get,select,$.recipe,Get recipe in org +private_registry.yaml,/recipes/{recipe_name},updateRecipeInOrg,update_recipe_in_org,patch,RecipeResponse,Resources,resources,recipes,update,update,$.recipe,Update recipe in org +private_registry.yaml,/recipes/{recipe_name}/versions,listRecipeVersionsInOrg,list_recipe_versions_in_org,get,RecipeVersionListResponse,Resource Versions,resource versions,recipe_versions,list,select,$.recipeVersions,List recipe versions in org +private_registry.yaml,/recipes/{recipe_name}/versions,createRecipeVersionInOrg,create_recipe_version_in_org,post,RecipeVersionResponse,Resource Versions,resource versions,recipe_versions,create,insert,$.recipeVersion,Create recipe version in org +private_registry.yaml,/recipes/{recipe_name}/versions/{version_id},getRecipeVersionInOrg,get_recipe_version_in_org,get,RecipeVersionResponse,Resource Versions,resource versions,recipe_versions,get,select,$.recipeVersion,Get recipe version in org +private_registry.yaml,/recipes/{recipe_name}/versions/{version_id},updateRecipeVersionInOrg,update_recipe_version_in_org,patch,RecipeVersionResponse,Resource Versions,resource versions,recipe_versions,update,update,$.recipeVersion,Update recipe version in org +private_registry.yaml,/recipes/{recipe_name}/versions/{version_id}/files,listRecipeFilesInOrg,list_recipe_files_in_org,get,RecipeVersionFileListResponse,Resource Version Files endpoints,resource version files endpoints,recipe_files,list,select,$.recipeFiles,List recipe files in org +private_registry.yaml,/repositories/{container_name}/associated-models,listModelVersionsAssociatedByContainer,list_model_versions_associated_by_container,get,ModelVersionListResponse,Model Version,model version,repository_associated_models,list,select,$.modelVersions,List associated model versions by container +private_registry.yaml,/repositories/{container_name}/tags/{container_tag}/associated-models,listModelVersionsAssociatedByContainer_2,list_model_versions_associated_by_container_2,get,ModelVersionListResponse,Model Version,model version,repository_associated_models,list_by_tag,select,$.modelVersions,List associated model versions by container +private_registry.yaml,/resources,listRecipesInOrg_1,list_recipes_in_org_1,get,RecipeListResponse,Resources,resources,resources,list,select,$.recipes,List recipes in org +private_registry.yaml,/resources,createRecipeInOrg_1,create_recipe_in_org_1,post,RecipeResponse,Resources,resources,resources,create,insert,$.recipe,Create recipe in org +private_registry.yaml,/resources/{recipe_name},getRecipeInOrg_1,get_recipe_in_org_1,get,RecipeResponse,Resources,resources,resources,get,select,$.recipe,Get recipe in org +private_registry.yaml,/resources/{recipe_name},updateRecipeInOrg_1,update_recipe_in_org_1,patch,RecipeResponse,Resources,resources,resources,update,update,$.recipe,Update recipe in org +private_registry.yaml,/resources/{recipe_name},deleteResourceInOrg,delete_resource_in_org,delete,Response,Resources,resources,resources,delete,delete,,Delete resource in org +private_registry.yaml,/resources/{recipe_name}/versions,listRecipeVersionsInOrg_1,list_recipe_versions_in_org_1,get,RecipeVersionListResponse,Resource Versions,resource versions,resource_versions,list,select,$.recipeVersions,List recipe versions in org +private_registry.yaml,/resources/{recipe_name}/versions,createRecipeVersionInOrg_1,create_recipe_version_in_org_1,post,RecipeVersionResponse,Resource Versions,resource versions,resource_versions,create,insert,$.recipeVersion,Create recipe version in org +private_registry.yaml,/resources/{recipe_name}/versions/{version_id},getRecipeVersionInOrg_1,get_recipe_version_in_org_1,get,RecipeVersionResponse,Resource Versions,resource versions,resource_versions,get,select,$.recipeVersion,Get recipe version in org +private_registry.yaml,/resources/{recipe_name}/versions/{version_id},updateRecipeVersionInOrg_1,update_recipe_version_in_org_1,patch,RecipeVersionResponse,Resource Versions,resource versions,resource_versions,update,update,$.recipeVersion,Update recipe version in org +private_registry.yaml,/resources/{recipe_name}/versions/{version_id}/files,listRecipeFilesInOrg_1,list_recipe_files_in_org_1,get,RecipeVersionFileListResponse,Resource Version Files endpoints,resource version files endpoints,resource_files,list,select,$.recipeFiles,List recipe files in org +private_registry.yaml,/team/{team_name}/collections,listCollectionsInTeam,list_collections_in_team,get,CollectionListResponse,Collections,collections,collections,list_by_team,select,$.collections,List collections in team +private_registry.yaml,/team/{team_name}/collections,createCollectionInTeam,create_collection_in_team,post,CollectionResponse,Collections,collections,collections,create_by_team,insert,$.collection,Create collection in org and team +private_registry.yaml,/team/{team_name}/collections/{collection_name},getCollectionInTeam,get_collection_in_team,get,CollectionResponse,Collections,collections,collections,get_by_team,select,$.collection,Get collection in team +private_registry.yaml,/team/{team_name}/collections/{collection_name},updateCollectionInTeam,update_collection_in_team,patch,CollectionResponse,Collections,collections,collections,update_by_team,update,$.collection,Update collection in team +private_registry.yaml,/team/{team_name}/collections/{collection_name},deleteCollectionInTeam,delete_collection_in_team,delete,Response,Collections,collections,collections,delete_by_team,delete,,Delete collection in org and team +private_registry.yaml,/team/{team_name}/collections/{collection_name}/artifacts,patchCollectionInTeam,patch_collection_in_team,patch,Response,Collections,collections,collection_artifacts,update_bulk_by_team,update,,Patch collection in org and team +private_registry.yaml,/team/{team_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/team/{artifact_team_name}/{artifact_type}/{artifact_name},addArtifactToCollectionInTeamFromAnotherOrgAndTeam,add_artifact_to_collection_in_team_from_another_org_and_team,put,Response,Collections,collections,collection_artifacts,add_cross_org_team_by_team,insert,,Add artifact to collection in org and team from another org and team +private_registry.yaml,/team/{team_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/team/{artifact_team_name}/{artifact_type}/{artifact_name},removeArtifactFromCollectionInTeamFromAnotherOrgAndTeam,remove_artifact_from_collection_in_team_from_another_org_and_team,delete,Response,Collections,collections,collection_artifacts,remove_cross_org_team_by_team,delete,,Remove artifact from collection in org and team from another org and team +private_registry.yaml,/team/{team_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/{artifact_type}/{artifact_name},addArtifactToCollectionInTeamFromAnotherOrg,add_artifact_to_collection_in_team_from_another_org,put,Response,Collections,collections,collection_artifacts,add_cross_org_by_team,insert,,Add artifact to collection in org and team from another org +private_registry.yaml,/team/{team_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/{artifact_type}/{artifact_name},removeArtifactFromCollectionInTeamFromAnotherOrg,remove_artifact_from_collection_in_team_from_another_org,delete,Response,Collections,collections,collection_artifacts,remove_cross_org_by_team,delete,,Remove artifact from collection in org and team from another org +private_registry.yaml,/team/{team_name}/collections/{collection_name}/artifacts/{artifact_type},listCollectionArtifactsInTeam,list_collection_artifacts_in_team,get,ArtifactListResponse,Collections,collections,collection_artifacts,list_by_team,select,$.artifacts,List collection artifacts in org and team +private_registry.yaml,/team/{team_name}/collections/{collection_name}/share/product,publishCollectionFromRequest_1,publish_collection_from_request_1,put,Response,Publish,publish,collection_product_shares,add_by_team,insert,,Publish collection to product +private_registry.yaml,/team/{team_name}/collections/{collection_name}/{artifact_type}/{artifact_name},addArtifactToCollectionInTeam,add_artifact_to_collection_in_team,put,Response,Collections,collections,collection_artifacts,add_by_team,insert,,Add artifact to collection in org and team +private_registry.yaml,/team/{team_name}/collections/{collection_name}/{artifact_type}/{artifact_name},removeArtifactFromCollectionInTeam,remove_artifact_from_collection_in_team,delete,Response,Collections,collections,collection_artifacts,remove_by_team,delete,,Remove artifact from collection in org and team +private_registry.yaml,/team/{team_name}/helm-charts/{artifact_name}/versions,listHelmChartVersionsInTeam,list_helm_chart_versions_in_team,get,ArtifactVersionListResponse,Helm Charts,helm charts,helm_chart_versions,list_by_team,select,$.artifactVersions,List chart versions in team +private_registry.yaml,/team/{team_name}/helm-charts/{artifact_name}/versions/{version_id},getHelmChartVersionInTeam,get_helm_chart_version_in_team,get,ArtifactVersionResponse,Helm Charts,helm charts,helm_chart_versions,get_by_team,select,$.artifactVersion,Get chart version in team +private_registry.yaml,/team/{team_name}/helm-charts/{artifact_name}/versions/{version_id},updateHelmChartVersionInTeam,update_helm_chart_version_in_team,patch,ArtifactVersionResponse,Helm Charts,helm charts,helm_chart_versions,update_by_team,update,$.artifactVersion,Update chart version in team +private_registry.yaml,/team/{team_name}/models,listModelsInTeam,list_models_in_team,get,ModelListResponse,Models,models,models,list_by_team,select,$.models,List models in team +private_registry.yaml,/team/{team_name}/models,createModelInTeam,create_model_in_team,post,ModelResponse,Models,models,models,create_by_team,insert,$.model,Create model in team +private_registry.yaml,/team/{team_name}/models/{artifact_name}/versions/{version_id}/stash,stashArtifactVersionInTeam,stash_artifact_version_in_team,patch,Response,Model Version,model version,model_versions,stash_by_team,exec,,Stash artifact version in team +private_registry.yaml,/team/{team_name}/models/{model_name},getModelInTeam,get_model_in_team,get,ModelResponse,Models,models,models,get_by_team,select,$.model,Get model in team +private_registry.yaml,/team/{team_name}/models/{model_name},updateModelInTeam,update_model_in_team,patch,ModelResponse,Models,models,models,update_by_team,update,$.model,Update model in team +private_registry.yaml,/team/{team_name}/models/{model_name},deleteModelInTeam,delete_model_in_team,delete,Response,Models,models,models,delete_by_team,delete,,Delete model in org/team +private_registry.yaml,/team/{team_name}/models/{model_name}/encryption-key,disassociateKeyFromModelInTeam,disassociate_key_from_model_in_team,delete,WorkflowStatusUrlResponse,Models,models,model_encryption_keys,delete_by_team,delete,,Disassociate encryption key from model in team +private_registry.yaml,/team/{team_name}/models/{model_name}/versions,listModelVersionsInTeam,list_model_versions_in_team,get,ModelVersionListResponse,Model Version,model version,model_versions,list_by_team,select,$.modelVersions,List model versions in team +private_registry.yaml,/team/{team_name}/models/{model_name}/versions,createModelVersionInTeam,create_model_version_in_team,post,ModelVersionResponse,Model Version,model version,model_versions,create_by_team,insert,$.modelVersion,Create model version in team. +private_registry.yaml,/team/{team_name}/models/{model_name}/versions/{version_id},getModelVersionInTeam,get_model_version_in_team,get,ModelVersionResponse,Model Version,model version,model_versions,get_by_team,select,$.modelVersion,Get model version in team +private_registry.yaml,/team/{team_name}/models/{model_name}/versions/{version_id},updateModelVersionInTeam,update_model_version_in_team,patch,ModelVersionResponse,Model Version,model version,model_versions,update_by_team,update,$.modelVersion,Update model version in team +private_registry.yaml,/team/{team_name}/models/{model_name}/versions/{version_id}/files,listModeFilesInTeam,list_mode_files_in_team,get,ModelVersionFileListResponse,Model Version Files,model version files,model_files,list_by_team,select,$.modelFiles,List model files in team +private_registry.yaml,/team/{team_name}/recipes,listRecipesInTeam,list_recipes_in_team,get,RecipeListResponse,Resources,resources,recipes,list_by_team,select,$.recipes,List recipes in team +private_registry.yaml,/team/{team_name}/recipes,createRecipeInTeam,create_recipe_in_team,post,RecipeResponse,Resources,resources,recipes,create_by_team,insert,$.recipe,Create recipe in team +private_registry.yaml,/team/{team_name}/recipes/{recipe_name},getRecipeInTeam,get_recipe_in_team,get,RecipeResponse,Resources,resources,recipes,get_by_team,select,$.recipe,Get recipe in team +private_registry.yaml,/team/{team_name}/recipes/{recipe_name},updateRecipeInTeam,update_recipe_in_team,patch,RecipeResponse,Resources,resources,recipes,update_by_team,update,$.recipe,Update recipe in team +private_registry.yaml,/team/{team_name}/recipes/{recipe_name}/versions,listRecipeVersionsInTeam,list_recipe_versions_in_team,get,RecipeVersionListResponse,Resource Versions,resource versions,recipe_versions,list_by_team,select,$.recipeVersions,List recipe versions in team +private_registry.yaml,/team/{team_name}/recipes/{recipe_name}/versions,createRecipeVersionInTeam,create_recipe_version_in_team,post,RecipeVersionResponse,Resource Versions,resource versions,recipe_versions,create_by_team,insert,$.recipeVersion,Create recipe version in team +private_registry.yaml,/team/{team_name}/recipes/{recipe_name}/versions/{version_id},getRecipeVersionInTeam,get_recipe_version_in_team,get,RecipeVersionResponse,Resource Versions,resource versions,recipe_versions,get_by_team,select,$.recipeVersion,Get recipe version in team +private_registry.yaml,/team/{team_name}/recipes/{recipe_name}/versions/{version_id},updateRecipeVersionInTeam,update_recipe_version_in_team,patch,RecipeVersionResponse,Resource Versions,resource versions,recipe_versions,update_by_team,update,$.recipeVersion,Update recipe version in team +private_registry.yaml,/team/{team_name}/recipes/{recipe_name}/versions/{version_id}/files,listRecipeFilesInTeam,list_recipe_files_in_team,get,RecipeVersionFileListResponse,Resource Version Files endpoints,resource version files endpoints,recipe_files,list_by_team,select,$.recipeFiles,List recipe files in team +private_registry.yaml,/team/{team_name}/repositories/{container_name}/associated-models,listModelVersionsAssociatedByContainer_1,list_model_versions_associated_by_container_1,get,ModelVersionListResponse,Model Version,model version,repository_associated_models,list_by_team,select,$.modelVersions,List associated model versions by container +private_registry.yaml,/team/{team_name}/repositories/{container_name}/tags/{container_tag}/associated-models,listModelVersionsAssociatedByContainer_3,list_model_versions_associated_by_container_3,get,ModelVersionListResponse,Model Version,model version,repository_associated_models,list_by_tag_by_team,select,$.modelVersions,List associated model versions by container +private_registry.yaml,/team/{team_name}/resources,listRecipesInTeam_1,list_recipes_in_team_1,get,RecipeListResponse,Resources,resources,resources,list_by_team,select,$.recipes,List recipes in team +private_registry.yaml,/team/{team_name}/resources,createRecipeInTeam_1,create_recipe_in_team_1,post,RecipeResponse,Resources,resources,resources,create_by_team,insert,$.recipe,Create recipe in team +private_registry.yaml,/team/{team_name}/resources/{recipe_name},getRecipeInTeam_1,get_recipe_in_team_1,get,RecipeResponse,Resources,resources,resources,get_by_team,select,$.recipe,Get recipe in team +private_registry.yaml,/team/{team_name}/resources/{recipe_name},updateRecipeInTeam_1,update_recipe_in_team_1,patch,RecipeResponse,Resources,resources,resources,update_by_team,update,$.recipe,Update recipe in team +private_registry.yaml,/team/{team_name}/resources/{recipe_name},deleteResourceInTeam,delete_resource_in_team,delete,Response,Resources,resources,resources,delete_by_team,delete,,Delete resource in org/team +private_registry.yaml,/team/{team_name}/resources/{recipe_name}/versions,listRecipeVersionsInTeam_1,list_recipe_versions_in_team_1,get,RecipeVersionListResponse,Resource Versions,resource versions,resource_versions,list_by_team,select,$.recipeVersions,List recipe versions in team +private_registry.yaml,/team/{team_name}/resources/{recipe_name}/versions,createRecipeVersionInTeam_1,create_recipe_version_in_team_1,post,RecipeVersionResponse,Resource Versions,resource versions,resource_versions,create_by_team,insert,$.recipeVersion,Create recipe version in team +private_registry.yaml,/team/{team_name}/resources/{recipe_name}/versions/{version_id},getRecipeVersionInTeam_1,get_recipe_version_in_team_1,get,RecipeVersionResponse,Resource Versions,resource versions,resource_versions,get_by_team,select,$.recipeVersion,Get recipe version in team +private_registry.yaml,/team/{team_name}/resources/{recipe_name}/versions/{version_id},updateRecipeVersionInTeam_1,update_recipe_version_in_team_1,patch,RecipeVersionResponse,Resource Versions,resource versions,resource_versions,update_by_team,update,$.recipeVersion,Update recipe version in team +private_registry.yaml,/team/{team_name}/resources/{recipe_name}/versions/{version_id}/files,listRecipeFilesInTeam_1,list_recipe_files_in_team_1,get,RecipeVersionFileListResponse,Resource Version Files endpoints,resource version files endpoints,resource_files,list_by_team,select,$.recipeFiles,List recipe files in team +private_registry.yaml,/team/{team_name}/{artifact_type},listArtifactsInTeam,list_artifacts_in_team,get,ArtifactListResponse,Artifacts,artifacts,artifacts,list_by_team,select,$.artifacts,List artifacts in team +private_registry.yaml,/team/{team_name}/{artifact_type},createArtifactInTeam,create_artifact_in_team,post,ArtifactResponse,Artifacts,artifacts,artifacts,create_by_team,insert,$.artifact,Create artifact in team +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name},getArtifactInTeam,get_artifact_in_team,get,ArtifactResponse,Artifacts,artifacts,artifacts,get_by_team,select,$.artifact,Get artifact in team +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name},replaceArtifactInTeam,replace_artifact_in_team,put,ArtifactResponse,Artifacts,artifacts,artifacts,replace_by_team,replace,$.artifact,Replace artifact in team +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name},updateArtifactInTeam,update_artifact_in_team,patch,ArtifactResponse,Artifacts,artifacts,artifacts,update_by_team,update,$.artifact,Update artifact in team +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name},deleteArtifactInTeam,delete_artifact_in_team,delete,Response,Artifacts,artifacts,artifacts,delete_by_team,delete,,Delete artifact in team +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/catalog/flags,getPublicFlagsInTeam,get_public_flags_in_team,get,ArtifactCatalogFlags,Publish,publish,artifact_catalog_flags,get_by_team,select,,Get Catalog flags +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/collections,listArtifactCollectionsInTeam,list_artifact_collections_in_team,get,CollectionListResponse,Collections,collections,artifact_collections,list_by_team,select,$.collections,List artifact collections in org and team +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/collections/sync-release-type-labels,syncCollectionReleaseTypeLabelsForArtifact_1,sync_collection_release_type_labels_for_artifact_1,post,Response,Collections,collections,artifacts,sync_release_type_labels_by_team,exec,,Sync collection release type labels for artifact +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/deployments/params,listArtifactDeploymentParametersInTeam,list_artifact_deployment_parameters_in_team,get,DeploymentParametersListResponse,Artifact deployment parameters,artifact deployment parameters,artifact_deployment_params,list_by_team,select,$.deploymentParameters,List artifact deployment parameters in team +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,getArtifactDeploymentParametersInTeam,get_artifact_deployment_parameters_in_team,get,DeploymentParameters,Artifact deployment parameters,artifact deployment parameters,artifact_deployment_params,get_by_team,select,,Get artifact deployment parameters details in team +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,createArtifactDeploymentParametersInTeam,create_artifact_deployment_parameters_in_team,post,DeploymentParameters,Artifact deployment parameters,artifact deployment parameters,artifact_deployment_params,create_by_team,insert,,Create artifact deployment parameters in team +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,updateArtifactDeploymentParametersInTeam,update_artifact_deployment_parameters_in_team,patch,DeploymentParameters,Artifact deployment parameters,artifact deployment parameters,artifact_deployment_params,update_by_team,update,,Update artifact deployment parameters in team +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,deleteArtifactDeploymentParametersInTeam,delete_artifact_deployment_parameters_in_team,delete,Response,Artifact deployment parameters,artifact deployment parameters,artifact_deployment_params,delete_by_team,delete,,Delete artifact deployment parameters in team +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/license/acceptance,acceptArtifactLicense_1,accept_artifact_license_1,post,Response,Publish,publish,license_acceptances,create_by_team,insert,,Accept artifact license +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/release-type,updateReleaseLabel_1,update_release_label_1,put,Response,Publish,publish,artifacts,set_release_type_by_team,exec,,Update artifact version release type +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/share,publishArtifact_1,publish_artifact_1,put,Response,Publish,publish,artifact_shares,add_by_team,insert,,Publish artifact to public +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/share,undoPublishArtifact_1,undo_publish_artifact_1,delete,Response,Publish,publish,artifact_shares,remove_by_team,delete,,Undo publishing of artifact to public +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/share/product,publishArtifactFromRequest_1,publish_artifact_from_request_1,put,Response,Publish,publish,artifact_product_shares,add_by_team,insert,,Publish artifact to product +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/share/product,undoPublishProduct_1,undo_publish_product_1,delete,Response,Publish,publish,artifact_product_shares,remove_by_team,delete,,Undo publishing of product artifacts +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/terms-of-service,updateTermsOfService_1,update_terms_of_service_1,put,Response,Publish,publish,artifacts,set_terms_of_service_by_team,exec,,Update artifact terms of service +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id},deleteArtifactVersionInTeam,delete_artifact_version_in_team,delete,Response,Artifact Versions,artifact versions,artifact_versions,delete_by_team,delete,,Delete a artifact version in team +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/configs,updateTagLevelPublishConfigs_1,update_tag_level_publish_configs_1,patch,Response,Publish,publish,artifact_version_configs,update_by_team,update,,Publish artifact version with configs like policy badge +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/deployments/{csp_name},createArtifactDeploymentUrlInTeam,create_artifact_deployment_url_in_team,post,DeploymentUrlResponse,Artifact deployment parameters,artifact deployment parameters,artifact_deployments,create_by_team,insert,,Create artifact version deployment url in team +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files,listArtifactFilesInTeam,list_artifact_files_in_team,get,ArtifactVersionFileListResponse,Artifact Version Files,artifact version files,artifact_files,list_by_team,select,$.artifactFiles,List artifact files in team +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/signature,signArtifactVersion_1,sign_artifact_version_1,put,ArtifactDownloadResponse,ArtifactSigning,artifact_signing,artifact_signatures,set_by_team,exec,,Request to sign artifact version +private_registry.yaml,/{artifact_type},listArtifactsInOrg,list_artifacts_in_org,get,ArtifactListResponse,Artifacts,artifacts,artifacts,list,select,$.artifacts,List artifacts in org +private_registry.yaml,/{artifact_type},createArtifactInOrg,create_artifact_in_org,post,ArtifactResponse,Artifacts,artifacts,artifacts,create,insert,$.artifact,Create artifact in org +private_registry.yaml,/{artifact_type}/{artifact_name},getArtifactInOrg,get_artifact_in_org,get,ArtifactResponse,Artifacts,artifacts,artifacts,get,select,$.artifact,Get artifact in org +private_registry.yaml,/{artifact_type}/{artifact_name},replaceArtifactInOrg,replace_artifact_in_org,put,ArtifactResponse,Artifacts,artifacts,artifacts,replace,replace,$.artifact,Replace artifact in org +private_registry.yaml,/{artifact_type}/{artifact_name},updateArtifactInOrg,update_artifact_in_org,patch,ArtifactResponse,Artifacts,artifacts,artifacts,update,update,$.artifact,Update artifact in org +private_registry.yaml,/{artifact_type}/{artifact_name},deleteArtifactInOrg,delete_artifact_in_org,delete,Response,Artifacts,artifacts,artifacts,delete,delete,,Delete artifact in org +private_registry.yaml,/{artifact_type}/{artifact_name}/catalog/flags,getPublicFlagsInOrg,get_public_flags_in_org,get,ArtifactCatalogFlags,Publish,publish,artifact_catalog_flags,get,select,,Get Catalog flags +private_registry.yaml,/{artifact_type}/{artifact_name}/collections,listArtifactCollectionsInOrg,list_artifact_collections_in_org,get,CollectionListResponse,Collections,collections,artifact_collections,list,select,$.collections,List artifact collections in org +private_registry.yaml,/{artifact_type}/{artifact_name}/collections/sync-release-type-labels,syncCollectionReleaseTypeLabelsForArtifact,sync_collection_release_type_labels_for_artifact,post,Response,Collections,collections,artifacts,sync_release_type_labels,exec,,Sync collection release type labels for artifact +private_registry.yaml,/{artifact_type}/{artifact_name}/deployments/params,listArtifactDeploymentParametersInOrg,list_artifact_deployment_parameters_in_org,get,DeploymentParametersListResponse,Artifact deployment parameters,artifact deployment parameters,artifact_deployment_params,list,select,$.deploymentParameters,List artifact deployment parameters in org +private_registry.yaml,/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,getArtifactDeploymentParametersInOrg,get_artifact_deployment_parameters_in_org,get,DeploymentParameters,Artifact deployment parameters,artifact deployment parameters,artifact_deployment_params,get,select,,Get artifact deployment parameters details in org +private_registry.yaml,/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,createArtifactDeploymentParametersInOrg,create_artifact_deployment_parameters_in_org,post,DeploymentParameters,Artifact deployment parameters,artifact deployment parameters,artifact_deployment_params,create,insert,,Create artifact deployment parameters in org +private_registry.yaml,/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,updateArtifactDeploymentParametersInOrg,update_artifact_deployment_parameters_in_org,patch,DeploymentParameters,Artifact deployment parameters,artifact deployment parameters,artifact_deployment_params,update,update,,Update artifact deployment parameters in org +private_registry.yaml,/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,deleteArtifactDeploymentParametersInOrg,delete_artifact_deployment_parameters_in_org,delete,Response,Artifact deployment parameters,artifact deployment parameters,artifact_deployment_params,delete,delete,,Delete artifact deployment parameters in org +private_registry.yaml,/{artifact_type}/{artifact_name}/license/acceptance,acceptArtifactLicense,accept_artifact_license,post,Response,Publish,publish,license_acceptances,create,insert,,Accept artifact license +private_registry.yaml,/{artifact_type}/{artifact_name}/release-type,updateReleaseLabel,update_release_label,put,Response,Publish,publish,artifacts,set_release_type,exec,,Update artifact version release type +private_registry.yaml,/{artifact_type}/{artifact_name}/share,publishArtifact,publish_artifact,put,Response,Publish,publish,artifact_shares,add,insert,,Publish artifact to public +private_registry.yaml,/{artifact_type}/{artifact_name}/share,undoPublishArtifact,undo_publish_artifact,delete,Response,Publish,publish,artifact_shares,remove,delete,,Undo publishing of artifact to public +private_registry.yaml,/{artifact_type}/{artifact_name}/share/product,publishArtifactFromRequest,publish_artifact_from_request,put,Response,Publish,publish,artifact_product_shares,add,insert,,Publish artifact to product +private_registry.yaml,/{artifact_type}/{artifact_name}/share/product,undoPublishProduct,undo_publish_product,delete,Response,Publish,publish,artifact_product_shares,remove,delete,,Undo publishing of product artifacts +private_registry.yaml,/{artifact_type}/{artifact_name}/terms-of-service,updateTermsOfService,update_terms_of_service,put,Response,Publish,publish,artifacts,set_terms_of_service,exec,,Update artifact terms of service +private_registry.yaml,/{artifact_type}/{artifact_name}/versions/{version_id},deleteArtifactVersionInOrg,delete_artifact_version_in_org,delete,Response,Artifact Versions,artifact versions,artifact_versions,delete,delete,,Delete a artifact version in org +private_registry.yaml,/{artifact_type}/{artifact_name}/versions/{version_id}/configs,updateTagLevelPublishConfigs,update_tag_level_publish_configs,patch,Response,Publish,publish,artifact_version_configs,update,update,,Publish artifact version with configs like policy badge +private_registry.yaml,/{artifact_type}/{artifact_name}/versions/{version_id}/deployments/{csp_name},createArtifactDeploymentUrlInOrg,create_artifact_deployment_url_in_org,post,DeploymentUrlResponse,Artifact deployment parameters,artifact deployment parameters,artifact_deployments,create,insert,,Create artifact version deployment url in org +private_registry.yaml,/{artifact_type}/{artifact_name}/versions/{version_id}/files,listArtifactFilesInOrg,list_artifact_files_in_org,get,ArtifactVersionFileListResponse,Artifact Version Files,artifact version files,artifact_files,list,select,$.artifactFiles,List artifact files in org +private_registry.yaml,/{artifact_type}/{artifact_name}/versions/{version_id}/signature,signArtifactVersion,sign_artifact_version,put,ArtifactDownloadResponse,ArtifactSigning,artifact_signing,artifact_signatures,set,exec,,Request to sign artifact version +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/malware-scan,initiateMalwareScan_1,initiate_malware_scan_1,post,Response,MalwareScan,malware_scan,artifacts,malware_scan_by_team,exec,,Initiates malwares can for the artifact +private_registry.yaml,/team/{team_name}/{artifact_type}/spec,createModelArtifactsSpec_1,create_model_artifacts_spec_1,post,AIPlaygroundResponse,AIPlayground,aiplayground,artifact_specs,create_by_team,insert,,Create AI Playground for artifactType +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/purge,purgeDeletedArtifact_1,purge_deleted_artifact_1,delete,Response,Artifacts,artifacts,artifacts,purge_by_team,exec,,Purge Search DB +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/spec,getModelArtifactsSpec_1,get_model_artifacts_spec_1,get,AIPlaygroundResponse,AIPlayground,aiplayground,artifact_specs,get_by_team,select,,Get AI Playground for artifactType +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/spec,updateModelArtifactsSpec_1,update_model_artifacts_spec_1,put,AIPlaygroundResponse,AIPlayground,aiplayground,artifact_specs,update_by_team,update,,Update AI Playground for artifactType +private_registry.yaml,/team/{team_name}/{artifact_type}/{artifact_name}/spec,deleteModelArtifactsSpec_1,delete_model_artifacts_spec_1,delete,Response,AIPlayground,aiplayground,artifact_specs,delete_by_team,delete,,Delete AI Playground for artifactType +private_registry.yaml,/{artifact_type}/{artifact_name}/versions/{version_id}/malware-scan,initiateMalwareScan,initiate_malware_scan,post,Response,MalwareScan,malware_scan,artifacts,malware_scan,exec,,Initiates malwares can for the artifact +private_registry.yaml,/{artifact_type}/spec,createModelArtifactsSpec,create_model_artifacts_spec,post,AIPlaygroundResponse,AIPlayground,aiplayground,artifact_specs,create,insert,,Create AI Playground for artifactType +private_registry.yaml,/{artifact_type}/{artifact_name}/purge,purgeDeletedArtifact,purge_deleted_artifact,delete,Response,Artifacts,artifacts,artifacts,purge,exec,,Purge Search DB +private_registry.yaml,/{artifact_type}/{artifact_name}/spec,getModelArtifactsSpec,get_model_artifacts_spec,get,AIPlaygroundResponse,AIPlayground,aiplayground,artifact_specs,get,select,,Get AI Playground for artifactType +private_registry.yaml,/{artifact_type}/{artifact_name}/spec,updateModelArtifactsSpec,update_model_artifacts_spec,put,AIPlaygroundResponse,AIPlayground,aiplayground,artifact_specs,update,update,,Update AI Playground for artifactType +private_registry.yaml,/{artifact_type}/{artifact_name}/spec,deleteModelArtifactsSpec,delete_model_artifacts_spec,delete,Response,AIPlayground,aiplayground,artifact_specs,delete,delete,,Delete AI Playground for artifactType diff --git a/provider-dev/config/clean_report.json b/provider-dev/config/clean_report.json new file mode 100644 index 0000000..55163e1 --- /dev/null +++ b/provider-dev/config/clean_report.json @@ -0,0 +1,86 @@ +{ + "generated": "2026-10-16", + "sources": { + "ngc_kas.json": { + "openapi": "3.0.1", + "title": "NGC API Documentation", + "version": "v3.249.17", + "servers": [ + "https://api.ngc.nvidia.com" + ], + "paths": 77, + "fixes": [ + { + "rule": "repair-relative-server", + "note": "servers [{\"url\":\"/\"}] is relative/absent; set to https://api.ngc.nvidia.com (the host the definition is served from)" + }, + { + "rule": "snake-case-path-params", + "note": "48 path key(s) and 124 path parameter name(s) converted to snake_case" + }, + { + "rule": "repair-path-param-names", + "note": "29 path parameter name(s) renamed to their template token, 1 stray path parameter(s) dropped (/v2/admin/entitlements: \"org_name\" dropped (no template token); /v2/admin/org/{org_name}/team/{team_name}/users/{id}: \"user_id_or_b64encoded_email\" -> id; /v2/admin/org/{org_name}/team/{team_name}/users/{id}/add-role: \"user_id_or_b64encoded_email\" -> id; /v2/admin/org/{org_name}/team/{team_name}/users/{id}/remove-role: \"user_id_or_b64encoded_email\" -> id; +22 more)" + }, + { + "rule": "drop-cookie-params", + "note": "24 cookie parameter(s) dropped (any-sdk supports path, query, header and body parameters only): /v2/admin/org/{org_name}/team/{team_name}/users: ncid; /v2/admin/org/{org_name}/team/{team_name}/users: VisitorID; /v2/admin/org/{org_name}/team/{team_name}/users/{id}: ncid; /v2/admin/org/{org_name}/team/{team_name}/users/{id}: VisitorID; /v2/admin/org/{org_name}/users: ncid; /v2/admin/org/{org_name}/users: VisitorID; ..." + }, + { + "rule": "drop-prose-query-params", + "note": "16 query parameter(s) with prose names dropped (wire names unknown): /v2/admin/org: \"Filter using org display name\"; /v2/admin/org: \"Filter using org owner name\"; /v2/admin/org: \"Filter using org owner email. Email should be base-64-encoded.\"; /v2/admin/org/{org_name}/team/{team_name}/users/{id}: \"user role, defaults to REGISTRY_READ\"; /v2/admin/org/{org_name}/users/{id}: \"user role, defaults to REGISTRY_READ\"; /v2/org/{org_name}/team/{team_name}/users/{id}: \"user role\"; ..." + } + ], + "notes": [], + "validation": "clean" + }, + "ngc_models.json": { + "openapi": "3.1.0", + "title": "Models API", + "version": "0.0.1-SNAPSHOT", + "servers": [ + "https://api.ngc.nvidia.com" + ], + "paths": 228, + "fixes": [ + { + "rule": "gateway-v2-path-prefix", + "note": "225 path(s) rewritten /v1/ -> /v2/; servers [{\"description\":\"Generated server url - production\",\"url\":\"https://models.ngc.nvidia.com\",\"x-internal\":true}] -> https://api.ngc.nvidia.com (the public gateway serving the definition)" + }, + { + "rule": "snake-case-path-params", + "note": "205 path key(s) and 962 path parameter name(s) converted to snake_case" + }, + { + "rule": "inject-sdk-operations", + "note": "4 SDK-documented operation(s) injected: DELETE /v2/org/{org_name}/models/{model_name} (deleteModelInOrg); DELETE /v2/org/{org_name}/team/{team_name}/models/{model_name} (deleteModelInTeam); DELETE /v2/org/{org_name}/resources/{recipe_name} (deleteResourceInOrg); DELETE /v2/org/{org_name}/team/{team_name}/resources/{recipe_name} (deleteResourceInTeam)" + }, + { + "rule": "inject-sdk-responses", + "note": "27 SDK data classes added to components.schemas (ngcsdk 4.36.6); 200 responses injected on 0 response-less operations (0 of them declared an untyped 2xx; 0 on the bare Response envelope): " + } + ], + "notes": [ + "info.version is a placeholder (0.0.1-SNAPSHOT); left as-is" + ], + "validation": "clean" + }, + "nvcf_openapi.json": { + "openapi": "3.1.0", + "title": "Cloud Functions", + "version": "2.261.2", + "servers": [ + "https://api.nvcf.nvidia.com" + ], + "paths": 37, + "fixes": [ + { + "rule": "snake-case-path-params", + "note": "26 path key(s) and 61 path parameter name(s) converted to snake_case" + } + ], + "notes": [], + "validation": "clean" + } + } +} diff --git a/provider-dev/config/deprecation_schedule.json b/provider-dev/config/deprecation_schedule.json new file mode 100644 index 0000000..7cc6522 --- /dev/null +++ b/provider-dev/config/deprecation_schedule.json @@ -0,0 +1,95 @@ +{ + "url": "https://docs.nvidia.com/ngc/latest/ngc-deprecated-api.html", + "paths": [ + "/v1/orgs/{org}/gdn/**", + "/v1/orgs/{org}/gdncs/**", + "/v1/orgs/{org}/teams/{team}/gdn/**", + "/v1/orgs/{org}/teams/{team}/gdncs/**", + "/v2/org/{org}/infinity-manager/**", + "/v2/org/{org}/team/{team}/infinity-manager/**", + "/v2/orgs/{org}/fnds/functions/**", + "/v2/orgs/{org}/gdn/**", + "/v2/orgs/{org}/ngc/nvcf/deployments/**", + "/v2/orgs/{org}/ngc/nvcf/gpu/quota/rules", + "/v2/orgs/{org}/ngc/nvcf/quota/request", + "/v2/orgs/{org}/nvcf/authorizations/functions/**", + "/v2/orgs/{org}/nvcf/clusterGroups", + "/v2/orgs/{org}/nvcf/deployments/**", + "/v2/orgs/{org}/nvcf/deployments/functions/{functionId}/versions/{functionVersionId}", + "/v2/orgs/{org}/nvcf/deployments/{deploymentId}/gpu-specifications/{specId}", + "/v2/orgs/{org}/nvcf/functions/**", + "/v2/orgs/{org}/nvcf/logs/functions/**", + "/v2/orgs/{org}/nvcf/logs/{log-id}", + "/v2/orgs/{org}/nvcf/metadata/functions/**", + "/v2/orgs/{org}/nvcf/metrics/functions/**", + "/v2/orgs/{org}/nvcf/ratelimit/functions/**", + "/v2/orgs/{org}/nvcf/recognized-registries", + "/v2/orgs/{org}/nvcf/registry-credentials/**", + "/v2/orgs/{org}/nvcf/reval/validate", + "/v2/orgs/{org}/nvcf/secrets", + "/v2/orgs/{org}/nvcf/secrets/functions/**", + "/v2/orgs/{org}/nvcf/secrets/telemetries/**", + "/v2/orgs/{org}/nvcf/supportedGpus", + "/v2/orgs/{org}/nvcf/telemetries/**", + "/v2/orgs/{org}/nvct/logs/tasks/**", + "/v2/orgs/{org}/nvct/logs/{log-id}", + "/v2/orgs/{org}/nvct/reval/validate", + "/v2/orgs/{org}/nvct/secrets/tasks/**", + "/v2/orgs/{org}/nvct/tasks", + "/v2/orgs/{org}/nvct/tasks/**", + "/v2/orgs/{org}/pym/**", + "/v2/orgs/{org}/si/**", + "/v2/orgs/{org}/sis/clusterVersions", + "/v2/orgs/{org}/sis/clusters", + "/v2/orgs/{org}/sis/clusters/**", + "/v2/orgs/{org}/skyway/*/functions/**", + "/v2/orgs/{org}/skyway/*/tasks/**", + "/v2/orgs/{org}/teams/{team}/fnds/functions/**", + "/v2/orgs/{org}/teams/{team}/gdn/**", + "/v2/orgs/{org}/teams/{team}/ngc/nvcf/deployments/**", + "/v2/orgs/{org}/teams/{team}/ngc/nvcf/gpu/quota/rules", + "/v2/orgs/{org}/teams/{team}/ngc/nvcf/quota/request", + "/v2/orgs/{org}/teams/{team}/nvcf/authorizations/functions/**", + "/v2/orgs/{org}/teams/{team}/nvcf/clusterGroups", + "/v2/orgs/{org}/teams/{team}/nvcf/deployments/**", + "/v2/orgs/{org}/teams/{team}/nvcf/deployments/functions/{functionId}/versions/{functionVersionId}", + "/v2/orgs/{org}/teams/{team}/nvcf/deployments/{deploymentId}/gpu-specifications/{specId}", + "/v2/orgs/{org}/teams/{team}/nvcf/functions/**", + "/v2/orgs/{org}/teams/{team}/nvcf/logs/functions/**", + "/v2/orgs/{org}/teams/{team}/nvcf/logs/{log-id}", + "/v2/orgs/{org}/teams/{team}/nvcf/metadata/functions/**", + "/v2/orgs/{org}/teams/{team}/nvcf/metrics/functions/**", + "/v2/orgs/{org}/teams/{team}/nvcf/ratelimit/functions/**", + "/v2/orgs/{org}/teams/{team}/nvcf/recognized-registries", + "/v2/orgs/{org}/teams/{team}/nvcf/registry-credentials/**", + "/v2/orgs/{org}/teams/{team}/nvcf/reval/validate", + "/v2/orgs/{org}/teams/{team}/nvcf/secrets", + "/v2/orgs/{org}/teams/{team}/nvcf/secrets/functions/**", + "/v2/orgs/{org}/teams/{team}/nvcf/secrets/telemetries/**", + "/v2/orgs/{org}/teams/{team}/nvcf/supportedGpus", + "/v2/orgs/{org}/teams/{team}/nvcf/telemetries/**", + "/v2/orgs/{org}/teams/{team}/nvct/logs/tasks/**", + "/v2/orgs/{org}/teams/{team}/nvct/logs/{log-id}", + "/v2/orgs/{org}/teams/{team}/nvct/reval/validate", + "/v2/orgs/{org}/teams/{team}/nvct/secrets/tasks/**", + "/v2/orgs/{org}/teams/{team}/nvct/tasks", + "/v2/orgs/{org}/teams/{team}/nvct/tasks/**", + "/v2/orgs/{org}/teams/{team}/pym/**", + "/v2/orgs/{org}/teams/{team}/si/**", + "/v2/orgs/{org}/teams/{team}/sis/clusterVersions", + "/v2/orgs/{org}/teams/{team}/sis/clusters", + "/v2/orgs/{org}/teams/{team}/sis/clusters/**", + "/v2/orgs/{org}/teams/{team}/skyway/*/functions/**", + "/v2/orgs/{org}/teams/{team}/skyway/*/tasks/**", + "/v3/ngc/nvcf/orgs/{org}/keys/**", + "/v3/ngc/nvcf/orgs/{org}/teams/{team}/keys/**", + "/v3/orgs/{org}/fnds/functions/**", + "/v3/orgs/{org}/ngc/nvcf/deployments/**", + "/v3/orgs/{org}/teams/{team}/fnds/functions/**", + "/v3/orgs/{org}/teams/{team}/ngc/nvcf/deployments/**" + ], + "dates": [ + "September 30, 2026" + ], + "captured": "2026-09-25" +} diff --git a/provider-dev/config/endpoint_inventory.csv b/provider-dev/config/endpoint_inventory.csv new file mode 100644 index 0000000..2d99049 --- /dev/null +++ b/provider-dev/config/endpoint_inventory.csv @@ -0,0 +1,496 @@ +source,file,host,verb,path,operation_id,tags,org_scoped,team_scoped,deprecated,auth_declared,observed_public_read,pagination_params,native_casing,has_request_body,response_shape,object_key_candidate,invocation_form,org_prefix,rebased_path,server_url,service,resource,method,sql_verb,skip_reason,notes +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,get,/health,getHealth,health-controller,n,n,n,none-declared,,,camel,n,object{description;details;status},,,,/health,https://api.ngc.nvidia.com,,,,,service-infra, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,get,/info,getInfo,info-controller,n,n,n,none-declared,,,camel,n,object{commit;service;version},,,,/info,https://api.ngc.nvidia.com,,,,,service-infra, +nvcf,nvcf_openapi.json,https://api.nvcf.nvidia.com,get,/v2/nvcf/assets,getAssets,Asset Management,n,n,y,none-declared,,,camel,n,object{assets},$.assets,,,/v2/nvcf/assets,https://api.nvcf.nvidia.com,nvcf_invocation,assets,list,select,, +nvcf,nvcf_openapi.json,https://api.nvcf.nvidia.com,post,/v2/nvcf/assets,createAsset,Asset Management,n,n,y,none-declared,,,camel,y,object{assetId;contentType;description;uploadUrl},,,,/v2/nvcf/assets,https://api.nvcf.nvidia.com,nvcf_invocation,assets,create,insert,, +nvcf,nvcf_openapi.json,https://api.nvcf.nvidia.com,get,/v2/nvcf/assets/{asset_id},getAsset,Asset Management,n,n,y,none-declared,,,camel,n,object{asset},$.asset,,,/v2/nvcf/assets/{asset_id},https://api.nvcf.nvidia.com,nvcf_invocation,assets,get,select,, +nvcf,nvcf_openapi.json,https://api.nvcf.nvidia.com,delete,/v2/nvcf/assets/{asset_id},deleteAsset,Asset Management,n,n,y,none-declared,,,camel,n,none,,,,/v2/nvcf/assets/{asset_id},https://api.nvcf.nvidia.com,nvcf_invocation,assets,delete,delete,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,get,/v2/nvcf/authorizations/functions,getAuthorizedPartiesForAllFunctions,Function Sharing,n,n,n,none-declared,,,camel,n,object{functions},$.functions,,,/v2/nvcf/authorizations/functions,https://api.ngc.nvidia.com,nvcf_functions,authorizations,list_all,select,,the sharing audit across the fleet: one row per function with its authorized parties +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,get,/v2/nvcf/authorizations/functions/{function_id},getAuthorizedPartiesForAllVersions,Function Sharing,n,n,n,none-declared,,,camel,n,object{functions},$.functions,,,/v2/nvcf/authorizations/functions/{function_id},https://api.ngc.nvidia.com,nvcf_functions,authorizations,list,select,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,post,/v2/nvcf/authorizations/functions/{function_id},createAuthorizedPartiesForAllVersions,Function Sharing,n,n,n,none-declared,,,camel,y,object{function},$.function,,,/v2/nvcf/authorizations/functions/{function_id},https://api.ngc.nvidia.com,nvcf_functions,authorizations,set,replace,,POST replaces the full authorized-party list - grants-as-data set operation +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,delete,/v2/nvcf/authorizations/functions/{function_id},deleteAuthorizedPartiesForAllVersions,Function Sharing,n,n,n,none-declared,,,camel,n,object{function},$.function,,,/v2/nvcf/authorizations/functions/{function_id},https://api.ngc.nvidia.com,nvcf_functions,authorizations,delete_all,exec,,delete-all kept off the DELETE verb: same path-param signature as the granular remove +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,patch,/v2/nvcf/authorizations/functions/{function_id}/add,addAuthorizedPartyForAllVersions,Function Sharing,n,n,n,none-declared,,,camel,y,object{function},$.function,,,/v2/nvcf/authorizations/functions/{function_id}/add,https://api.ngc.nvidia.com,nvcf_functions,authorizations,add,insert,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,patch,/v2/nvcf/authorizations/functions/{function_id}/remove,removeAuthorizedPartyForAllVersions,Function Sharing,n,n,n,none-declared,,,camel,y,object{function},$.function,,,/v2/nvcf/authorizations/functions/{function_id}/remove,https://api.ngc.nvidia.com,nvcf_functions,authorizations,remove,delete,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,get,/v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id},getAuthorizedPartiesForSpecificVersion,Function Sharing,n,n,n,none-declared,,,camel,n,object{function},$.function,,,/v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id},https://api.ngc.nvidia.com,nvcf_functions,authorizations,list_version,select,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,post,/v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id},createAuthorizedPartiesForSpecificVersion,Function Sharing,n,n,n,none-declared,,,camel,y,object{function},$.function,,,/v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id},https://api.ngc.nvidia.com,nvcf_functions,authorizations,set_version,replace,,POST replaces the full authorized-party list - grants-as-data set operation +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,delete,/v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id},deleteAuthorizedPartiesForSpecificVersion,Function Sharing,n,n,n,none-declared,,,camel,n,object{function},$.function,,,/v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id},https://api.ngc.nvidia.com,nvcf_functions,authorizations,delete_all_version,exec,,delete-all kept off the DELETE verb: same path-param signature as the granular remove +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,patch,/v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id}/add,addAuthorizedPartyForSpecificVersion,Function Sharing,n,n,n,none-declared,,,camel,y,object{function},$.function,,,/v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id}/add,https://api.ngc.nvidia.com,nvcf_functions,authorizations,add_version,insert,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,patch,/v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id}/remove,removeAuthorizedPartyForSpecificVersion,Function Sharing,n,n,n,none-declared,,,camel,y,object{function},$.function,,,/v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id}/remove,https://api.ngc.nvidia.com,nvcf_functions,authorizations,remove_version,delete,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,get,/v2/nvcf/clusterGroups,getClusterGroups,Cluster Groups and GPUs,n,n,y,none-declared,n,,camel,n,object{clusterGroups},$.clusterGroups,,,/v2/nvcf/clusterGroups,https://api.ngc.nvidia.com,nvcf_deployments,cluster_groups,list,select,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,get,/v2/nvcf/deployments/functions/{function_id}/versions/{function_version_id},getFunctionDeployment,Function Deployment,n,n,n,none-declared,,,camel,n,object{deployment},$.deployment,,,/v2/nvcf/deployments/functions/{function_id}/versions/{function_version_id},https://api.ngc.nvidia.com,nvcf_deployments,deployments,get,select,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,post,/v2/nvcf/deployments/functions/{function_id}/versions/{function_version_id},createFunctionDeployment,Function Deployment,n,n,n,none-declared,,,camel,y,object{deployment},$.deployment,,,/v2/nvcf/deployments/functions/{function_id}/versions/{function_version_id},https://api.ngc.nvidia.com,nvcf_deployments,deployments,create,insert,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,put,/v2/nvcf/deployments/functions/{function_id}/versions/{function_version_id},updateFunctionDeployment,Function Deployment,n,n,y,none-declared,,,camel,y,object{deployment},$.deployment,,,/v2/nvcf/deployments/functions/{function_id}/versions/{function_version_id},https://api.ngc.nvidia.com,nvcf_deployments,deployments,update,update,,PUT semantics unverified +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,delete,/v2/nvcf/deployments/functions/{function_id}/versions/{function_version_id},deleteFunctionDeployment,Function Deployment,n,n,n,none-declared,,,camel,n,object{function},$.function,,,/v2/nvcf/deployments/functions/{function_id}/versions/{function_version_id},https://api.ngc.nvidia.com,nvcf_deployments,deployments,delete,delete,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,get,/v2/nvcf/deployments/{deployment_id},getFunctionDeployment_1,Function Deployment,n,n,n,none-declared,,,camel,n,object{deployment},$.deployment,,,/v2/nvcf/deployments/{deployment_id},https://api.ngc.nvidia.com,nvcf_deployments,deployments,get_by_id,select,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,patch,/v2/nvcf/deployments/{deployment_id}/gpu-specifications/{gpu_spec_id},updateGpuSpecification,Function Deployment,n,n,n,none-declared,,,camel,y,object{gpuSpecification},$.gpuSpecification,,,/v2/nvcf/deployments/{deployment_id}/gpu-specifications/{gpu_spec_id},https://api.ngc.nvidia.com,nvcf_deployments,deployment_gpu_specs,update,update,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,get,/v2/nvcf/functions,getFunctions,Function Management,n,n,n,none-declared,n,,camel,n,object{functions},$.functions,,,/v2/nvcf/functions,https://api.ngc.nvidia.com,nvcf_functions,functions,list,select,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,post,/v2/nvcf/functions,createFunction,Function Management,n,n,n,none-declared,,,camel,y,object{function},$.function,,,/v2/nvcf/functions,https://api.ngc.nvidia.com,nvcf_functions,functions,create,insert,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,get,/v2/nvcf/functions/ids,getFunctionIds,Function Management,n,n,n,none-declared,,,camel,n,object{functionIds},$.functionIds,,,/v2/nvcf/functions/ids,https://api.ngc.nvidia.com,nvcf_functions,function_ids,list,select,,own resource: same empty path-param signature as functions.list +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,get,/v2/nvcf/functions/{function_id}/versions,getFunctions_1,Function Management,n,n,n,none-declared,,,camel,n,object{functions},$.functions,,,/v2/nvcf/functions/{function_id}/versions,https://api.ngc.nvidia.com,nvcf_functions,function_versions,list,select,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,post,/v2/nvcf/functions/{function_id}/versions,createFunction_1,Function Management,n,n,n,none-declared,,,camel,y,object{function},$.function,,,/v2/nvcf/functions/{function_id}/versions,https://api.ngc.nvidia.com,nvcf_functions,function_versions,create,insert,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,get,/v2/nvcf/functions/{function_id}/versions/{function_version_id},getFunction,Function Management,n,n,n,none-declared,,,camel,n,object{function},$.function,,,/v2/nvcf/functions/{function_id}/versions/{function_version_id},https://api.ngc.nvidia.com,nvcf_functions,function_versions,get,select,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,put,/v2/nvcf/functions/{function_id}/versions/{function_version_id},updateFunction,Function Management,n,n,n,none-declared,,,camel,y,object{function},$.function,,,/v2/nvcf/functions/{function_id}/versions/{function_version_id},https://api.ngc.nvidia.com,nvcf_functions,function_versions,update,update,,PUT semantics unverified (keycloak rule): update until field-drop evidence +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,delete,/v2/nvcf/functions/{function_id}/versions/{function_version_id},deleteFunction,Function Management,n,n,n,none-declared,,,camel,n,none,,,,/v2/nvcf/functions/{function_id}/versions/{function_version_id},https://api.ngc.nvidia.com,nvcf_functions,function_versions,delete,delete,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,put,/v2/nvcf/metadata/functions/{function_id}/versions/{function_version_id},updateFunctionMetadata,Function Management,n,n,y,none-declared,,,camel,y,object{function},$.function,,,/v2/nvcf/metadata/functions/{function_id}/versions/{function_version_id},https://api.ngc.nvidia.com,nvcf_functions,function_metadata,update,update,,PUT semantics unverified +nvcf,nvcf_openapi.json,https://api.nvcf.nvidia.com,post,/v2/nvcf/pexec/functions/{function_id},invokeFunction,Function Invocation,n,n,y,none-declared,,,kebab,y,object{char;direct;double;float;int;long;...},,polling,,/v2/nvcf/pexec/functions/{function_id},https://api.nvcf.nvidia.com,nvcf_invocation,invocations,invoke,exec,,"polling invocation, scoped in" +nvcf,nvcf_openapi.json,https://api.nvcf.nvidia.com,post,/v2/nvcf/pexec/functions/{function_id}/versions/{version_id},invokeFunction_1,Function Invocation,n,n,y,none-declared,,,kebab,y,object{char;direct;double;float;int;long;...},,polling,,/v2/nvcf/pexec/functions/{function_id}/versions/{version_id},https://api.nvcf.nvidia.com,nvcf_invocation,invocations,invoke_version,exec,,"polling invocation, scoped in" +nvcf,nvcf_openapi.json,https://api.nvcf.nvidia.com,get,/v2/nvcf/pexec/status/{request_id},getFunctionInvocationResult,Function Invocation,n,n,y,none-declared,,,camel,n,object{char;direct;double;float;int;long;...},,polling,,/v2/nvcf/pexec/status/{request_id},https://api.nvcf.nvidia.com,nvcf_invocation,invocation_status,get,select,,"polling form: EXEC returns 202 + requestId, status polled here (proxmox precedent)" +nvcf,nvcf_openapi.json,https://api.nvcf.nvidia.com,get,/v2/nvcf/queues/functions/{function_id},getQueuesDetails_1,Queue Details,n,n,n,none-declared,,,camel,n,object{functionId;queues},$.queues,,,/v2/nvcf/queues/functions/{function_id},https://api.nvcf.nvidia.com,nvcf_queues,queues,list,select,, +nvcf,nvcf_openapi.json,https://api.nvcf.nvidia.com,get,/v2/nvcf/queues/functions/{function_id}/versions/{version_id},getQueuesDetails,Queue Details,n,n,n,none-declared,,,camel,n,object{functionId;queues},$.queues,,,/v2/nvcf/queues/functions/{function_id}/versions/{version_id},https://api.nvcf.nvidia.com,nvcf_queues,queues,list_version,select,, +nvcf,nvcf_openapi.json,https://api.nvcf.nvidia.com,get,/v2/nvcf/queues/{request_id}/position,getPositionInQueue,Queue Details,n,n,n,none-declared,,,camel,n,object{functionId;functionVersionId;positionInQueue},,,,/v2/nvcf/queues/{request_id}/position,https://api.nvcf.nvidia.com,nvcf_queues,queue_positions,get,select,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,put,/v2/nvcf/ratelimit/functions/{function_id}/versions/{version_id},updateRateLimit,User Ratelimit Management,n,n,y,none-declared,,,camel,y,none,,,,/v2/nvcf/ratelimit/functions/{function_id}/versions/{version_id},https://api.ngc.nvidia.com,nvcf_functions,function_ratelimits,update,update,,PUT semantics unverified +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,delete,/v2/nvcf/ratelimit/functions/{function_id}/versions/{version_id},deleteRateLimit,User Ratelimit Management,n,n,n,none-declared,,,camel,n,none,,,,/v2/nvcf/ratelimit/functions/{function_id}/versions/{version_id},https://api.ngc.nvidia.com,nvcf_functions,function_ratelimits,delete,delete,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,get,/v2/nvcf/recognized-registries,getRecognizedRegistries,Registry Credential Management,n,n,n,none-declared,,,camel,n,object{recognizedRegistries},,,,/v2/nvcf/recognized-registries,https://api.ngc.nvidia.com,nvcf_deployments,recognized_registries,list,select,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,get,/v2/nvcf/registry-credentials,listRegistryCredentialDetails,Registry Credential Management,n,n,n,none-declared,,,camel,n,object{registryCredentials},$.registryCredentials,,,/v2/nvcf/registry-credentials,https://api.ngc.nvidia.com,nvcf_deployments,registry_credentials,list,select,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,post,/v2/nvcf/registry-credentials,addRegistryCredential,Registry Credential Management,n,n,n,none-declared,,,camel,y,object{registryCredential},$.registryCredential,,,/v2/nvcf/registry-credentials,https://api.ngc.nvidia.com,nvcf_deployments,registry_credentials,create,insert,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,get,/v2/nvcf/registry-credentials/{registry_credential_id},getRegistryCredentialDetails,Registry Credential Management,n,n,n,none-declared,,,camel,n,object{registryCredential},$.registryCredential,,,/v2/nvcf/registry-credentials/{registry_credential_id},https://api.ngc.nvidia.com,nvcf_deployments,registry_credentials,get,select,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,patch,/v2/nvcf/registry-credentials/{registry_credential_id},updateRegistryCredential,Registry Credential Management,n,n,n,none-declared,,,camel,y,object{registryCredential},$.registryCredential,,,/v2/nvcf/registry-credentials/{registry_credential_id},https://api.ngc.nvidia.com,nvcf_deployments,registry_credentials,update,update,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,delete,/v2/nvcf/registry-credentials/{registry_credential_id},deleteRegistryCredential,Registry Credential Management,n,n,n,none-declared,,,camel,n,none,,,,/v2/nvcf/registry-credentials/{registry_credential_id},https://api.ngc.nvidia.com,nvcf_deployments,registry_credentials,delete,delete,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,put,/v2/nvcf/secrets/functions/{function_id}/versions/{version_id},updateFunctionSecrets,User Secret Management,n,n,n,none-declared,,,camel,y,none,,,,/v2/nvcf/secrets/functions/{function_id}/versions/{version_id},https://api.ngc.nvidia.com,nvcf_functions,function_secrets,update,update,,PUT semantics unverified +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,put,/v2/nvcf/secrets/telemetries/{telemetry_id},updateTelemetrySecret,User Secret Management,n,n,n,none-declared,,,camel,y,none,,,,/v2/nvcf/secrets/telemetries/{telemetry_id},https://api.ngc.nvidia.com,nvcf_deployments,telemetry_secrets,update,update,,PUT semantics unverified +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,get,/v2/nvcf/telemetries,getTelemetriesByAccount,Telemetry Management,n,n,n,none-declared,,,camel,n,object{telemetries},$.telemetries,,,/v2/nvcf/telemetries,https://api.ngc.nvidia.com,nvcf_deployments,telemetries,list,select,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,post,/v2/nvcf/telemetries,createTelemetry,Telemetry Management,n,n,n,none-declared,,,camel,y,object{telemetry},$.telemetry,,,/v2/nvcf/telemetries,https://api.ngc.nvidia.com,nvcf_deployments,telemetries,create,insert,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,get,/v2/nvcf/telemetries/{telemetry_id},getTelemetry,Telemetry Management,n,n,n,none-declared,,,camel,n,object{telemetry},$.telemetry,,,/v2/nvcf/telemetries/{telemetry_id},https://api.ngc.nvidia.com,nvcf_deployments,telemetries,get,select,, +nvcf,nvcf_openapi.json,https://api.ngc.nvidia.com,delete,/v2/nvcf/telemetries/{telemetry_id},deleteTelemetry,Telemetry Management,n,n,n,none-declared,,,camel,n,none,,,,/v2/nvcf/telemetries/{telemetry_id},https://api.ngc.nvidia.com,nvcf_deployments,telemetries,delete,delete,, +nvcf,nvcf_openapi.json,https://api.nvcf.nvidia.com,post,/v2/nvcf/tokens/functions,issueMultiFunctionsInvocationToken,Function Invocation Assertion Token,n,n,n,none-declared,,,camel,y,object{access_token;expires_in},,,,/v2/nvcf/tokens/functions,https://api.nvcf.nvidia.com,nvcf_invocation,tokens,create_for_functions,exec,,"ephemeral credential mint - action, nothing queryable persisted" +nvcf,nvcf_openapi.json,https://api.nvcf.nvidia.com,post,/v2/nvcf/tokens/functions/{function_id},issueInvocationToken_1,Function Invocation Assertion Token,n,n,n,none-declared,,,camel,y,object{access_token;expires_in},,,,/v2/nvcf/tokens/functions/{function_id},https://api.nvcf.nvidia.com,nvcf_invocation,tokens,create_for_function,exec,, +nvcf,nvcf_openapi.json,https://api.nvcf.nvidia.com,post,/v2/nvcf/tokens/functions/{function_id}/versions/{function_version_id},issueInvocationToken,Function Invocation Assertion Token,n,n,n,none-declared,,,camel,y,object{access_token;expires_in},,,,/v2/nvcf/tokens/functions/{function_id}/versions/{function_version_id},https://api.nvcf.nvidia.com,nvcf_invocation,tokens,create_for_version,exec,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/health,status,Services,n,n,n,api-key+bearer-token,,,camel,n,object{health;requestStatus},,,,/health,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/health/all,statusDetails,Services,n,n,n,api-key+bearer-token,,,camel,n,object{health;requestStatus},,,,/health/all,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/public-keys,getPublicKey,Services,n,n,n,api-key+bearer-token,,,camel,n,array,,,,/public-keys,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/roles,getRoles,Services,n,n,n,api-key+bearer-token,,,kebab,n,object{requestStatus;roles},$.roles,,,/roles,https://api.ngc.nvidia.com,orgs,roles,list,select,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/swagger-resources,swaggerResources_get,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,array,,,,/swagger-resources,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/swagger-resources,swaggerResources_post,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,array,,,,/swagger-resources,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,put,/swagger-resources,swaggerResources_put,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,array,,,,/swagger-resources,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,patch,/swagger-resources,swaggerResources_patch,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,array,,,,/swagger-resources,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,delete,/swagger-resources,swaggerResources_delete,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,array,,,,/swagger-resources,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,head,/swagger-resources,swaggerResources_head,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,array,,,,/swagger-resources,https://api.ngc.nvidia.com,,,,,non-generator-http-verb, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,options,/swagger-resources,swaggerResources_options,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,array,,,,/swagger-resources,https://api.ngc.nvidia.com,,,,,non-generator-http-verb, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/swagger-resources/configuration/security,securityConfiguration_get,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,object{additionalQueryStringParams;apiKey;apiKeyName;apiKeyVehicle;appName;clientId;...},,,,/swagger-resources/configuration/security,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/swagger-resources/configuration/security,securityConfiguration_post,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,object{additionalQueryStringParams;apiKey;apiKeyName;apiKeyVehicle;appName;clientId;...},,,,/swagger-resources/configuration/security,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,put,/swagger-resources/configuration/security,securityConfiguration_put,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,object{additionalQueryStringParams;apiKey;apiKeyName;apiKeyVehicle;appName;clientId;...},,,,/swagger-resources/configuration/security,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,patch,/swagger-resources/configuration/security,securityConfiguration_patch,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,object{additionalQueryStringParams;apiKey;apiKeyName;apiKeyVehicle;appName;clientId;...},,,,/swagger-resources/configuration/security,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,delete,/swagger-resources/configuration/security,securityConfiguration_delete,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,object{additionalQueryStringParams;apiKey;apiKeyName;apiKeyVehicle;appName;clientId;...},,,,/swagger-resources/configuration/security,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,head,/swagger-resources/configuration/security,securityConfiguration_head,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,object{additionalQueryStringParams;apiKey;apiKeyName;apiKeyVehicle;appName;clientId;...},,,,/swagger-resources/configuration/security,https://api.ngc.nvidia.com,,,,,non-generator-http-verb, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,options,/swagger-resources/configuration/security,securityConfiguration_options,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,object{additionalQueryStringParams;apiKey;apiKeyName;apiKeyVehicle;appName;clientId;...},,,,/swagger-resources/configuration/security,https://api.ngc.nvidia.com,,,,,non-generator-http-verb, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/swagger-resources/configuration/ui,uiConfiguration_get,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,object{apisSorter;deepLinking;defaultModelExpandDepth;defaultModelRendering;defaultModelsExpandDepth;displayOperationId;...},,,,/swagger-resources/configuration/ui,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/swagger-resources/configuration/ui,uiConfiguration_post,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,object{apisSorter;deepLinking;defaultModelExpandDepth;defaultModelRendering;defaultModelsExpandDepth;displayOperationId;...},,,,/swagger-resources/configuration/ui,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,put,/swagger-resources/configuration/ui,uiConfiguration_put,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,object{apisSorter;deepLinking;defaultModelExpandDepth;defaultModelRendering;defaultModelsExpandDepth;displayOperationId;...},,,,/swagger-resources/configuration/ui,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,patch,/swagger-resources/configuration/ui,uiConfiguration_patch,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,object{apisSorter;deepLinking;defaultModelExpandDepth;defaultModelRendering;defaultModelsExpandDepth;displayOperationId;...},,,,/swagger-resources/configuration/ui,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,delete,/swagger-resources/configuration/ui,uiConfiguration_delete,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,object{apisSorter;deepLinking;defaultModelExpandDepth;defaultModelRendering;defaultModelsExpandDepth;displayOperationId;...},,,,/swagger-resources/configuration/ui,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,head,/swagger-resources/configuration/ui,uiConfiguration_head,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,object{apisSorter;deepLinking;defaultModelExpandDepth;defaultModelRendering;defaultModelsExpandDepth;displayOperationId;...},,,,/swagger-resources/configuration/ui,https://api.ngc.nvidia.com,,,,,non-generator-http-verb, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,options,/swagger-resources/configuration/ui,uiConfiguration_options,api-resource-controller,n,n,n,api-key+bearer-token,,,camel,n,object{apisSorter;deepLinking;defaultModelExpandDepth;defaultModelRendering;defaultModelsExpandDepth;displayOperationId;...},,,,/swagger-resources/configuration/ui,https://api.ngc.nvidia.com,,,,,non-generator-http-verb, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v2/admin/backfill-orgs-to-kratos,backfillOrgsToKratos,Super Admin Org Controller,n,n,n,api-key+bearer-token,,,camel,n,object{requestStatus},,,,/v2/admin/backfill-orgs-to-kratos,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/admin/entitlements,listOrganizationsWithEntitlement_1,Super Admin Org Controller,n,n,n,api-key+bearer-token,,,kebab,n,object{entitlements;requestStatus},,,,/v2/admin/entitlements,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/admin/org,listOrganizations_2,Super Admin Org Controller,n,n,n,api-key+bearer-token,,page-number+page-size,kebab,n,object{organizations;paginationInfo;requestStatus},,,,/v2/admin/org,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/admin/org/validate,listValidatedOrganizations,Super Admin Org Controller,n,n,n,api-key+bearer-token,,,camel,n,object{organizations;paginationInfo;requestStatus},,,,/v2/admin/org/validate,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/admin/org/{org_name},getOrg_1,Super Admin Org Controller,y,n,n,api-key+bearer-token,,,camel,n,object{organizations;requestStatus},,,,/v2/admin/org/{org_name},https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,patch,/v2/admin/org/{org_name},updateOrg_1,Super Admin Org Controller,y,n,y,api-key+bearer-token,,,camel,y,object{organizations;requestStatus},,,,/v2/admin/org/{org_name},https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/admin/org/{org_name}/entitlements,listOrganizationsWithEntitlement,Super Admin Org Controller,y,n,n,api-key+bearer-token,,,kebab,n,object{entitlements;requestStatus},,,,/v2/admin/org/{org_name}/entitlements,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v2/admin/org/{org_name}/org-owner-backfill,backfillOrgOwnerByOrg,Super Admin User Controller,y,n,n,api-key+bearer-token,,,camel,n,object{requestStatus},,,,/v2/admin/org/{org_name}/org-owner-backfill,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v2/admin/org/{org_name}/team/{team_name}/users,createUserInTeam_1,Super Admin User Controller,y,y,n,api-key+bearer-token,,,kebab,y,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/admin/org/{org_name}/team/{team_name}/users,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v2/admin/org/{org_name}/team/{team_name}/users/{id},addUserToTeam_1,Super Admin User Controller,y,y,y,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/admin/org/{org_name}/team/{team_name}/users/{id},https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,patch,/v2/admin/org/{org_name}/team/{team_name}/users/{id}/add-role,addUserRole_3,Super Admin User Controller,y,y,y,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/admin/org/{org_name}/team/{team_name}/users/{id}/add-role,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,delete,/v2/admin/org/{org_name}/team/{team_name}/users/{id}/remove-role,removeUserRole_3,Super Admin User Controller,y,y,y,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/admin/org/{org_name}/team/{team_name}/users/{id}/remove-role,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/admin/org/{org_name}/teams,listTeams_1,Super Admin Org Controller,y,n,n,api-key+bearer-token,,page-number+page-size,kebab,n,object{paginationInfo;requestStatus;teams},,,,/v2/admin/org/{org_name}/teams,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/admin/org/{org_name}/teams/{team_name},getTeam_1,Super Admin Org Controller,y,y,n,api-key+bearer-token,,,camel,n,object{requestStatus;team},,,,/v2/admin/org/{org_name}/teams/{team_name},https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,patch,/v2/admin/org/{org_name}/teams/{team_name},editTeam_1,Super Admin Org Controller,y,y,n,api-key+bearer-token,,,camel,y,object{requestStatus;team},,,,/v2/admin/org/{org_name}/teams/{team_name},https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v2/admin/org/{org_name}/users,createUserInOrg_1,Super Admin User Controller,y,n,n,api-key+bearer-token,,,kebab,y,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/admin/org/{org_name}/users,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v2/admin/org/{org_name}/users/{id},addUserToOrg,Super Admin User Controller,y,n,y,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/admin/org/{org_name}/users/{id},https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,delete,/v2/admin/org/{org_name}/users/{id},removeUserFromOrg_2,Super Admin User Controller,y,n,n,api-key+bearer-token,,,camel,n,object{requestStatus},,,,/v2/admin/org/{org_name}/users/{id},https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,patch,/v2/admin/org/{org_name}/users/{id}/add-role,addUserRole_2,Super Admin User Controller,y,n,y,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/admin/org/{org_name}/users/{id}/add-role,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,delete,/v2/admin/org/{org_name}/users/{id}/remove-role,removeUserRole_2,Super Admin User Controller,y,n,y,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/admin/org/{org_name}/users/{id}/remove-role,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,patch,/v2/admin/org/{org_name}/users/{id}/update-role,updateUserRole_2,Super Admin User Controller,y,n,y,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/admin/org/{org_name}/users/{id}/update-role,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v2/admin/orgs,createOrganization,Super Admin Org Controller,n,n,n,api-key+bearer-token,,,camel,y,object{organizations;requestStatus},,,,/v2/admin/orgs,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/admin/orgs/offboarded,listOffboardedOrgs,Super Admin Org Controller,n,n,n,api-key+bearer-token,,page-number+page-size,kebab,n,object{organizations;paginationInfo;requestStatus},,,,/v2/admin/orgs/offboarded,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,patch,/v2/admin/users/invite,emailInviteToUser,Super Admin User Controller,n,n,y,api-key+bearer-token,,,kebab,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/admin/users/invite,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/admin/users/me,whoAmI_1,Super Admin User Controller,n,n,n,api-key+bearer-token,,,kebab,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/admin/users/me,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/admin/users/{id},getUserDetails,Super Admin User Controller,n,n,n,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/admin/users/{id},https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v2/admin/users/{id}/crm-sync,syncCrmUser,Super Admin User Controller,n,n,n,api-key+bearer-token,,,camel,n,object{requestStatus},,,,/v2/admin/users/{id}/crm-sync,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v2/admin/users/{id}/migrate-deprecated-roles,migrateUserDeprecatedRoles,Super Admin User Controller,n,n,n,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/admin/users/{id}/migrate-deprecated-roles,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v2/admin/users/{user_id}/org-owner-backfill,backfillOrgOwnerByUser,Super Admin User Controller,n,n,n,api-key+bearer-token,,,camel,n,object{requestStatus},,,,/v2/admin/users/{user_id}/org-owner-backfill,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/starfleetIds/{starfleet_id},getUserInOrg_1,Users Management,y,n,n,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},$.user,,/v2/org/{org_name},/starfleetIds/{starfleet_id},https://api.ngc.nvidia.com/v2/org/{org_name},orgs,users,get_by_starfleet_id,select,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/starfleetIds/{starfleet_id},getUserInTeamByStarfleetId,Users Management,y,y,n,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,/v2/org/{org_name},/team/{team_name}/starfleetIds/{starfleet_id},https://api.ngc.nvidia.com/v2/org/{org_name},orgs,team_members,get_by_starfleet_id,select,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/users,listUsersInTeam,Users Management,y,y,n,api-key+bearer-token,,page-number+page-size,kebab,n,object{paginationInfo;requestStatus;users},$.users,,/v2/org/{org_name},/team/{team_name}/users,https://api.ngc.nvidia.com/v2/org/{org_name},orgs,team_members,list,select,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/users,createUserInTeam,Users Management,y,y,n,api-key+bearer-token,,,kebab,y,object{activationToken;ncaRole;requestStatus;user;userRoles},,,/v2/org/{org_name},/team/{team_name}/users,https://api.ngc.nvidia.com/v2/org/{org_name},orgs,team_members,create,insert,,creates (invites) a user directly into the team +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/users/invitations,listInvitationsForUserInTeam,Users Management,y,y,n,api-key+bearer-token,,page-number+page-size,kebab,n,object{invitations;paginationInfo;requestStatus},$.invitations,,/v2/org/{org_name},/team/{team_name}/users/invitations,https://api.ngc.nvidia.com/v2/org/{org_name},orgs,team_invitations,list,select,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/users/invitations/{id},deleteUserInvitationInTeam,Users Management,y,y,n,api-key+bearer-token,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/users/invitations/{id},https://api.ngc.nvidia.com/v2/org/{org_name},orgs,team_invitations,delete,delete,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/users/invitations/{id}/resend-invitation-email,resendUserInvitationEmailInTeam,Users Management,y,y,n,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,/v2/org/{org_name},/team/{team_name}/users/invitations/{id}/resend-invitation-email,https://api.ngc.nvidia.com/v2/org/{org_name},orgs,team_invitations,resend_email,exec,,"non-idempotent GET (sends email) - action, not a read" +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/users/{id},getUserInTeam,Users Management,y,y,n,api-key+bearer-token,,,kebab,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/org/{org_name}/team/{team_name}/users/{id},https://api.ngc.nvidia.com,,,,,superseded-by-v3-twin (/v3/orgs/{org_name}/teams/{team_name}/users/{user_email_or_id}), +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/users/{id},addUserToTeam,Users Management,y,y,n,api-key+bearer-token,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/users/{id},https://api.ngc.nvidia.com/v2/org/{org_name},orgs,team_members,add,insert,,adds an existing org user to the team - grants-as-data +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/users/{id},removeUserFromTeam_1,Users Management,y,y,n,api-key+bearer-token,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/team/{team_name}/users/{id},https://api.ngc.nvidia.com,,,,,superseded-by-v3-twin (/v3/orgs/{org_name}/teams/{team_name}/users/{id}), +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/team/{team_name}/users/{id}/add-role,addUserRole_1,Users Management,y,y,y,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/org/{org_name}/team/{team_name}/users/{id}/add-role,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/users/{id}/remove-role,removeUserRole_1,Users Management,y,y,y,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/org/{org_name}/team/{team_name}/users/{id}/remove-role,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/team/{team_name}/users/{id}/update-role,updateUserRole_1,Users Management,y,y,y,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/org/{org_name}/team/{team_name}/users/{id}/update-role,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/teams,listTeams,Teams,y,n,n,api-key+bearer-token,,page-number+page-size,kebab,n,object{paginationInfo;requestStatus;teams},$.teams,,/v2/org/{org_name},/teams,https://api.ngc.nvidia.com/v2/org/{org_name},orgs,teams,list,select,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/teams,createTeam,Teams,y,n,n,api-key+bearer-token,,,camel,y,object{requestStatus;team},$.team,,/v2/org/{org_name},/teams,https://api.ngc.nvidia.com/v2/org/{org_name},orgs,teams,create,insert,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/teams/{team_name},getTeam,Teams,y,y,n,api-key+bearer-token,,,camel,n,object{requestStatus;team},$.team,,/v2/org/{org_name},/teams/{team_name},https://api.ngc.nvidia.com/v2/org/{org_name},orgs,teams,get,select,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/teams/{team_name},editTeam,Teams,y,y,n,api-key+bearer-token,,,camel,y,object{requestStatus;team},$.team,,/v2/org/{org_name},/teams/{team_name},https://api.ngc.nvidia.com/v2/org/{org_name},orgs,teams,update,update,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/teams/{team_name},deleteTeam,Teams,y,y,n,api-key+bearer-token,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/teams/{team_name},https://api.ngc.nvidia.com/v2/org/{org_name},orgs,teams,delete,delete,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/users,listUsersInOrg,Users Management,y,n,n,api-key+bearer-token,,page-number+page-size,kebab,n,object{paginationInfo;requestStatus;users},$.users,,/v2/org/{org_name},/users,https://api.ngc.nvidia.com/v2/org/{org_name},orgs,users,list,select,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/users,createUserInOrg,Users Management,y,n,n,api-key+bearer-token,,,kebab,y,object{activationToken;ncaRole;requestStatus;user;userRoles},$.user,,/v2/org/{org_name},/users,https://api.ngc.nvidia.com/v2/org/{org_name},orgs,users,create,insert,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/users/invitations,listInvitationsForUserInOrg,Users Management,y,n,n,api-key+bearer-token,,page-number+page-size,kebab,n,object{invitations;paginationInfo;requestStatus},$.invitations,,/v2/org/{org_name},/users/invitations,https://api.ngc.nvidia.com/v2/org/{org_name},orgs,user_invitations,list,select,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/users/invitations/{id},deleteUserInvitationInOrg,Users Management,y,n,n,api-key+bearer-token,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/users/invitations/{id},https://api.ngc.nvidia.com/v2/org/{org_name},orgs,user_invitations,delete,delete,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/users/invitations/{id}/resend-invitation-email,resendUserInvitationEmailInOrg,Users Management,y,n,n,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,/v2/org/{org_name},/users/invitations/{id}/resend-invitation-email,https://api.ngc.nvidia.com/v2/org/{org_name},orgs,user_invitations,resend_email,exec,,"non-idempotent GET (sends email) - action, not a read" +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/users/{id},getUserInOrg,Users Management,y,n,n,api-key+bearer-token,,,kebab,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/org/{org_name}/users/{id},https://api.ngc.nvidia.com,,,,,superseded-by-v3-twin (/v3/orgs/{org_name}/users/{user_email_or_id}), +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/users/{id},removeUserFromOrg_1,Users Management,y,n,n,api-key+bearer-token,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/users/{id},https://api.ngc.nvidia.com,,,,,superseded-by-v3-twin (/v3/orgs/{org_name}/users/{id}), +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/users/{id}/add-role,addUserRole,Users Management,y,n,y,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/org/{org_name}/users/{id}/add-role,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/users/{id}/invite,emailInviteToUser_1,Users Management,y,n,y,api-key+bearer-token,,,kebab,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/org/{org_name}/users/{id}/invite,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/users/{id}/remove-role,removeUserRole,Users Management,y,n,y,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/org/{org_name}/users/{id}/remove-role,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/users/{id}/update-role,updateUserRole,Users Management,y,n,y,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,,/v2/org/{org_name}/users/{id}/update-role,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/orgs,listOrganizations_1,Orgs,n,n,n,api-key+bearer-token,n,page-number+page-size,kebab,n,object{organizations;paginationInfo;requestStatus},$.organizations,,,/v2/orgs,https://api.ngc.nvidia.com,orgs,orgs,list,select,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/orgs/{org_name},getOrganization,Orgs,y,n,n,api-key+bearer-token,,,camel,n,object{organizations;requestStatus},$.organizations,,,/v2/orgs/{org_name},https://api.ngc.nvidia.com,orgs,orgs,get,select,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,patch,/v2/orgs/{org_name},updateOrganization,Orgs,y,n,n,api-key+bearer-token,,,camel,y,object{organizations;requestStatus},$.organizations,,,/v2/orgs/{org_name},https://api.ngc.nvidia.com,orgs,orgs,update,update,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,head,/v2/ping,headPing,Users Management,n,n,n,api-key+bearer-token,,,camel,n,none,,,,/v2/ping,https://api.ngc.nvidia.com,,,,,non-generator-http-verb, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v2/users/me,whoAmI,Users Management,n,n,n,api-key+bearer-token,n,,kebab,n,object{activationToken;ncaRole;requestStatus;user;userRoles},$.user,,,/v2/users/me,https://api.ngc.nvidia.com,orgs,current_user,get,select,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,patch,/v2/users/me,editUserProfile,Users Management,n,n,n,api-key+bearer-token,,,camel,y,object{activationToken;ncaRole;requestStatus;user;userRoles},$.user,,,/v2/users/me,https://api.ngc.nvidia.com,orgs,current_user,update,update,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v2/users/me/api-key,generateUserApiKey,Users Management,n,n,n,api-key+bearer-token,,,camel,n,object{cloudNfsKey;cloudNfsKeyPwd;cloudNfsUserName;key;requestStatus},,,,/v2/users/me/api-key,https://api.ngc.nvidia.com,orgs,current_user,create_api_key,exec,,credential mint - action +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v3/admin/org,listOrganizations,Super Admin Org Controller,n,n,n,api-key+bearer-token,,page-number+page-size,kebab,n,object{organizations;paginationInfo;requestStatus},,,,/v3/admin/org,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v3/admin/org/{org_name},getOrg,Super Admin Org Controller,y,n,n,api-key+bearer-token,,,kebab,n,object{organizations;requestStatus},,,,/v3/admin/org/{org_name},https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,patch,/v3/admin/org/{org_name},updateOrg,Super Admin Org Controller,y,n,n,api-key+bearer-token,,,camel,y,object{organizations;requestStatus},,,,/v3/admin/org/{org_name},https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v3/admin/orgs,createProtoOrganization,Super Admin Org Controller,n,n,n,api-key+bearer-token,,,camel,y,object{organizations;requestStatus},,,,/v3/admin/orgs,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v3/admin/orgs/ncaIds,getMapping,Super Admin Org Controller,n,n,n,api-key+bearer-token,,,camel,y,object{orgNcaMapping},,,,/v3/admin/orgs/ncaIds,https://api.ngc.nvidia.com,,,,,internal-admin, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v3/orgs,createOrganizationFromScratch,Orgs,n,n,n,api-key+bearer-token,,,camel,y,object{organizations;requestStatus},$.organizations,,,/v3/orgs,https://api.ngc.nvidia.com,orgs,orgs,create,insert,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v3/orgs/proto-org,createOrganizationFromProtoOrg,Orgs,n,n,n,api-key+bearer-token,,,camel,y,object{organizations;requestStatus},$.organizations,,,/v3/orgs/proto-org,https://api.ngc.nvidia.com,orgs,proto_orgs,create,insert,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v3/orgs/proto-org/validate,protoOrgInvitationValidate,Orgs,n,n,n,api-key+bearer-token,,,camel,n,object{orgInvitation;requestStatus},$.orgInvitation,,,/v3/orgs/proto-org/validate,https://api.ngc.nvidia.com,orgs,proto_orgs,validate,select,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v3/orgs/{org_name}/teams/{team_name}/users/nca-invitations,inviteUserToNcaInTeam,Users Management,y,y,n,api-key+bearer-token,,,camel,y,object{activationToken;ncaRole;requestStatus;user;userRoles},,,/v3/orgs/{org_name},/teams/{team_name}/users/nca-invitations,https://api.ngc.nvidia.com/v3/orgs/{org_name},orgs,team_invitations,create_nca,insert,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,delete,/v3/orgs/{org_name}/teams/{team_name}/users/{id},removeUserFromTeam,Users Management,y,y,n,api-key+bearer-token,,,camel,n,object{requestStatus},,,/v3/orgs/{org_name},/teams/{team_name}/users/{id},https://api.ngc.nvidia.com/v3/orgs/{org_name},orgs,team_members,remove,delete,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v3/orgs/{org_name}/teams/{team_name}/users/{user_email_or_id},listUserRolesInOrgTeam,Users Management,y,y,n,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,/v3/orgs/{org_name},/teams/{team_name}/users/{user_email_or_id},https://api.ngc.nvidia.com/v3/orgs/{org_name},orgs,team_members,get,select,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,patch,/v3/orgs/{org_name}/teams/{team_name}/users/{user_email_or_id}/add-role,addRoleOrInviteUserToTeam,Users Management,y,y,n,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,/v3/orgs/{org_name},/teams/{team_name}/users/{user_email_or_id}/add-role,https://api.ngc.nvidia.com/v3/orgs/{org_name},orgs,team_member_roles,add,insert,,grants-as-data +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,delete,/v3/orgs/{org_name}/teams/{team_name}/users/{user_email_or_id}/remove-role,removeRoleOrInvitationInTeam,Users Management,y,y,n,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,/v3/orgs/{org_name},/teams/{team_name}/users/{user_email_or_id}/remove-role,https://api.ngc.nvidia.com/v3/orgs/{org_name},orgs,team_member_roles,remove,delete,,grants-as-data +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,post,/v3/orgs/{org_name}/users/nca-invitations,inviteUserToNcaInOrg,Users Management,y,n,n,api-key+bearer-token,,,camel,y,object{activationToken;ncaRole;requestStatus;user;userRoles},,,/v3/orgs/{org_name},/users/nca-invitations,https://api.ngc.nvidia.com/v3/orgs/{org_name},orgs,user_invitations,create_nca,insert,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,delete,/v3/orgs/{org_name}/users/{id},removeUserFromOrg,Users Management,y,n,n,api-key+bearer-token,,,camel,n,object{requestStatus},,,/v3/orgs/{org_name},/users/{id},https://api.ngc.nvidia.com/v3/orgs/{org_name},orgs,users,delete,delete,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/v3/orgs/{org_name}/users/{user_email_or_id},listUserRolesInOrg,Users Management,y,n,n,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},$.user,,/v3/orgs/{org_name},/users/{user_email_or_id},https://api.ngc.nvidia.com/v3/orgs/{org_name},orgs,users,get,select,, +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,patch,/v3/orgs/{org_name}/users/{user_email_or_id}/add-role,addRoleOrInviteUserToOrg,Users Management,y,n,n,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,/v3/orgs/{org_name},/users/{user_email_or_id}/add-role,https://api.ngc.nvidia.com/v3/orgs/{org_name},orgs,user_roles,add,insert,,grants-as-data +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,delete,/v3/orgs/{org_name}/users/{user_email_or_id}/remove-role,removeRoleOrInvitationInOrg,Users Management,y,n,n,api-key+bearer-token,,,camel,n,object{activationToken;ncaRole;requestStatus;user;userRoles},,,/v3/orgs/{org_name},/users/{user_email_or_id}/remove-role,https://api.ngc.nvidia.com/v3/orgs/{org_name},orgs,user_roles,remove,delete,,grants-as-data +ngc-core,ngc_kas.json,https://api.ngc.nvidia.com,get,/version,getLatestPackageVersion,Services,n,n,n,api-key+bearer-token,,,camel,n,object{requestStatus;versions},,,,/version,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/health,status,Health,n,n,n,none-declared,,,camel,n,object{health},,,,/health,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/health/**,getHealth,Health,n,n,n,none-declared,,,camel,n,object{status},,,,/health/**,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/health/all,statusDetails,Health,n,n,n,none-declared,,,camel,n,object{health},,,,/health/all,https://api.ngc.nvidia.com,,,,,service-infra, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/artifact-registry/org/{org_name}/encryption-keys,listKeysInOrg,Encryption Keys,y,n,n,ssa,,,camel,n,object{encryptionKeys},$.encryptionKeys,,/v2/artifact-registry/org/{org_name},/encryption-keys,https://api.ngc.nvidia.com/v2/artifact-registry/org/{org_name},private_registry,encryption_keys,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/artifact-registry/org/{org_name}/encryption-keys/{key_id},listArtifactsForKeyInOrg,Encryption Keys,y,n,n,ssa,,,kebab,n,object{artifacts;requestStatus},$.artifacts,,/v2/artifact-registry/org/{org_name},/encryption-keys/{key_id},https://api.ngc.nvidia.com/v2/artifact-registry/org/{org_name},private_registry,encryption_keys,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/artifact-registry/org/{org_name}/encryption-keys/{key_id},deleteKeyFromOrg,Encryption Keys,y,n,n,ssa,,,camel,n,object{requestStatus;statusUrl;workflowId},,,/v2/artifact-registry/org/{org_name},/encryption-keys/{key_id},https://api.ngc.nvidia.com/v2/artifact-registry/org/{org_name},private_registry,encryption_keys,delete,delete,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/artifact-registry/org/{org_name}/team/{team_name}/encryption-keys,listKeysInTeam,Encryption Keys,y,y,n,ssa,,,camel,n,object{encryptionKeys},$.encryptionKeys,,/v2/artifact-registry/org/{org_name},/team/{team_name}/encryption-keys,https://api.ngc.nvidia.com/v2/artifact-registry/org/{org_name},private_registry,encryption_keys,list_by_team,select,,team-scoped twin of /v2/artifact-registry/org/{org_name}/encryption-keys (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/artifact-registry/org/{org_name}/team/{team_name}/encryption-keys/{key_id},listArtifactsForKeyInTeam,Encryption Keys,y,y,n,ssa,,,camel,n,object{artifacts;requestStatus},$.artifacts,,/v2/artifact-registry/org/{org_name},/team/{team_name}/encryption-keys/{key_id},https://api.ngc.nvidia.com/v2/artifact-registry/org/{org_name},private_registry,encryption_keys,get_by_team,select,,team-scoped twin of /v2/artifact-registry/org/{org_name}/encryption-keys/{key_id} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/artifact-registry/org/{org_name}/team/{team_name}/encryption-keys/{key_id},deleteKeyFromTeam,Encryption Keys,y,y,n,ssa,,,camel,n,object{requestStatus;statusUrl;workflowId},,,/v2/artifact-registry/org/{org_name},/team/{team_name}/encryption-keys/{key_id},https://api.ngc.nvidia.com/v2/artifact-registry/org/{org_name},private_registry,encryption_keys,delete_by_team,delete,,team-scoped twin of /v2/artifact-registry/org/{org_name}/encryption-keys/{key_id} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/artifact-registry/org/{org}/team/{team}/workflows/{workflow_id},getWorkflowStatusForTeam,Workflows,y,y,n,ssa,,,camel,n,object{cloneStatus;duration;endTime;message;requestStatus;startTime;...},,,/v2/artifact-registry/org/{org_name},/team/{team}/workflows/{workflow_id},https://api.ngc.nvidia.com/v2/artifact-registry/org/{org_name},private_registry,workflows,get_by_team,select,,team-scoped twin of /v2/artifact-registry/org/{org}/workflows/{workflow_id} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/artifact-registry/org/{org}/workflows/{workflow_id},getWorkflowStatus,Workflows,y,n,n,ssa,,,camel,n,object{cloneStatus;duration;endTime;message;requestStatus;startTime;...},,,/v2/artifact-registry/org/{org_name},/workflows/{workflow_id},https://api.ngc.nvidia.com/v2/artifact-registry/org/{org_name},private_registry,workflows,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/collections,listPublicCollections,Collections,n,n,n,none-declared,y,page-size+page-number,kebab,n,object{collections;paginationInfo;requestStatus},$.collections,,,/v2/collections,https://api.ngc.nvidia.com,catalog,collections,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/collections/{org_name}/{collection_name},getCollectionInOrgAsGuest,Collections,y,n,n,none-declared,,,kebab,n,object{collection;requestStatus},$.collection,,,/v2/collections/{org_name}/{collection_name},https://api.ngc.nvidia.com,catalog,collections,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/collections/{org_name}/{collection_name}/artifacts/{artifact_type},listCollectionArtifactsInOrgAsGuest,Collections,y,n,n,none-declared,,page-size+page-number,kebab,n,object{artifacts;paginationInfo;requestStatus},$.artifacts,,,/v2/collections/{org_name}/{collection_name}/artifacts/{artifact_type},https://api.ngc.nvidia.com,catalog,collection_artifacts,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/collections/{org_name}/{team_name}/{collection_name},getCollectionInTeamAsGuest,Collections,y,y,n,none-declared,,,kebab,n,object{collection;requestStatus},$.collection,,,/v2/collections/{org_name}/{team_name}/{collection_name},https://api.ngc.nvidia.com,catalog,collections,get_by_team,select,,team-scoped twin of /v2/collections/{org_name}/{collection_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/collections/{org_name}/{team_name}/{collection_name}/artifacts/{artifact_type},listCollectionArtifactsInTeamAsGuest,Collections,y,y,n,none-declared,,page-size+page-number,kebab,n,object{artifacts;paginationInfo;requestStatus},$.artifacts,,,/v2/collections/{org_name}/{team_name}/{collection_name}/artifacts/{artifact_type},https://api.ngc.nvidia.com,catalog,collection_artifacts,list_by_team,select,,team-scoped twin of /v2/collections/{org_name}/{collection_name}/artifacts/{artifact_type} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/csps,listCloudServiceProviders,Cloud service providers,n,n,n,none-declared,n,page-size+page-number,kebab,n,object{cloudServiceProviders;paginationInfo;requestStatus},$.cloudServiceProviders,,,/v2/csps,https://api.ngc.nvidia.com,catalog,csps,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/csps,createCloudServiceProvider,Cloud service providers,n,n,n,ssa,,,camel,y,object{attributes;createdDate;description;displayName;isDeployable;isEnabled;...},,,,/v2/csps,https://api.ngc.nvidia.com,catalog,csps,create,insert,,publisher-privileged write +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/csps/{artifact_type}/org/{org_name}/team/{team_name}/{artifact_name}/versions/{version_id}/deployments/{csp_name},createPublicArtifactDeploymentUrlInTeam,Artifact deployment parameters,y,y,n,ssa,,,camel,y,object{csp;deploymentParameters;deploymentUrl;requestStatus},,,,/v2/csps/{artifact_type}/org/{org_name}/team/{team_name}/{artifact_name}/versions/{version_id}/deployments/{csp_name},https://api.ngc.nvidia.com,,,,,duplicate-endpoint-family (same operation under /v2/org/{org_name}/{artifact_type}/.../deployments), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/csps/{artifact_type}/org/{org_name}/team/{team_name}/{artifact_name}/versions/{version_id}/files/**/deployments/{csp_name},createPublicArtifactVersionFileDeploymentUrlInTeam,Artifact deployment parameters,y,y,n,ssa,,,camel,y,object{csp;deploymentParameters;deploymentUrl;requestStatus},,,,/v2/csps/{artifact_type}/org/{org_name}/team/{team_name}/{artifact_name}/versions/{version_id}/files/**/deployments/{csp_name},https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/csps/{artifact_type}/org/{org_name}/{artifact_name}/versions/{version_id}/deployments/{csp_name},createPublicArtifactDeploymentUrlInOrg,Artifact deployment parameters,y,n,n,ssa,,,camel,y,object{csp;deploymentParameters;deploymentUrl;requestStatus},,,,/v2/csps/{artifact_type}/org/{org_name}/{artifact_name}/versions/{version_id}/deployments/{csp_name},https://api.ngc.nvidia.com,,,,,duplicate-endpoint-family (same operation under /v2/org/{org_name}/{artifact_type}/.../deployments), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/csps/{artifact_type}/org/{org_name}/{artifact_name}/versions/{version_id}/files/**/deployments/{csp_name},createPublicArtifactVersionFileDeploymentUrlInOrg,Artifact deployment parameters,y,n,n,ssa,,,camel,y,object{csp;deploymentParameters;deploymentUrl;requestStatus},,,,/v2/csps/{artifact_type}/org/{org_name}/{artifact_name}/versions/{version_id}/files/**/deployments/{csp_name},https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/csps/{artifact_type}/{org_name}/{artifact_name}/deployments/params,listPublicArtifactDeploymentParametersInOrg,Artifact deployment parameters,y,n,n,none-declared,,,kebab,n,object{artifact;csp;deploymentParameters;paginationInfo;requestStatus},$.deploymentParameters,,,/v2/csps/{artifact_type}/{org_name}/{artifact_name}/deployments/params,https://api.ngc.nvidia.com,catalog,artifact_deployment_params,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/csps/{artifact_type}/{org_name}/{artifact_name}/deployments/{csp_name}/params,getPublicArtifactDeploymentParametersInOrg,Artifact deployment parameters,y,n,n,none-declared,,,kebab,n,object{container;cpu;csp;gpu;memory;model;...},,,,/v2/csps/{artifact_type}/{org_name}/{artifact_name}/deployments/{csp_name}/params,https://api.ngc.nvidia.com,catalog,artifact_deployment_params,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/csps/{artifact_type}/{org_name}/{team_name}/{artifact_name}/deployments/params,listPublicArtifactDeploymentParametersInTeam,Artifact deployment parameters,y,y,n,none-declared,,,kebab,n,object{artifact;csp;deploymentParameters;paginationInfo;requestStatus},$.deploymentParameters,,,/v2/csps/{artifact_type}/{org_name}/{team_name}/{artifact_name}/deployments/params,https://api.ngc.nvidia.com,catalog,artifact_deployment_params,list_by_team,select,,team-scoped twin of /v2/csps/{artifact_type}/{org_name}/{artifact_name}/deployments/params (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/csps/{artifact_type}/{org_name}/{team_name}/{artifact_name}/deployments/{csp_name}/params,getPublicArtifactDeploymentParametersInTeam,Artifact deployment parameters,y,y,n,none-declared,,,kebab,n,object{container;cpu;csp;gpu;memory;model;...},,,,/v2/csps/{artifact_type}/{org_name}/{team_name}/{artifact_name}/deployments/{csp_name}/params,https://api.ngc.nvidia.com,catalog,artifact_deployment_params,get_by_team,select,,team-scoped twin of /v2/csps/{artifact_type}/{org_name}/{artifact_name}/deployments/{csp_name}/params (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/csps/{csp_name},getCloudServiceProviderDetails,Cloud service providers,n,n,n,none-declared,,,camel,n,object{attributes;createdDate;description;displayName;isDeployable;isEnabled;...},,,,/v2/csps/{csp_name},https://api.ngc.nvidia.com,catalog,csps,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/csps/{csp_name},updateCloudServiceProvider,Cloud service providers,n,n,n,ssa,,,camel,y,object{attributes;createdDate;description;displayName;isDeployable;isEnabled;...},,,,/v2/csps/{csp_name},https://api.ngc.nvidia.com,catalog,csps,update,update,,publisher-privileged write +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/csps/{csp_name},deleteCloudServiceProvider,Cloud service providers,n,n,n,ssa,,,camel,n,object{requestStatus},,,,/v2/csps/{csp_name},https://api.ngc.nvidia.com,catalog,csps,delete,delete,,publisher-privileged write +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/csps/{csp_name}/deployments/params,getCloudServiceProviderDeploymentParametersDetails,Cloud service provider deployment parameters,n,n,n,none-declared,,,camel,n,object{container;cpu;csp;gpu;memory;model;...},,,,/v2/csps/{csp_name}/deployments/params,https://api.ngc.nvidia.com,catalog,csp_deployment_params,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/csps/{csp_name}/deployments/params,createCloudServiceProviderDeploymentParameters,Cloud service provider deployment parameters,n,n,n,ssa,,,camel,y,object{container;cpu;csp;gpu;memory;model;...},,,,/v2/csps/{csp_name}/deployments/params,https://api.ngc.nvidia.com,catalog,csp_deployment_params,create,insert,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/csps/{csp_name}/deployments/params,updateCloudServiceProviderDeploymentParameters,Cloud service provider deployment parameters,n,n,n,ssa,,,camel,y,object{container;cpu;csp;gpu;memory;model;...},,,,/v2/csps/{csp_name}/deployments/params,https://api.ngc.nvidia.com,catalog,csp_deployment_params,update,update,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/csps/{csp_name}/deployments/params,deleteCloudServiceProviderDeploymentParameters,Cloud service provider deployment parameters,n,n,n,ssa,,,camel,n,object{requestStatus},,,,/v2/csps/{csp_name}/deployments/params,https://api.ngc.nvidia.com,catalog,csp_deployment_params,delete,delete,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/csps/{csp_name}/deployments/params/meta,getCloudServiceProviderDeploymentParametersMetaDetails,Deployment parameters meta,n,n,n,none-declared,,,camel,n,object{cpu;csp;gpu;memory;storage},,,,/v2/csps/{csp_name}/deployments/params/meta,https://api.ngc.nvidia.com,catalog,csp_deployment_params_meta,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/csps/{csp_name}/deployments/params/meta,createCloudServiceProviderDeploymentParametersMeta,Deployment parameters meta,n,n,n,ssa,,,camel,y,object{cpu;csp;gpu;memory;storage},,,,/v2/csps/{csp_name}/deployments/params/meta,https://api.ngc.nvidia.com,catalog,csp_deployment_params_meta,create,insert,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/csps/{csp_name}/deployments/params/meta,updateCloudServiceProviderDeploymentParametersMeta,Deployment parameters meta,n,n,n,ssa,,,camel,y,object{cpu;csp;gpu;memory;storage},,,,/v2/csps/{csp_name}/deployments/params/meta,https://api.ngc.nvidia.com,catalog,csp_deployment_params_meta,update,update,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/csps/{csp_name}/deployments/params/meta,deleteCloudServiceProviderDeploymentParametersMeta,Deployment parameters meta,n,n,n,ssa,,,camel,n,object{requestStatus},,,,/v2/csps/{csp_name}/deployments/params/meta,https://api.ngc.nvidia.com,catalog,csp_deployment_params_meta,delete,delete,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/deploy/csps,listCloudServiceProviders_1,Cloud service providers,n,n,n,none-declared,,page-size+page-number,kebab,n,object{cloudServiceProviders;paginationInfo;requestStatus},,,,/v2/deploy/csps,https://api.ngc.nvidia.com,,,,,duplicate-endpoint-family (same operations as the /v2/csps/{artifact_type} family), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/deploy/csps/{artifact_type}/{org_name}/{artifact_name}/deployments/params,listPublicArtifactDeploymentParametersInOrgAsGuest,Artifact deployment parameters,y,n,n,none-declared,,,kebab,n,object{artifact;csp;deploymentParameters;paginationInfo;requestStatus},,,,/v2/deploy/csps/{artifact_type}/{org_name}/{artifact_name}/deployments/params,https://api.ngc.nvidia.com,,,,,duplicate-endpoint-family (same operations as the /v2/csps/{artifact_type} family), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/deploy/csps/{artifact_type}/{org_name}/{artifact_name}/deployments/{csp_name}/params,getPublicArtifactDeploymentParametersInOrgAsGuest,Artifact deployment parameters,y,n,n,none-declared,,,kebab,n,object{container;cpu;csp;gpu;memory;model;...},,,,/v2/deploy/csps/{artifact_type}/{org_name}/{artifact_name}/deployments/{csp_name}/params,https://api.ngc.nvidia.com,,,,,duplicate-endpoint-family (same operations as the /v2/csps/{artifact_type} family), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/deploy/csps/{artifact_type}/{org_name}/{team_name}/{artifact_name}/deployments/params,listPublicArtifactDeploymentParametersInTeamAsGuest,Artifact deployment parameters,y,y,n,none-declared,,,kebab,n,object{artifact;csp;deploymentParameters;paginationInfo;requestStatus},,,,/v2/deploy/csps/{artifact_type}/{org_name}/{team_name}/{artifact_name}/deployments/params,https://api.ngc.nvidia.com,,,,,duplicate-endpoint-family (same operations as the /v2/csps/{artifact_type} family), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/deploy/csps/{artifact_type}/{org_name}/{team_name}/{artifact_name}/deployments/{csp_name}/params,getPublicArtifactDeploymentParametersInTeamAsGuest,Artifact deployment parameters,y,y,n,none-declared,,,kebab,n,object{container;cpu;csp;gpu;memory;model;...},,,,/v2/deploy/csps/{artifact_type}/{org_name}/{team_name}/{artifact_name}/deployments/{csp_name}/params,https://api.ngc.nvidia.com,,,,,duplicate-endpoint-family (same operations as the /v2/csps/{artifact_type} family), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/deploy/csps/{csp_name},getCloudServiceProviderDetails_1,Cloud service providers,n,n,n,none-declared,,,camel,n,object{attributes;createdDate;description;displayName;isDeployable;isEnabled;...},,,,/v2/deploy/csps/{csp_name},https://api.ngc.nvidia.com,,,,,duplicate-endpoint-family (same operations as the /v2/csps/{artifact_type} family), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/gpus,getGpus,GpuByPci,n,n,n,ssa,y,,camel,n,array,,,,/v2/gpus,https://api.ngc.nvidia.com,catalog,gpus,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/gpus/pci-device-id/{pci_device_id},getGpuByPciDeviceId,GpuByPci,n,n,n,ssa,,,camel,n,array,,,,/v2/gpus/pci-device-id/{pci_device_id},https://api.ngc.nvidia.com,catalog,gpus,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/gpus/pci-device-id/{pci_device_id},createGpuByPciDeviceId,GpuByPci,n,n,n,ssa,,,camel,y,object{createdAt;cudaMajorVersion;cudaMinorVersion;displayName;formFactor;gpuCounts;...},,,,/v2/gpus/pci-device-id/{pci_device_id},https://api.ngc.nvidia.com,catalog,gpus,create,insert,,"publisher-privileged write, mapped as documented" +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/gpus/pci-device-id/{pci_device_id},updateGpuByPciDeviceId,GpuByPci,n,n,n,ssa,,,camel,y,object{createdAt;cudaMajorVersion;cudaMinorVersion;displayName;formFactor;gpuCounts;...},,,,/v2/gpus/pci-device-id/{pci_device_id},https://api.ngc.nvidia.com,catalog,gpus,update,update,,publisher-privileged write +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/gpus/pci-device-id/{pci_device_id},deleteGpuByPciDeviceId,GpuByPci,n,n,n,ssa,,,camel,n,object{requestStatus},,,,/v2/gpus/pci-device-id/{pci_device_id},https://api.ngc.nvidia.com,catalog,gpus,delete,delete,,publisher-privileged write +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id},getGpuByPciDeviceIdVendorId,GpuByPci,n,n,n,ssa,,,camel,n,array,,,,/v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id},https://api.ngc.nvidia.com,catalog,gpus,get_by_vendor,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id}/pci-subsystem-device-id/{pci_subsystem_device_id},getGpuByPciDeviceIdVendorIdSubsystemDeviceId,GpuByPci,n,n,n,ssa,,,camel,n,object{createdAt;cudaMajorVersion;cudaMinorVersion;displayName;formFactor;gpuCounts;...},,,,/v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id}/pci-subsystem-device-id/{pci_subsystem_device_id},https://api.ngc.nvidia.com,catalog,gpus,get_by_vendor_subsystem,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id}/pci-subsystem-device-id/{pci_subsystem_device_id},createGpuByPciFullKey,GpuByPci,n,n,n,ssa,,,camel,y,object{createdAt;cudaMajorVersion;cudaMinorVersion;displayName;formFactor;gpuCounts;...},,,,/v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id}/pci-subsystem-device-id/{pci_subsystem_device_id},https://api.ngc.nvidia.com,catalog,gpus,create_by_vendor_subsystem,insert,,"publisher-privileged write, mapped as documented" +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id}/pci-subsystem-device-id/{pci_subsystem_device_id},updateGpuByPciFullKey,GpuByPci,n,n,n,ssa,,,camel,y,object{createdAt;cudaMajorVersion;cudaMinorVersion;displayName;formFactor;gpuCounts;...},,,,/v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id}/pci-subsystem-device-id/{pci_subsystem_device_id},https://api.ngc.nvidia.com,catalog,gpus,update_by_vendor_subsystem,update,,publisher-privileged write +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id}/pci-subsystem-device-id/{pci_subsystem_device_id},deleteGpuByPciFullKey,GpuByPci,n,n,n,ssa,,,camel,n,object{requestStatus},,,,/v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id}/pci-subsystem-device-id/{pci_subsystem_device_id},https://api.ngc.nvidia.com,catalog,gpus,delete_by_vendor_subsystem,delete,,publisher-privileged write +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/helm-charts/{org_name}/{artifact_name}/versions,listHelmChartVersionsInOrgAsGuest,Helm Charts,y,n,n,none-declared,,page-size+page-number,kebab,n,object{artifact;artifactVersions;paginationInfo;requestStatus},$.artifactVersions,,,/v2/helm-charts/{org_name}/{artifact_name}/versions,https://api.ngc.nvidia.com,catalog,helm_chart_versions,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/helm-charts/{org_name}/{artifact_name}/versions/{version_id},getHelmChartVersionInOrgAsGuest,Helm Charts,y,n,n,none-declared,,,camel,n,object{artifact;artifactVersion;requestStatus},$.artifactVersion,,,/v2/helm-charts/{org_name}/{artifact_name}/versions/{version_id},https://api.ngc.nvidia.com,catalog,helm_chart_versions,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/helm-charts/{org_name}/{team_name}/{artifact_name}/versions,listHelmChartVersionsInTeamAsGuest,Helm Charts,y,y,n,none-declared,,page-size+page-number,kebab,n,object{artifact;artifactVersions;paginationInfo;requestStatus},$.artifactVersions,,,/v2/helm-charts/{org_name}/{team_name}/{artifact_name}/versions,https://api.ngc.nvidia.com,catalog,helm_chart_versions,list_by_team,select,,team-scoped twin of /v2/helm-charts/{org_name}/{artifact_name}/versions (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/helm-charts/{org_name}/{team_name}/{artifact_name}/versions/{version_id},getHelmChartVersionInTeamAsGuest,Helm Charts,y,y,n,none-declared,,,camel,n,object{artifact;artifactVersion;requestStatus},$.artifactVersion,,,/v2/helm-charts/{org_name}/{team_name}/{artifact_name}/versions/{version_id},https://api.ngc.nvidia.com,catalog,helm_chart_versions,get_by_team,select,,team-scoped twin of /v2/helm-charts/{org_name}/{artifact_name}/versions/{version_id} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/malware-scan-notification,notifyScanResult,MalwareScan,n,n,n,ssa,,,camel,y,object{status},,,,/v2/malware-scan-notification,https://api.ngc.nvidia.com,,,,,inbound-webhook-not-client-api, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/models,listPublicModels,Models,n,n,n,none-declared,y,page-size+page-number,kebab,n,object{models;paginationInfo;requestStatus},$.models,,,/v2/models,https://api.ngc.nvidia.com,catalog,models,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/models/{org_name}/{model_name},getModelInOrgAsGuest,Models,y,n,n,none-declared,y,,kebab,n,object{model;requestStatus},$.model,,,/v2/models/{org_name}/{model_name},https://api.ngc.nvidia.com,catalog,models,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/models/{org_name}/{model_name}/versions,listModelVersionsInOrgAsGuest,Model Version,y,n,n,none-declared,y,page-size+page-number,kebab,n,object{model;modelVersions;paginationInfo;requestStatus},$.modelVersions,,,/v2/models/{org_name}/{model_name}/versions,https://api.ngc.nvidia.com,catalog,model_versions,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/models/{org_name}/{model_name}/versions/{version_id},getModelVersionInOrgAsGuest,Model Version,y,n,n,none-declared,,,camel,n,object{model;modelVersion;requestStatus},$.modelVersion,,,/v2/models/{org_name}/{model_name}/versions/{version_id},https://api.ngc.nvidia.com,catalog,model_versions,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/models/{org_name}/{model_name}/versions/{version_id}/files,listModeFilesInOrgAsGuest_2,Model Version Files,y,n,n,none-declared,,page-size+page-number,kebab,n,object{model;modelFiles;modelVersion;paginationInfo;requestStatus},$.modelFiles,,,/v2/models/{org_name}/{model_name}/versions/{version_id}/files,https://api.ngc.nvidia.com,catalog,model_files,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/models/{org_name}/{team_name}/{model_name},getModelInTeamAsGuest,Models,y,y,n,none-declared,,,kebab,n,object{model;requestStatus},$.model,,,/v2/models/{org_name}/{team_name}/{model_name},https://api.ngc.nvidia.com,catalog,models,get_by_team,select,,team-scoped twin of /v2/models/{org_name}/{model_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/models/{org_name}/{team_name}/{model_name}/versions,listModelVersionsInTeamAsGuest,Model Version,y,y,n,none-declared,,page-size+page-number,kebab,n,object{model;modelVersions;paginationInfo;requestStatus},$.modelVersions,,,/v2/models/{org_name}/{team_name}/{model_name}/versions,https://api.ngc.nvidia.com,catalog,model_versions,list_by_team,select,,team-scoped twin of /v2/models/{org_name}/{model_name}/versions (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/models/{org_name}/{team_name}/{model_name}/versions/{version_id},getModelVersionInTeamAsGuest,Model Version,y,y,n,none-declared,,,camel,n,object{model;modelVersion;requestStatus},$.modelVersion,,,/v2/models/{org_name}/{team_name}/{model_name}/versions/{version_id},https://api.ngc.nvidia.com,catalog,model_versions,get_by_team,select,,team-scoped twin of /v2/models/{org_name}/{model_name}/versions/{version_id} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/models/{org_name}/{team_name}/{model_name}/versions/{version_id}/files,listModeFilesInTeamAsGuest_2,Model Version Files,y,y,n,none-declared,,page-size+page-number,kebab,n,object{model;modelFiles;modelVersion;paginationInfo;requestStatus},$.modelFiles,,,/v2/models/{org_name}/{team_name}/{model_name}/versions/{version_id}/files,https://api.ngc.nvidia.com,catalog,model_files,list_by_team,select,,team-scoped twin of /v2/models/{org_name}/{model_name}/versions/{version_id}/files (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/nim/{team}/{nim_name}/{tag}/metadata,createNimMetadata,NIM Metadata,n,n,n,ssa,,,camel,y,object{profiles},$.profiles,,,/v2/nim/{team}/{nim_name}/{tag}/metadata,https://api.ngc.nvidia.com,catalog,nim_metadata,create,insert,,"publisher-privileged write, mapped as documented" +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/collections,listCollectionsInOrg,Collections,y,n,n,ssa,,page-size+page-number,kebab,n,object{collections;paginationInfo;requestStatus},$.collections,,/v2/org/{org_name},/collections,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collections,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/collections,createCollectionInOrg,Collections,y,n,n,ssa,,,camel,y,object{collection;requestStatus},$.collection,,/v2/org/{org_name},/collections,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collections,create,insert,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/collections/{collection_name},getCollectionInOrg,Collections,y,n,n,ssa,,,kebab,n,object{collection;requestStatus},$.collection,,/v2/org/{org_name},/collections/{collection_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collections,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/collections/{collection_name},updateCollectionInOrg,Collections,y,n,n,ssa,,,camel,y,object{collection;requestStatus},$.collection,,/v2/org/{org_name},/collections/{collection_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collections,update,update,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/collections/{collection_name},deleteCollectionInOrg,Collections,y,n,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/collections/{collection_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collections,delete,delete,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/collections/{collection_name}/artifacts,patchCollectionInOrg,Collections,y,n,n,ssa,,,camel,y,object{requestStatus},,,/v2/org/{org_name},/collections/{collection_name}/artifacts,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collection_artifacts,update_bulk,update,,bulk membership update +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/team/{artifact_team_name}/{artifact_type}/{artifact_name},addArtifactToCollectionInOrgFromAnotherOrgAndTeam,Collections,y,n,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/collections/{collection_name}/artifacts/org/{artifact_org_name}/team/{artifact_team_name}/{artifact_type}/{artifact_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collection_artifacts,add_cross_org_team,insert,,grants-as-data membership +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/team/{artifact_team_name}/{artifact_type}/{artifact_name},removeArtifactFromCollectionInOrgFromAnotherOrgAndTeam,Collections,y,n,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/collections/{collection_name}/artifacts/org/{artifact_org_name}/team/{artifact_team_name}/{artifact_type}/{artifact_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collection_artifacts,remove_cross_org_team,delete,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/{artifact_type}/{artifact_name},addArtifactToCollectionInOrgFromAnotherOrg,Collections,y,n,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/collections/{collection_name}/artifacts/org/{artifact_org_name}/{artifact_type}/{artifact_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collection_artifacts,add_cross_org,insert,,grants-as-data membership +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/{artifact_type}/{artifact_name},removeArtifactFromCollectionInOrgFromAnotherOrg,Collections,y,n,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/collections/{collection_name}/artifacts/org/{artifact_org_name}/{artifact_type}/{artifact_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collection_artifacts,remove_cross_org,delete,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/collections/{collection_name}/artifacts/{artifact_type},listCollectionArtifactsInOrg,Collections,y,n,n,ssa,,page-size+page-number,kebab,n,object{artifacts;paginationInfo;requestStatus},$.artifacts,,/v2/org/{org_name},/collections/{collection_name}/artifacts/{artifact_type},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collection_artifacts,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/collections/{collection_name}/share,publishCollection_1,Publish,y,n,y,ssa,,,kebab,n,object{requestStatus},,,,/v2/org/{org_name}/collections/{collection_name}/share,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/collections/{collection_name}/share,undoPublishCollection_1,Publish,y,n,n,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/collections/{collection_name}/share,https://api.ngc.nvidia.com,,,,,legacy-twin (PUT counterpart deprecated inline; superseded by /shares/org), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/collections/{collection_name}/share/product,publishCollectionFromRequest,Publish,y,n,n,ssa,,,camel,y,object{requestStatus},,,/v2/org/{org_name},/collections/{collection_name}/share/product,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collection_product_shares,add,insert,,grants-as-data +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/collections/{collection_name}/shares/org,shareCollectionInOrgWithOrg,Collections,y,n,y,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/collections/{collection_name}/shares/org,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/collections/{collection_name}/shares/org,revokeShareCollectionInOrgWithOrg,Collections,y,n,y,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/collections/{collection_name}/shares/org,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/collections/{collection_name}/shares/team/{target_team},shareCollectionInOrgWithTeam,Collections,y,n,y,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/collections/{collection_name}/shares/team/{target_team},https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/collections/{collection_name}/shares/team/{target_team},revokeShareCollectionInOrgWithTeam,Collections,y,n,y,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/collections/{collection_name}/shares/team/{target_team},https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/collections/{collection_name}/{artifact_type}/{artifact_name},addArtifactToCollectionInOrg,Collections,y,n,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/collections/{collection_name}/{artifact_type}/{artifact_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collection_artifacts,add,insert,,grants-as-data membership +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/collections/{collection_name}/{artifact_type}/{artifact_name},removeArtifactFromCollectionInOrg,Collections,y,n,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/collections/{collection_name}/{artifact_type}/{artifact_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collection_artifacts,remove,delete,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/files/commit,commitArtifactFiles,ArtifactChecksum,y,n,n,ssa,,,kebab,y,object{requestStatus},,,,/v2/org/{org_name}/files/commit,https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/helm-charts/{artifact_name}/versions,listHelmChartVersionsInOrg,Helm Charts,y,n,n,ssa,,page-size+page-number,kebab,n,object{artifact;artifactVersions;paginationInfo;requestStatus},$.artifactVersions,,/v2/org/{org_name},/helm-charts/{artifact_name}/versions,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,helm_chart_versions,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/helm-charts/{artifact_name}/versions/{version_id},getHelmChartVersionInOrg,Helm Charts,y,n,n,ssa,,,camel,n,object{artifact;artifactVersion;requestStatus},$.artifactVersion,,/v2/org/{org_name},/helm-charts/{artifact_name}/versions/{version_id},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,helm_chart_versions,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/helm-charts/{artifact_name}/versions/{version_id},updateHelmChartVersionInOrg,Helm Charts,y,n,n,ssa,,,camel,y,object{artifact;artifactVersion;requestStatus},$.artifactVersion,,/v2/org/{org_name},/helm-charts/{artifact_name}/versions/{version_id},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,helm_chart_versions,update,update,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/models,listModelsInOrg,Models,y,n,n,ssa,,page-size+page-number,kebab,n,object{models;paginationInfo;requestStatus},$.models,,/v2/org/{org_name},/models,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,models,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/models,createModelInOrg,Models,y,n,n,ssa,,,camel,y,object{model;requestStatus},$.model,,/v2/org/{org_name},/models,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,models,create,insert,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/models/{artifact_name}/versions/{version_id}/stash,stashArtifactVersionInOrg,Model Version,y,n,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/models/{artifact_name}/versions/{version_id}/stash,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,model_versions,stash,exec,,action on a version +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/models/{model_name},getModelInOrg,Models,y,n,n,ssa,,,kebab,n,object{model;requestStatus},$.model,,/v2/org/{org_name},/models/{model_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,models,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/models/{model_name},updateModelInOrg,Models,y,n,n,ssa,,,camel,y,object{model;requestStatus},$.model,,/v2/org/{org_name},/models/{model_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,models,update,update,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/models/{model_name},deleteModelInOrg,Models,y,n,n,none-declared,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/models/{model_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,models,delete,delete,,injected from SDK evidence (clean_specs inject-sdk-operations) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/models/{model_name}/encryption-key,disassociateKeyFromModelInOrg,Models,y,n,n,ssa,,,camel,n,object{requestStatus;statusUrl;workflowId},,,/v2/org/{org_name},/models/{model_name}/encryption-key,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,model_encryption_keys,delete,delete,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/models/{model_name}/versions,listModelVersionsInOrg,Model Version,y,n,n,ssa,,page-size+page-number,kebab,n,object{model;modelVersions;paginationInfo;requestStatus},$.modelVersions,,/v2/org/{org_name},/models/{model_name}/versions,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,model_versions,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/models/{model_name}/versions,createModelVersionInOrg,Model Version,y,n,n,ssa,,,camel,y,object{model;modelVersion;requestStatus},$.modelVersion,,/v2/org/{org_name},/models/{model_name}/versions,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,model_versions,create,insert,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/models/{model_name}/versions/{version_id},getModelVersionInOrg,Model Version,y,n,n,ssa,,,camel,n,object{model;modelVersion;requestStatus},$.modelVersion,,/v2/org/{org_name},/models/{model_name}/versions/{version_id},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,model_versions,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/models/{model_name}/versions/{version_id},updateModelVersionInOrg,Model Version,y,n,n,ssa,,,kebab,y,object{model;modelVersion;requestStatus},$.modelVersion,,/v2/org/{org_name},/models/{model_name}/versions/{version_id},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,model_versions,update,update,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/models/{model_name}/versions/{version_id}/files,listModeFilesInOrg,Model Version Files,y,n,n,ssa+ssa+ssa,,page-size+page-number,kebab,n,object{model;modelFiles;modelVersion;paginationInfo;requestStatus},$.modelFiles,,/v2/org/{org_name},/models/{model_name}/versions/{version_id}/files,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,model_files,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/recipes,listRecipesInOrg,Resources,y,n,n,ssa,,page-size+page-number,kebab,n,object{paginationInfo;recipes;requestStatus},$.recipes,,/v2/org/{org_name},/recipes,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,recipes,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/recipes,createRecipeInOrg,Resources,y,n,n,ssa,,,camel,y,object{recipe;requestStatus},$.recipe,,/v2/org/{org_name},/recipes,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,recipes,create,insert,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/recipes/{recipe_name},getRecipeInOrg,Resources,y,n,n,ssa,,,kebab,n,object{recipe;requestStatus},$.recipe,,/v2/org/{org_name},/recipes/{recipe_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,recipes,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/recipes/{recipe_name},updateRecipeInOrg,Resources,y,n,n,ssa,,,camel,y,object{recipe;requestStatus},$.recipe,,/v2/org/{org_name},/recipes/{recipe_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,recipes,update,update,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/recipes/{recipe_name}/versions,listRecipeVersionsInOrg,Resource Versions,y,n,n,ssa,,page-size+page-number,kebab,n,object{paginationInfo;recipe;recipeVersions;requestStatus},$.recipeVersions,,/v2/org/{org_name},/recipes/{recipe_name}/versions,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,recipe_versions,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/recipes/{recipe_name}/versions,createRecipeVersionInOrg,Resource Versions,y,n,n,ssa,,,camel,y,object{recipe;recipeVersion;requestStatus},$.recipeVersion,,/v2/org/{org_name},/recipes/{recipe_name}/versions,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,recipe_versions,create,insert,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/recipes/{recipe_name}/versions/{version_id},getRecipeVersionInOrg,Resource Versions,y,n,n,ssa,,,camel,n,object{recipe;recipeVersion;requestStatus},$.recipeVersion,,/v2/org/{org_name},/recipes/{recipe_name}/versions/{version_id},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,recipe_versions,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/recipes/{recipe_name}/versions/{version_id},updateRecipeVersionInOrg,Resource Versions,y,n,n,ssa,,,kebab,y,object{recipe;recipeVersion;requestStatus},$.recipeVersion,,/v2/org/{org_name},/recipes/{recipe_name}/versions/{version_id},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,recipe_versions,update,update,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/recipes/{recipe_name}/versions/{version_id}/files,listRecipeFilesInOrg,Resource Version Files endpoints,y,n,n,ssa+ssa+ssa,,page-size+page-number,kebab,n,object{paginationInfo;recipe;recipeFiles;recipeVersion;requestStatus},$.recipeFiles,,/v2/org/{org_name},/recipes/{recipe_name}/versions/{version_id}/files,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,recipe_files,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/repositories/{container_name}/associated-models,listModelVersionsAssociatedByContainer,Model Version,y,n,n,ssa,,page-size+page-number,kebab,n,object{model;modelVersions;paginationInfo;requestStatus},$.modelVersions,,/v2/org/{org_name},/repositories/{container_name}/associated-models,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,repository_associated_models,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/repositories/{container_name}/tags/{container_tag}/associated-models,listModelVersionsAssociatedByContainer_2,Model Version,y,n,n,ssa,,page-size+page-number,kebab,n,object{model;modelVersions;paginationInfo;requestStatus},$.modelVersions,,/v2/org/{org_name},/repositories/{container_name}/tags/{container_tag}/associated-models,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,repository_associated_models,list_by_tag,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/resources,listRecipesInOrg_1,Resources,y,n,n,ssa,,page-size+page-number,kebab,n,object{paginationInfo;recipes;requestStatus},$.recipes,,/v2/org/{org_name},/resources,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,resources,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/resources,createRecipeInOrg_1,Resources,y,n,n,ssa,,,camel,y,object{recipe;requestStatus},$.recipe,,/v2/org/{org_name},/resources,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,resources,create,insert,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/resources/{recipe_name},getRecipeInOrg_1,Resources,y,n,n,ssa,,,kebab,n,object{recipe;requestStatus},$.recipe,,/v2/org/{org_name},/resources/{recipe_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,resources,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/resources/{recipe_name},updateRecipeInOrg_1,Resources,y,n,n,ssa,,,camel,y,object{recipe;requestStatus},$.recipe,,/v2/org/{org_name},/resources/{recipe_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,resources,update,update,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/resources/{recipe_name},deleteResourceInOrg,Resources,y,n,n,none-declared,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/resources/{recipe_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,resources,delete,delete,,injected from SDK evidence (clean_specs inject-sdk-operations) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/resources/{recipe_name}/versions,listRecipeVersionsInOrg_1,Resource Versions,y,n,n,ssa,,page-size+page-number,kebab,n,object{paginationInfo;recipe;recipeVersions;requestStatus},$.recipeVersions,,/v2/org/{org_name},/resources/{recipe_name}/versions,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,resource_versions,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/resources/{recipe_name}/versions,createRecipeVersionInOrg_1,Resource Versions,y,n,n,ssa,,,camel,y,object{recipe;recipeVersion;requestStatus},$.recipeVersion,,/v2/org/{org_name},/resources/{recipe_name}/versions,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,resource_versions,create,insert,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/resources/{recipe_name}/versions/{version_id},getRecipeVersionInOrg_1,Resource Versions,y,n,n,ssa,,,camel,n,object{recipe;recipeVersion;requestStatus},$.recipeVersion,,/v2/org/{org_name},/resources/{recipe_name}/versions/{version_id},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,resource_versions,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/resources/{recipe_name}/versions/{version_id},updateRecipeVersionInOrg_1,Resource Versions,y,n,n,ssa,,,kebab,y,object{recipe;recipeVersion;requestStatus},$.recipeVersion,,/v2/org/{org_name},/resources/{recipe_name}/versions/{version_id},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,resource_versions,update,update,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/resources/{recipe_name}/versions/{version_id}/files,listRecipeFilesInOrg_1,Resource Version Files endpoints,y,n,n,ssa+ssa+ssa,,page-size+page-number,kebab,n,object{paginationInfo;recipe;recipeFiles;recipeVersion;requestStatus},$.recipeFiles,,/v2/org/{org_name},/resources/{recipe_name}/versions/{version_id}/files,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,resource_files,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/collections,listCollectionsInTeam,Collections,y,y,n,ssa,,page-size+page-number,kebab,n,object{collections;paginationInfo;requestStatus},$.collections,,/v2/org/{org_name},/team/{team_name}/collections,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collections,list_by_team,select,,team-scoped twin of /v2/org/{org_name}/collections (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/collections,createCollectionInTeam,Collections,y,y,n,ssa,,,camel,y,object{collection;requestStatus},$.collection,,/v2/org/{org_name},/team/{team_name}/collections,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collections,create_by_team,insert,,team-scoped twin of /v2/org/{org_name}/collections (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/collections/{collection_name},getCollectionInTeam,Collections,y,y,n,ssa,,,kebab,n,object{collection;requestStatus},$.collection,,/v2/org/{org_name},/team/{team_name}/collections/{collection_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collections,get_by_team,select,,team-scoped twin of /v2/org/{org_name}/collections/{collection_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/team/{team_name}/collections/{collection_name},updateCollectionInTeam,Collections,y,y,n,ssa,,,camel,y,object{collection;requestStatus},$.collection,,/v2/org/{org_name},/team/{team_name}/collections/{collection_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collections,update_by_team,update,,team-scoped twin of /v2/org/{org_name}/collections/{collection_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/collections/{collection_name},deleteCollectionInTeam,Collections,y,y,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/collections/{collection_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collections,delete_by_team,delete,,team-scoped twin of /v2/org/{org_name}/collections/{collection_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/artifacts,patchCollectionInTeam,Collections,y,y,n,ssa,,,camel,y,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/collections/{collection_name}/artifacts,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collection_artifacts,update_bulk_by_team,update,,bulk membership update; team-scoped twin of /v2/org/{org_name}/collections/{collection_name}/artifacts (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/team/{artifact_team_name}/{artifact_type}/{artifact_name},addArtifactToCollectionInTeamFromAnotherOrgAndTeam,Collections,y,y,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/team/{artifact_team_name}/{artifact_type}/{artifact_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collection_artifacts,add_cross_org_team_by_team,insert,,grants-as-data membership; team-scoped twin of /v2/org/{org_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/team/{artifact_team_name}/{artifact_type}/{artifact_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/team/{artifact_team_name}/{artifact_type}/{artifact_name},removeArtifactFromCollectionInTeamFromAnotherOrgAndTeam,Collections,y,y,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/team/{artifact_team_name}/{artifact_type}/{artifact_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collection_artifacts,remove_cross_org_team_by_team,delete,,team-scoped twin of /v2/org/{org_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/team/{artifact_team_name}/{artifact_type}/{artifact_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/{artifact_type}/{artifact_name},addArtifactToCollectionInTeamFromAnotherOrg,Collections,y,y,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/{artifact_type}/{artifact_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collection_artifacts,add_cross_org_by_team,insert,,grants-as-data membership; team-scoped twin of /v2/org/{org_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/{artifact_type}/{artifact_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/{artifact_type}/{artifact_name},removeArtifactFromCollectionInTeamFromAnotherOrg,Collections,y,y,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/{artifact_type}/{artifact_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collection_artifacts,remove_cross_org_by_team,delete,,team-scoped twin of /v2/org/{org_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/{artifact_type}/{artifact_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/artifacts/{artifact_type},listCollectionArtifactsInTeam,Collections,y,y,n,ssa,,page-size+page-number,kebab,n,object{artifacts;paginationInfo;requestStatus},$.artifacts,,/v2/org/{org_name},/team/{team_name}/collections/{collection_name}/artifacts/{artifact_type},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collection_artifacts,list_by_team,select,,team-scoped twin of /v2/org/{org_name}/collections/{collection_name}/artifacts/{artifact_type} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/share,publishCollection,Publish,y,y,n,ssa,,,kebab,n,object{requestStatus},,,,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/share,https://api.ngc.nvidia.com,,,,,legacy-twin (superseded by /shares/org), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/share,undoPublishCollection,Publish,y,y,n,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/share,https://api.ngc.nvidia.com,,,,,legacy-twin (PUT counterpart deprecated inline; superseded by /shares/org), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/share/product,publishCollectionFromRequest_1,Publish,y,y,n,ssa,,,camel,y,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/collections/{collection_name}/share/product,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collection_product_shares,add_by_team,insert,,grants-as-data; team-scoped twin of /v2/org/{org_name}/collections/{collection_name}/share/product (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/shares/org,shareCollectionInTeamWithOrg,Collections,y,y,y,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/shares/org,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/shares/org,revokeShareCollectionInTeamWithOrg,Collections,y,y,y,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/shares/org,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/shares/team/{target_team},shareCollectionInTeamWithTeam,Collections,y,y,y,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/shares/team/{target_team},https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/shares/team/{target_team},revokeShareCollectionInTeamWithTeam,Collections,y,y,y,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/shares/team/{target_team},https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/{artifact_type}/{artifact_name},addArtifactToCollectionInTeam,Collections,y,y,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/collections/{collection_name}/{artifact_type}/{artifact_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collection_artifacts,add_by_team,insert,,grants-as-data membership; team-scoped twin of /v2/org/{org_name}/collections/{collection_name}/{artifact_type}/{artifact_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/{artifact_type}/{artifact_name},removeArtifactFromCollectionInTeam,Collections,y,y,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/collections/{collection_name}/{artifact_type}/{artifact_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,collection_artifacts,remove_by_team,delete,,team-scoped twin of /v2/org/{org_name}/collections/{collection_name}/{artifact_type}/{artifact_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/files/commit,commitArtifactFiles_1,ArtifactChecksum,y,y,n,ssa,,,kebab,y,object{requestStatus},,,,/v2/org/{org_name}/team/{team_name}/files/commit,https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/helm-charts/{artifact_name}/versions,listHelmChartVersionsInTeam,Helm Charts,y,y,n,ssa,,page-size+page-number,kebab,n,object{artifact;artifactVersions;paginationInfo;requestStatus},$.artifactVersions,,/v2/org/{org_name},/team/{team_name}/helm-charts/{artifact_name}/versions,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,helm_chart_versions,list_by_team,select,,team-scoped twin of /v2/org/{org_name}/helm-charts/{artifact_name}/versions (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/helm-charts/{artifact_name}/versions/{version_id},getHelmChartVersionInTeam,Helm Charts,y,y,n,ssa,,,camel,n,object{artifact;artifactVersion;requestStatus},$.artifactVersion,,/v2/org/{org_name},/team/{team_name}/helm-charts/{artifact_name}/versions/{version_id},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,helm_chart_versions,get_by_team,select,,team-scoped twin of /v2/org/{org_name}/helm-charts/{artifact_name}/versions/{version_id} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/team/{team_name}/helm-charts/{artifact_name}/versions/{version_id},updateHelmChartVersionInTeam,Helm Charts,y,y,n,ssa,,,camel,y,object{artifact;artifactVersion;requestStatus},$.artifactVersion,,/v2/org/{org_name},/team/{team_name}/helm-charts/{artifact_name}/versions/{version_id},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,helm_chart_versions,update_by_team,update,,team-scoped twin of /v2/org/{org_name}/helm-charts/{artifact_name}/versions/{version_id} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/models,listModelsInTeam,Models,y,y,n,ssa,,page-size+page-number,kebab,n,object{models;paginationInfo;requestStatus},$.models,,/v2/org/{org_name},/team/{team_name}/models,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,models,list_by_team,select,,team-scoped twin of /v2/org/{org_name}/models (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/models,createModelInTeam,Models,y,y,n,ssa,,,camel,y,object{model;requestStatus},$.model,,/v2/org/{org_name},/team/{team_name}/models,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,models,create_by_team,insert,,team-scoped twin of /v2/org/{org_name}/models (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/team/{team_name}/models/{artifact_name}/versions/{version_id}/stash,stashArtifactVersionInTeam,Model Version,y,y,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/models/{artifact_name}/versions/{version_id}/stash,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,model_versions,stash_by_team,exec,,action on a version; team-scoped twin of /v2/org/{org_name}/models/{artifact_name}/versions/{version_id}/stash (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/models/{model_name},getModelInTeam,Models,y,y,n,ssa,,,kebab,n,object{model;requestStatus},$.model,,/v2/org/{org_name},/team/{team_name}/models/{model_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,models,get_by_team,select,,team-scoped twin of /v2/org/{org_name}/models/{model_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/team/{team_name}/models/{model_name},updateModelInTeam,Models,y,y,n,ssa,,,camel,y,object{model;requestStatus},$.model,,/v2/org/{org_name},/team/{team_name}/models/{model_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,models,update_by_team,update,,team-scoped twin of /v2/org/{org_name}/models/{model_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/models/{model_name},deleteModelInTeam,Models,y,y,n,none-declared,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/models/{model_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,models,delete_by_team,delete,,injected from SDK evidence (clean_specs inject-sdk-operations); team-scoped twin of /v2/org/{org_name}/models/{model_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/models/{model_name}/encryption-key,disassociateKeyFromModelInTeam,Models,y,y,n,ssa,,,camel,n,object{requestStatus;statusUrl;workflowId},,,/v2/org/{org_name},/team/{team_name}/models/{model_name}/encryption-key,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,model_encryption_keys,delete_by_team,delete,,team-scoped twin of /v2/org/{org_name}/models/{model_name}/encryption-key (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/models/{model_name}/versions,listModelVersionsInTeam,Model Version,y,y,n,ssa,,page-size+page-number,kebab,n,object{model;modelVersions;paginationInfo;requestStatus},$.modelVersions,,/v2/org/{org_name},/team/{team_name}/models/{model_name}/versions,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,model_versions,list_by_team,select,,team-scoped twin of /v2/org/{org_name}/models/{model_name}/versions (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/models/{model_name}/versions,createModelVersionInTeam,Model Version,y,y,n,ssa,,,camel,y,object{model;modelVersion;requestStatus},$.modelVersion,,/v2/org/{org_name},/team/{team_name}/models/{model_name}/versions,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,model_versions,create_by_team,insert,,team-scoped twin of /v2/org/{org_name}/models/{model_name}/versions (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/models/{model_name}/versions/{version_id},getModelVersionInTeam,Model Version,y,y,n,ssa,,,camel,n,object{model;modelVersion;requestStatus},$.modelVersion,,/v2/org/{org_name},/team/{team_name}/models/{model_name}/versions/{version_id},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,model_versions,get_by_team,select,,team-scoped twin of /v2/org/{org_name}/models/{model_name}/versions/{version_id} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/team/{team_name}/models/{model_name}/versions/{version_id},updateModelVersionInTeam,Model Version,y,y,n,ssa,,,kebab,y,object{model;modelVersion;requestStatus},$.modelVersion,,/v2/org/{org_name},/team/{team_name}/models/{model_name}/versions/{version_id},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,model_versions,update_by_team,update,,team-scoped twin of /v2/org/{org_name}/models/{model_name}/versions/{version_id} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/team/{team_name}/models/{model_name}/versions/{version_id}/apps/{app_name},updateModelAppAssociation,Apps,y,y,y,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/team/{team_name}/models/{model_name}/versions/{version_id}/apps/{app_name},https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/models/{model_name}/versions/{version_id}/apps/{app_name},deleteModelAppAssociation,Apps,y,y,y,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/team/{team_name}/models/{model_name}/versions/{version_id}/apps/{app_name},https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/models/{model_name}/versions/{version_id}/files,listModeFilesInTeam,Model Version Files,y,y,n,ssa+ssa+ssa,,page-size+page-number,kebab,n,object{model;modelFiles;modelVersion;paginationInfo;requestStatus},$.modelFiles,,/v2/org/{org_name},/team/{team_name}/models/{model_name}/versions/{version_id}/files,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,model_files,list_by_team,select,,team-scoped twin of /v2/org/{org_name}/models/{model_name}/versions/{version_id}/files (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/recipes,listRecipesInTeam,Resources,y,y,n,ssa,,page-size+page-number,kebab,n,object{paginationInfo;recipes;requestStatus},$.recipes,,/v2/org/{org_name},/team/{team_name}/recipes,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,recipes,list_by_team,select,,team-scoped twin of /v2/org/{org_name}/recipes (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/recipes,createRecipeInTeam,Resources,y,y,n,ssa,,,camel,y,object{recipe;requestStatus},$.recipe,,/v2/org/{org_name},/team/{team_name}/recipes,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,recipes,create_by_team,insert,,team-scoped twin of /v2/org/{org_name}/recipes (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/recipes/{recipe_name},getRecipeInTeam,Resources,y,y,n,ssa,,,kebab,n,object{recipe;requestStatus},$.recipe,,/v2/org/{org_name},/team/{team_name}/recipes/{recipe_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,recipes,get_by_team,select,,team-scoped twin of /v2/org/{org_name}/recipes/{recipe_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/team/{team_name}/recipes/{recipe_name},updateRecipeInTeam,Resources,y,y,n,ssa,,,camel,y,object{recipe;requestStatus},$.recipe,,/v2/org/{org_name},/team/{team_name}/recipes/{recipe_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,recipes,update_by_team,update,,team-scoped twin of /v2/org/{org_name}/recipes/{recipe_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/recipes/{recipe_name}/versions,listRecipeVersionsInTeam,Resource Versions,y,y,n,ssa,,page-size+page-number,kebab,n,object{paginationInfo;recipe;recipeVersions;requestStatus},$.recipeVersions,,/v2/org/{org_name},/team/{team_name}/recipes/{recipe_name}/versions,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,recipe_versions,list_by_team,select,,team-scoped twin of /v2/org/{org_name}/recipes/{recipe_name}/versions (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/recipes/{recipe_name}/versions,createRecipeVersionInTeam,Resource Versions,y,y,n,ssa,,,camel,y,object{recipe;recipeVersion;requestStatus},$.recipeVersion,,/v2/org/{org_name},/team/{team_name}/recipes/{recipe_name}/versions,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,recipe_versions,create_by_team,insert,,team-scoped twin of /v2/org/{org_name}/recipes/{recipe_name}/versions (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/recipes/{recipe_name}/versions/{version_id},getRecipeVersionInTeam,Resource Versions,y,y,n,ssa,,,camel,n,object{recipe;recipeVersion;requestStatus},$.recipeVersion,,/v2/org/{org_name},/team/{team_name}/recipes/{recipe_name}/versions/{version_id},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,recipe_versions,get_by_team,select,,team-scoped twin of /v2/org/{org_name}/recipes/{recipe_name}/versions/{version_id} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/team/{team_name}/recipes/{recipe_name}/versions/{version_id},updateRecipeVersionInTeam,Resource Versions,y,y,n,ssa,,,kebab,y,object{recipe;recipeVersion;requestStatus},$.recipeVersion,,/v2/org/{org_name},/team/{team_name}/recipes/{recipe_name}/versions/{version_id},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,recipe_versions,update_by_team,update,,team-scoped twin of /v2/org/{org_name}/recipes/{recipe_name}/versions/{version_id} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/recipes/{recipe_name}/versions/{version_id}/files,listRecipeFilesInTeam,Resource Version Files endpoints,y,y,n,ssa+ssa+ssa,,page-size+page-number,kebab,n,object{paginationInfo;recipe;recipeFiles;recipeVersion;requestStatus},$.recipeFiles,,/v2/org/{org_name},/team/{team_name}/recipes/{recipe_name}/versions/{version_id}/files,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,recipe_files,list_by_team,select,,team-scoped twin of /v2/org/{org_name}/recipes/{recipe_name}/versions/{version_id}/files (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/repositories/{container_name}/associated-models,listModelVersionsAssociatedByContainer_1,Model Version,y,y,n,ssa,,page-size+page-number,kebab,n,object{model;modelVersions;paginationInfo;requestStatus},$.modelVersions,,/v2/org/{org_name},/team/{team_name}/repositories/{container_name}/associated-models,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,repository_associated_models,list_by_team,select,,team-scoped twin of /v2/org/{org_name}/repositories/{container_name}/associated-models (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/repositories/{container_name}/tags/{container_tag}/associated-models,listModelVersionsAssociatedByContainer_3,Model Version,y,y,n,ssa,,page-size+page-number,kebab,n,object{model;modelVersions;paginationInfo;requestStatus},$.modelVersions,,/v2/org/{org_name},/team/{team_name}/repositories/{container_name}/tags/{container_tag}/associated-models,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,repository_associated_models,list_by_tag_by_team,select,,team-scoped twin of /v2/org/{org_name}/repositories/{container_name}/tags/{container_tag}/associated-models (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/resources,listRecipesInTeam_1,Resources,y,y,n,ssa,,page-size+page-number,kebab,n,object{paginationInfo;recipes;requestStatus},$.recipes,,/v2/org/{org_name},/team/{team_name}/resources,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,resources,list_by_team,select,,team-scoped twin of /v2/org/{org_name}/resources (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/resources,createRecipeInTeam_1,Resources,y,y,n,ssa,,,camel,y,object{recipe;requestStatus},$.recipe,,/v2/org/{org_name},/team/{team_name}/resources,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,resources,create_by_team,insert,,team-scoped twin of /v2/org/{org_name}/resources (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/resources/{recipe_name},getRecipeInTeam_1,Resources,y,y,n,ssa,,,kebab,n,object{recipe;requestStatus},$.recipe,,/v2/org/{org_name},/team/{team_name}/resources/{recipe_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,resources,get_by_team,select,,team-scoped twin of /v2/org/{org_name}/resources/{recipe_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/team/{team_name}/resources/{recipe_name},updateRecipeInTeam_1,Resources,y,y,n,ssa,,,camel,y,object{recipe;requestStatus},$.recipe,,/v2/org/{org_name},/team/{team_name}/resources/{recipe_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,resources,update_by_team,update,,team-scoped twin of /v2/org/{org_name}/resources/{recipe_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/resources/{recipe_name},deleteResourceInTeam,Resources,y,y,n,none-declared,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/resources/{recipe_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,resources,delete_by_team,delete,,injected from SDK evidence (clean_specs inject-sdk-operations); team-scoped twin of /v2/org/{org_name}/resources/{recipe_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/resources/{recipe_name}/versions,listRecipeVersionsInTeam_1,Resource Versions,y,y,n,ssa,,page-size+page-number,kebab,n,object{paginationInfo;recipe;recipeVersions;requestStatus},$.recipeVersions,,/v2/org/{org_name},/team/{team_name}/resources/{recipe_name}/versions,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,resource_versions,list_by_team,select,,team-scoped twin of /v2/org/{org_name}/resources/{recipe_name}/versions (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/resources/{recipe_name}/versions,createRecipeVersionInTeam_1,Resource Versions,y,y,n,ssa,,,camel,y,object{recipe;recipeVersion;requestStatus},$.recipeVersion,,/v2/org/{org_name},/team/{team_name}/resources/{recipe_name}/versions,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,resource_versions,create_by_team,insert,,team-scoped twin of /v2/org/{org_name}/resources/{recipe_name}/versions (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/resources/{recipe_name}/versions/{version_id},getRecipeVersionInTeam_1,Resource Versions,y,y,n,ssa,,,camel,n,object{recipe;recipeVersion;requestStatus},$.recipeVersion,,/v2/org/{org_name},/team/{team_name}/resources/{recipe_name}/versions/{version_id},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,resource_versions,get_by_team,select,,team-scoped twin of /v2/org/{org_name}/resources/{recipe_name}/versions/{version_id} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/team/{team_name}/resources/{recipe_name}/versions/{version_id},updateRecipeVersionInTeam_1,Resource Versions,y,y,n,ssa,,,kebab,y,object{recipe;recipeVersion;requestStatus},$.recipeVersion,,/v2/org/{org_name},/team/{team_name}/resources/{recipe_name}/versions/{version_id},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,resource_versions,update_by_team,update,,team-scoped twin of /v2/org/{org_name}/resources/{recipe_name}/versions/{version_id} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/resources/{recipe_name}/versions/{version_id}/files,listRecipeFilesInTeam_1,Resource Version Files endpoints,y,y,n,ssa+ssa+ssa,,page-size+page-number,kebab,n,object{paginationInfo;recipe;recipeFiles;recipeVersion;requestStatus},$.recipeFiles,,/v2/org/{org_name},/team/{team_name}/resources/{recipe_name}/versions/{version_id}/files,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,resource_files,list_by_team,select,,team-scoped twin of /v2/org/{org_name}/resources/{recipe_name}/versions/{version_id}/files (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/{artifact_type},listArtifactsInTeam,Artifacts,y,y,n,ssa,,page-size+page-number,kebab,n,object{artifacts;paginationInfo;requestStatus},$.artifacts,,/v2/org/{org_name},/team/{team_name}/{artifact_type},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,list_by_team,select,,team-scoped twin of /v2/org/{org_name}/{artifact_type} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/{artifact_type},createArtifactInTeam,Artifacts,y,y,n,ssa,,,camel,y,object{artifact;requestStatus},$.artifact,,/v2/org/{org_name},/team/{team_name}/{artifact_type},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,create_by_team,insert,,team-scoped twin of /v2/org/{org_name}/{artifact_type} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name},getArtifactInTeam,Artifacts,y,y,n,ssa,,,kebab,n,object{artifact;requestStatus},$.artifact,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,get_by_team,select,,team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name},replaceArtifactInTeam,Artifacts,y,y,n,ssa,,,camel,y,object{artifact;requestStatus},$.artifact,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,replace_by_team,replace,,"PUT with a PATCH twin - proposed replace, semantics unverified (keycloak rule); team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule)" +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name},updateArtifactInTeam,Artifacts,y,y,n,ssa,,,camel,y,object{artifact;requestStatus},$.artifact,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,update_by_team,update,,team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name},deleteArtifactInTeam,Artifacts,y,y,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,delete_by_team,delete,,team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/catalog/flags,getPublicFlagsInTeam,Publish,y,y,n,ssa,,,camel,n,object{canGuestDownload;isListedToPublic;isPublic},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/catalog/flags,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_catalog_flags,get_by_team,select,,team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/catalog/flags (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/collections,listArtifactCollectionsInTeam,Collections,y,y,n,ssa,,page-size+page-number,kebab,n,object{collections;paginationInfo;requestStatus},$.collections,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/collections,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_collections,list_by_team,select,,team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/collections (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/collections/sync-release-type-labels,syncCollectionReleaseTypeLabelsForArtifact_1,Collections,y,y,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/collections/sync-release-type-labels,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,sync_release_type_labels_by_team,exec,,action; team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/collections/sync-release-type-labels (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/deployments/params,listArtifactDeploymentParametersInTeam,Artifact deployment parameters,y,y,n,ssa,,,kebab,n,object{artifact;csp;deploymentParameters;paginationInfo;requestStatus},$.deploymentParameters,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/deployments/params,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_deployment_params,list_by_team,select,,team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/deployments/params (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/parameters,createArtifactDeploymentParametersInTeam_1,Artifact deployment parameters,y,y,n,ssa,,,kebab,y,object{container;cpu;csp;gpu;memory;model;...},,,,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/parameters,https://api.ngc.nvidia.com,,,,,duplicate-endpoint-family (same operation as /deployments/{csp_name}/params), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,getArtifactDeploymentParametersInTeam,Artifact deployment parameters,y,y,n,ssa,,,kebab,n,object{container;cpu;csp;gpu;memory;model;...},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_deployment_params,get_by_team,select,,team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,createArtifactDeploymentParametersInTeam,Artifact deployment parameters,y,y,n,ssa,,,kebab,y,object{container;cpu;csp;gpu;memory;model;...},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_deployment_params,create_by_team,insert,,team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,updateArtifactDeploymentParametersInTeam,Artifact deployment parameters,y,y,n,ssa,,,kebab,y,object{container;cpu;csp;gpu;memory;model;...},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_deployment_params,update_by_team,update,,team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,deleteArtifactDeploymentParametersInTeam,Artifact deployment parameters,y,y,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_deployment_params,delete_by_team,delete,,team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/files,checkArtifactFilesExistByChecksum_1,ArtifactChecksum,y,y,n,ssa,,page-size+page-number,kebab,y,object{files;paginationInfo;requestStatus},,,,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/files,https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/license/acceptance,getOrgArtifactLicenseAcceptance_1,Publish,y,y,n,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/license/acceptance,https://api.ngc.nvidia.com,,,,,non-projectable-response (requestStatus-only envelope), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/license/acceptance,acceptArtifactLicense_1,Publish,y,y,n,ssa,,,camel,y,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/license/acceptance,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,license_acceptances,create_by_team,insert,,team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/license/acceptance (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/release-type,updateReleaseLabel_1,Publish,y,y,n,ssa,,,camel,y,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/release-type,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,set_release_type_by_team,exec,,single-field action endpoint; team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/release-type (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/share,publishArtifact_1,Publish,y,y,n,ssa,,,kebab,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/share,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_shares,add_by_team,insert,,grants-as-data; team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/share (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/share,undoPublishArtifact_1,Publish,y,y,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/share,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_shares,remove_by_team,delete,,team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/share (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/share/product,publishArtifactFromRequest_1,Publish,y,y,n,ssa,,,camel,y,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/share/product,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_product_shares,add_by_team,insert,,grants-as-data; team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/share/product (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/share/product,undoPublishProduct_1,Publish,y,y,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/share/product,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_product_shares,remove_by_team,delete,,team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/share/product (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/terms-of-service,updateTermsOfService_1,Publish,y,y,n,ssa,,,camel,y,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/terms-of-service,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,set_terms_of_service_by_team,exec,,single-field action endpoint; team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/terms-of-service (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id},deleteArtifactVersionInTeam,Artifact Versions,y,y,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_versions,delete_by_team,delete,,team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/configs,updateTagLevelPublishConfigs_1,Publish,y,y,n,ssa,,,camel,y,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/configs,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_version_configs,update_by_team,update,,team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/configs (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/deployments/{csp_name},createArtifactDeploymentUrlInTeam,Artifact deployment parameters,y,y,n,ssa,,,camel,y,object{csp;deploymentParameters;deploymentUrl;requestStatus},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/deployments/{csp_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_deployments,create_by_team,insert,,launches a CSP deployment; team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/deployments/{csp_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files,listArtifactFilesInTeam,Artifact Version Files,y,y,n,ssa+ssa+ssa,,page-size+page-number,kebab,n,object{artifact;artifactFiles;artifactVersion;paginationInfo;requestStatus},$.artifactFiles,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_files,list_by_team,select,,team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/**,downloadArtifactFileInTeam,Artifact Version Files,y,y,y,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/**,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/**,deleteArtifactFileInTeam,Artifact Version Files,y,y,n,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/**,https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/**/deployments/{csp_name},createArtifactVersionFileDeploymentUrlInTeam,Artifact deployment parameters,y,y,n,ssa,,,camel,y,object{csp;deploymentParameters;deploymentUrl;requestStatus},,,,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/**/deployments/{csp_name},https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/**/zip/download,downloadArtifactFileInTeamAsZip,Artifact Version Files,y,y,y,ssa,,,camel,n,object,,,,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/**/zip/download,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/signature,getArtifactVersionSignature_1,ArtifactSigning,y,y,n,none-declared,,,camel,n,object,,,,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/signature,https://api.ngc.nvidia.com,,,,,non-json-response (signature bytes / redirect), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/signature,signArtifactVersion_1,ArtifactSigning,y,y,n,ssa,,,camel,n,object{filepath;requestStatus;url},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/signature,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_signatures,set_by_team,exec,,write of a computed signature - action; team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/signature (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/zip,downloadAllFilesInTeam,Artifact Version Files,y,y,y,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/zip,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/{artifact_type},listArtifactsInOrg,Artifacts,y,n,n,ssa,,page-size+page-number,kebab,n,object{artifacts;paginationInfo;requestStatus},$.artifacts,,/v2/org/{org_name},/{artifact_type},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/{artifact_type},createArtifactInOrg,Artifacts,y,n,n,ssa,,,camel,y,object{artifact;requestStatus},$.artifact,,/v2/org/{org_name},/{artifact_type},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,create,insert,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/{artifact_type}/{artifact_name},getArtifactInOrg,Artifacts,y,n,n,ssa,,,kebab,n,object{artifact;requestStatus},$.artifact,,/v2/org/{org_name},/{artifact_type}/{artifact_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/{artifact_type}/{artifact_name},replaceArtifactInOrg,Artifacts,y,n,n,ssa,,,camel,y,object{artifact;requestStatus},$.artifact,,/v2/org/{org_name},/{artifact_type}/{artifact_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,replace,replace,,"PUT with a PATCH twin - proposed replace, semantics unverified (keycloak rule)" +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/{artifact_type}/{artifact_name},updateArtifactInOrg,Artifacts,y,n,n,ssa,,,camel,y,object{artifact;requestStatus},$.artifact,,/v2/org/{org_name},/{artifact_type}/{artifact_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,update,update,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/{artifact_type}/{artifact_name},deleteArtifactInOrg,Artifacts,y,n,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/{artifact_type}/{artifact_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,delete,delete,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/{artifact_type}/{artifact_name}/catalog/flags,getPublicFlagsInOrg,Publish,y,n,n,ssa,,,camel,n,object{canGuestDownload;isListedToPublic;isPublic},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/catalog/flags,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_catalog_flags,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/{artifact_type}/{artifact_name}/collections,listArtifactCollectionsInOrg,Collections,y,n,n,ssa,,page-size+page-number,kebab,n,object{collections;paginationInfo;requestStatus},$.collections,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/collections,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_collections,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/{artifact_type}/{artifact_name}/collections/sync-release-type-labels,syncCollectionReleaseTypeLabelsForArtifact,Collections,y,n,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/collections/sync-release-type-labels,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,sync_release_type_labels,exec,,action +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/{artifact_type}/{artifact_name}/deployments/params,listArtifactDeploymentParametersInOrg,Artifact deployment parameters,y,n,n,ssa,,,kebab,n,object{artifact;csp;deploymentParameters;paginationInfo;requestStatus},$.deploymentParameters,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/deployments/params,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_deployment_params,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,getArtifactDeploymentParametersInOrg,Artifact deployment parameters,y,n,n,ssa,,,kebab,n,object{container;cpu;csp;gpu;memory;model;...},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_deployment_params,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,createArtifactDeploymentParametersInOrg,Artifact deployment parameters,y,n,n,ssa,,,kebab,y,object{container;cpu;csp;gpu;memory;model;...},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_deployment_params,create,insert,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,updateArtifactDeploymentParametersInOrg,Artifact deployment parameters,y,n,n,ssa,,,kebab,y,object{container;cpu;csp;gpu;memory;model;...},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_deployment_params,update,update,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,deleteArtifactDeploymentParametersInOrg,Artifact deployment parameters,y,n,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/deployments/{csp_name}/params,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_deployment_params,delete,delete,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/{artifact_type}/{artifact_name}/files,checkArtifactFilesExistByChecksum,ArtifactChecksum,y,n,n,ssa,,page-size+page-number,kebab,y,object{files;paginationInfo;requestStatus},,,,/v2/org/{org_name}/{artifact_type}/{artifact_name}/files,https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/{artifact_type}/{artifact_name}/license/acceptance,getOrgArtifactLicenseAcceptance,Publish,y,n,n,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/{artifact_type}/{artifact_name}/license/acceptance,https://api.ngc.nvidia.com,,,,,non-projectable-response (requestStatus-only envelope), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/{artifact_type}/{artifact_name}/license/acceptance,acceptArtifactLicense,Publish,y,n,n,ssa,,,camel,y,object{requestStatus},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/license/acceptance,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,license_acceptances,create,insert,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/{artifact_type}/{artifact_name}/release-type,updateReleaseLabel,Publish,y,n,n,ssa,,,camel,y,object{requestStatus},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/release-type,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,set_release_type,exec,,single-field action endpoint +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/{artifact_type}/{artifact_name}/share,publishArtifact,Publish,y,n,n,ssa,,,kebab,n,object{requestStatus},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/share,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_shares,add,insert,,grants-as-data +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/{artifact_type}/{artifact_name}/share,undoPublishArtifact,Publish,y,n,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/share,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_shares,remove,delete,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/{artifact_type}/{artifact_name}/share/product,publishArtifactFromRequest,Publish,y,n,n,ssa,,,camel,y,object{requestStatus},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/share/product,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_product_shares,add,insert,,grants-as-data +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/{artifact_type}/{artifact_name}/share/product,undoPublishProduct,Publish,y,n,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/share/product,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_product_shares,remove,delete,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/{artifact_type}/{artifact_name}/terms-of-service,updateTermsOfService,Publish,y,n,n,ssa,,,camel,y,object{requestStatus},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/terms-of-service,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,set_terms_of_service,exec,,single-field action endpoint +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id},deleteArtifactVersionInOrg,Artifact Versions,y,n,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/versions/{version_id},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_versions,delete,delete,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,patch,/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/configs,updateTagLevelPublishConfigs,Publish,y,n,n,ssa,,,camel,y,object{requestStatus},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/versions/{version_id}/configs,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_version_configs,update,update,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/deployments/{csp_name},createArtifactDeploymentUrlInOrg,Artifact deployment parameters,y,n,n,ssa,,,camel,y,object{csp;deploymentParameters;deploymentUrl;requestStatus},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/versions/{version_id}/deployments/{csp_name},https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_deployments,create,insert,,launches a CSP deployment +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files,listArtifactFilesInOrg,Artifact Version Files,y,n,n,ssa+ssa+ssa,,page-size+page-number,kebab,n,object{artifact;artifactFiles;artifactVersion;paginationInfo;requestStatus},$.artifactFiles,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/versions/{version_id}/files,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_files,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/**,downloadArtifactFileInOrg,Artifact Version Files,y,n,y,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/**,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/**,deleteArtifactFileInOrg,Artifact Version Files,y,n,n,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/**,https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/**/deployments/{csp_name},createArtifactVerionFileDeploymentUrlInOrg,Artifact deployment parameters,y,n,n,ssa,,,camel,y,object{csp;deploymentParameters;deploymentUrl;requestStatus},,,,/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/**/deployments/{csp_name},https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/*/zip/download,downloadArtifactFileInOrgAsZip,Artifact Version Files,y,n,y,ssa,,,camel,n,object,,,,/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/*/zip/download,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/signature,getArtifactVersionSignature,ArtifactSigning,y,n,n,none-declared,,,camel,n,object,,,,/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/signature,https://api.ngc.nvidia.com,,,,,non-json-response (signature bytes / redirect), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/signature,signArtifactVersion,ArtifactSigning,y,n,n,ssa,,,camel,n,object{filepath;requestStatus;url},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/versions/{version_id}/signature,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_signatures,set,exec,,write of a computed signature - action +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/zip,downloadAllFilesInOrg,Artifact Version Files,y,n,y,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/zip,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/malware-scan,initiateMalwareScan_1,MalwareScan,y,y,n,ssa,,,kebab,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/malware-scan,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,malware_scan_by_team,exec,,action; team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/malware-scan (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/{artifact_type}/playground,createModelAIPlayground_1,AIPlayground,y,y,y,ssa,,,camel,y,object{artifactName;artifactType;attributes;createdDate;namespace;nvcfFunctionId;...},,,,/v2/org/{org_name}/team/{team_name}/{artifact_type}/playground,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/{artifact_type}/playground/{artifact_name},getModelAIPlayground_1,AIPlayground,y,y,y,ssa,,,camel,n,object{artifactName;artifactType;attributes;createdDate;namespace;nvcfFunctionId;...},,,,/v2/org/{org_name}/team/{team_name}/{artifact_type}/playground/{artifact_name},https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/team/{team_name}/{artifact_type}/playground/{artifact_name},updateModelAIPlayground_1,AIPlayground,y,y,y,ssa,,,camel,y,object{artifactName;artifactType;attributes;createdDate;namespace;nvcfFunctionId;...},,,,/v2/org/{org_name}/team/{team_name}/{artifact_type}/playground/{artifact_name},https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/{artifact_type}/playground/{artifact_name},deleteModelAIPlayground_1,AIPlayground,y,y,y,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/team/{team_name}/{artifact_type}/playground/{artifact_name},https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/team/{team_name}/{artifact_type}/spec,createModelArtifactsSpec_1,AIPlayground,y,y,n,ssa,,,camel,y,object{artifactName;artifactType;attributes;createdDate;namespace;nvcfFunctionId;...},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/spec,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_specs,create_by_team,insert,,team-scoped twin of /v2/org/{org_name}/{artifact_type}/spec (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/purge,purgeDeletedArtifact_1,Artifacts,y,y,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/purge,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,purge_by_team,exec,,kept off DELETE: same path-param signature as artifacts.delete; team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/purge (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/spec,getModelArtifactsSpec_1,AIPlayground,y,y,n,ssa,,,camel,n,object{artifactName;artifactType;attributes;createdDate;namespace;nvcfFunctionId;...},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/spec,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_specs,get_by_team,select,,team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/spec (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/spec,updateModelArtifactsSpec_1,AIPlayground,y,y,n,ssa,,,camel,y,object{artifactName;artifactType;attributes;createdDate;namespace;nvcfFunctionId;...},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/spec,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_specs,update_by_team,update,,PUT semantics unverified; team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/spec (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/spec,deleteModelArtifactsSpec_1,AIPlayground,y,y,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/team/{team_name}/{artifact_type}/{artifact_name}/spec,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_specs,delete_by_team,delete,,team-scoped twin of /v2/org/{org_name}/{artifact_type}/{artifact_name}/spec (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/malware-scan,initiateMalwareScan,MalwareScan,y,n,n,ssa,,,kebab,n,object{requestStatus},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/versions/{version_id}/malware-scan,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,malware_scan,exec,,action +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/{artifact_type}/playground,createModelAIPlayground,AIPlayground,y,n,y,ssa,,,camel,y,object{artifactName;artifactType;attributes;createdDate;namespace;nvcfFunctionId;...},,,,/v2/org/{org_name}/{artifact_type}/playground,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/{artifact_type}/playground/{artifact_name},getModelAIPlayground,AIPlayground,y,n,y,ssa,,,camel,n,object{artifactName;artifactType;attributes;createdDate;namespace;nvcfFunctionId;...},,,,/v2/org/{org_name}/{artifact_type}/playground/{artifact_name},https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/{artifact_type}/playground/{artifact_name},updateModelAIPlayground,AIPlayground,y,n,y,ssa,,,camel,y,object{artifactName;artifactType;attributes;createdDate;namespace;nvcfFunctionId;...},,,,/v2/org/{org_name}/{artifact_type}/playground/{artifact_name},https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/{artifact_type}/playground/{artifact_name},deleteModelAIPlayground,AIPlayground,y,n,y,ssa,,,camel,n,object{requestStatus},,,,/v2/org/{org_name}/{artifact_type}/playground/{artifact_name},https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org_name}/{artifact_type}/spec,createModelArtifactsSpec,AIPlayground,y,n,n,ssa,,,camel,y,object{artifactName;artifactType;attributes;createdDate;namespace;nvcfFunctionId;...},,,/v2/org/{org_name},/{artifact_type}/spec,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_specs,create,insert,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/{artifact_type}/{artifact_name}/purge,purgeDeletedArtifact,Artifacts,y,n,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/purge,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifacts,purge,exec,,kept off DELETE: same path-param signature as artifacts.delete +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org_name}/{artifact_type}/{artifact_name}/spec,getModelArtifactsSpec,AIPlayground,y,n,n,ssa,,,camel,n,object{artifactName;artifactType;attributes;createdDate;namespace;nvcfFunctionId;...},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/spec,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_specs,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org_name}/{artifact_type}/{artifact_name}/spec,updateModelArtifactsSpec,AIPlayground,y,n,n,ssa,,,camel,y,object{artifactName;artifactType;attributes;createdDate;namespace;nvcfFunctionId;...},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/spec,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_specs,update,update,,PUT semantics unverified +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org_name}/{artifact_type}/{artifact_name}/spec,deleteModelArtifactsSpec,AIPlayground,y,n,n,ssa,,,camel,n,object{requestStatus},,,/v2/org/{org_name},/{artifact_type}/{artifact_name}/spec,https://api.ngc.nvidia.com/v2/org/{org_name},private_registry,artifact_specs,delete,delete,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org}/files/clone,cloneArtifactVersionFiles,Artifact File,y,n,n,ssa,,,camel,y,object{requestStatus},,,,/v2/org/{org}/files/clone,https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org}/files/clone/status,cloneArtifactVersionFilesStatus,Artifact File,y,n,n,ssa,,,camel,y,object{filesCopied;percentageCloned;sizeCopied;totalFiles;totalSize},,,,/v2/org/{org}/files/clone/status,https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org}/files/multipart,fileUpload,Artifact File,y,n,n,ssa,,,camel,y,object{paginationInfo;partSize;requestStatus;uploadID;urls},,,,/v2/org/{org}/files/multipart,https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org}/files/multipart,completeFileUpload,Artifact File,y,n,n,ssa,,,camel,y,object{requestStatus},,,,/v2/org/{org}/files/multipart,https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org}/files/multipart,abortFileUpload,Artifact File,y,n,n,ssa,,,camel,y,object{requestStatus},,,,/v2/org/{org}/files/multipart,https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org}/team/{team}/files/clone,cloneArtifactVersionFiles_1,Artifact File,y,y,n,ssa,,,camel,y,object{requestStatus},,,,/v2/org/{org}/team/{team}/files/clone,https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org}/team/{team}/files/clone/status,cloneArtifactVersionFilesStatus_1,Artifact File,y,y,n,ssa,,,camel,y,object{filesCopied;percentageCloned;sizeCopied;totalFiles;totalSize},,,,/v2/org/{org}/team/{team}/files/clone/status,https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,post,/v2/org/{org}/team/{team}/files/multipart,fileUpload_1,Artifact File,y,y,n,ssa,,,camel,y,object{paginationInfo;partSize;requestStatus;uploadID;urls},,,,/v2/org/{org}/team/{team}/files/multipart,https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org}/team/{team}/files/multipart,completeFileUpload_1,Artifact File,y,y,n,ssa,,,camel,y,object{requestStatus},,,,/v2/org/{org}/team/{team}/files/multipart,https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,delete,/v2/org/{org}/team/{team}/files/multipart,abortFileUpload_1,Artifact File,y,y,n,ssa,,,camel,y,object{requestStatus},,,,/v2/org/{org}/team/{team}/files/multipart,https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org}/team/{team}/{type}/{name}/versions/{version}/async-clone,cloneArtifactVersionFilesAsync_1,Artifact File,y,y,n,ssa,,,camel,y,object{requestStatus;statusUrl;workflowId},,,,/v2/org/{org}/team/{team}/{type}/{name}/versions/{version}/async-clone,https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org}/team/{team}/{type}/{name}/{version}/files,downloadAllArtifactFiles_1,Artifact File,y,y,n,ssa,,page-size+page-number,kebab,n,object{filepath;paginationInfo;requestStatus;sha256_base64;urls},,,,/v2/org/{org}/team/{team}/{type}/{name}/{version}/files,https://api.ngc.nvidia.com,,,,,duplicate-endpoint-family (same listing as /versions/{version_id}/files), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,put,/v2/org/{org}/{type}/{name}/versions/{version}/async-clone,cloneArtifactVersionFilesAsync,Artifact File,y,n,n,ssa,,,camel,y,object{requestStatus;statusUrl;workflowId},,,,/v2/org/{org}/{type}/{name}/versions/{version}/async-clone,https://api.ngc.nvidia.com,,,,,data-plane-file-transfer, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/org/{org}/{type}/{name}/{version}/files,downloadAllArtifactFiles,Artifact File,y,n,n,ssa,,page-size+page-number,kebab,n,object{filepath;paginationInfo;requestStatus;sha256_base64;urls},,,,/v2/org/{org}/{type}/{name}/{version}/files,https://api.ngc.nvidia.com,,,,,duplicate-endpoint-family (same listing as /versions/{version_id}/files), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/recipes,listPublicRecipes,Resources,n,n,n,none-declared,y,page-size+page-number,kebab,n,object{paginationInfo;recipes;requestStatus},$.recipes,,,/v2/recipes,https://api.ngc.nvidia.com,catalog,recipes,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/recipes/{org_name}/{recipe_name},getRecipeInOrgAsGuest,Resources,y,n,n,none-declared,,,kebab,n,object{recipe;requestStatus},$.recipe,,,/v2/recipes/{org_name}/{recipe_name},https://api.ngc.nvidia.com,catalog,recipes,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/recipes/{org_name}/{recipe_name}/versions,listRecipeVersionsInOrgAsGuest,Resource Versions,y,n,n,none-declared,,page-size+page-number,kebab,n,object{paginationInfo;recipe;recipeVersions;requestStatus},$.recipeVersions,,,/v2/recipes/{org_name}/{recipe_name}/versions,https://api.ngc.nvidia.com,catalog,recipe_versions,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/recipes/{org_name}/{recipe_name}/versions/{version_id},getRecipeVersionInOrgAsGuest,Resource Versions,y,n,n,none-declared,,,camel,n,object{recipe;recipeVersion;requestStatus},$.recipeVersion,,,/v2/recipes/{org_name}/{recipe_name}/versions/{version_id},https://api.ngc.nvidia.com,catalog,recipe_versions,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/recipes/{org_name}/{recipe_name}/versions/{version_id}/files,listModeFilesInOrgAsGuest,Resource Version Files endpoints,y,n,n,none-declared,,page-size+page-number,kebab,n,object{paginationInfo;recipe;recipeFiles;recipeVersion;requestStatus},$.recipeFiles,,,/v2/recipes/{org_name}/{recipe_name}/versions/{version_id}/files,https://api.ngc.nvidia.com,catalog,recipe_files,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/recipes/{org_name}/{team_name}/{recipe_name},getRecipeInTeamAsGuest,Resources,y,y,n,none-declared,,,kebab,n,object{recipe;requestStatus},$.recipe,,,/v2/recipes/{org_name}/{team_name}/{recipe_name},https://api.ngc.nvidia.com,catalog,recipes,get_by_team,select,,team-scoped twin of /v2/recipes/{org_name}/{recipe_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/recipes/{org_name}/{team_name}/{recipe_name}/versions,listRecipeVersionsInTeamAsGuest,Resource Versions,y,y,n,none-declared,,page-size+page-number,kebab,n,object{paginationInfo;recipe;recipeVersions;requestStatus},$.recipeVersions,,,/v2/recipes/{org_name}/{team_name}/{recipe_name}/versions,https://api.ngc.nvidia.com,catalog,recipe_versions,list_by_team,select,,team-scoped twin of /v2/recipes/{org_name}/{recipe_name}/versions (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/recipes/{org_name}/{team_name}/{recipe_name}/versions/{version_id},getRecipeVersionInTeamAsGuest,Resource Versions,y,y,n,none-declared,,,camel,n,object{recipe;recipeVersion;requestStatus},$.recipeVersion,,,/v2/recipes/{org_name}/{team_name}/{recipe_name}/versions/{version_id},https://api.ngc.nvidia.com,catalog,recipe_versions,get_by_team,select,,team-scoped twin of /v2/recipes/{org_name}/{recipe_name}/versions/{version_id} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/recipes/{org_name}/{team_name}/{recipe_name}/versions/{version_id}/files,listModeFilesInTeamAsGuest,Resource Version Files endpoints,y,y,n,none-declared,,page-size+page-number,kebab,n,object{paginationInfo;recipe;recipeFiles;recipeVersion;requestStatus},$.recipeFiles,,,/v2/recipes/{org_name}/{team_name}/{recipe_name}/versions/{version_id}/files,https://api.ngc.nvidia.com,catalog,recipe_files,list_by_team,select,,team-scoped twin of /v2/recipes/{org_name}/{recipe_name}/versions/{version_id}/files (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/resources,listPublicRecipes_1,Resources,n,n,n,none-declared,y,page-size+page-number,kebab,n,object{paginationInfo;recipes;requestStatus},$.recipes,,,/v2/resources,https://api.ngc.nvidia.com,catalog,resources,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/resources/{org_name}/{recipe_name},getRecipeInOrgAsGuest_1,Resources,y,n,n,none-declared,,,kebab,n,object{recipe;requestStatus},$.recipe,,,/v2/resources/{org_name}/{recipe_name},https://api.ngc.nvidia.com,catalog,resources,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/resources/{org_name}/{recipe_name}/versions,listRecipeVersionsInOrgAsGuest_1,Resource Versions,y,n,n,none-declared,,page-size+page-number,kebab,n,object{paginationInfo;recipe;recipeVersions;requestStatus},$.recipeVersions,,,/v2/resources/{org_name}/{recipe_name}/versions,https://api.ngc.nvidia.com,catalog,resource_versions,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/resources/{org_name}/{recipe_name}/versions/{version_id},getRecipeVersionInOrgAsGuest_1,Resource Versions,y,n,n,none-declared,,,camel,n,object{recipe;recipeVersion;requestStatus},$.recipeVersion,,,/v2/resources/{org_name}/{recipe_name}/versions/{version_id},https://api.ngc.nvidia.com,catalog,resource_versions,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/resources/{org_name}/{recipe_name}/versions/{version_id}/files,listModeFilesInOrgAsGuest_1,Resource Version Files endpoints,y,n,n,none-declared,,page-size+page-number,kebab,n,object{paginationInfo;recipe;recipeFiles;recipeVersion;requestStatus},$.recipeFiles,,,/v2/resources/{org_name}/{recipe_name}/versions/{version_id}/files,https://api.ngc.nvidia.com,catalog,resource_files,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/resources/{org_name}/{team_name}/{recipe_name},getRecipeInTeamAsGuest_1,Resources,y,y,n,none-declared,,,kebab,n,object{recipe;requestStatus},$.recipe,,,/v2/resources/{org_name}/{team_name}/{recipe_name},https://api.ngc.nvidia.com,catalog,resources,get_by_team,select,,team-scoped twin of /v2/resources/{org_name}/{recipe_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/resources/{org_name}/{team_name}/{recipe_name}/versions,listRecipeVersionsInTeamAsGuest_1,Resource Versions,y,y,n,none-declared,,page-size+page-number,kebab,n,object{paginationInfo;recipe;recipeVersions;requestStatus},$.recipeVersions,,,/v2/resources/{org_name}/{team_name}/{recipe_name}/versions,https://api.ngc.nvidia.com,catalog,resource_versions,list_by_team,select,,team-scoped twin of /v2/resources/{org_name}/{recipe_name}/versions (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/resources/{org_name}/{team_name}/{recipe_name}/versions/{version_id},getRecipeVersionInTeamAsGuest_1,Resource Versions,y,y,n,none-declared,,,camel,n,object{recipe;recipeVersion;requestStatus},$.recipeVersion,,,/v2/resources/{org_name}/{team_name}/{recipe_name}/versions/{version_id},https://api.ngc.nvidia.com,catalog,resource_versions,get_by_team,select,,team-scoped twin of /v2/resources/{org_name}/{recipe_name}/versions/{version_id} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/resources/{org_name}/{team_name}/{recipe_name}/versions/{version_id}/files,listModeFilesInTeamAsGuest_1,Resource Version Files endpoints,y,y,n,none-declared,,page-size+page-number,kebab,n,object{paginationInfo;recipe;recipeFiles;recipeVersion;requestStatus},$.recipeFiles,,,/v2/resources/{org_name}/{team_name}/{recipe_name}/versions/{version_id}/files,https://api.ngc.nvidia.com,catalog,resource_files,list_by_team,select,,team-scoped twin of /v2/resources/{org_name}/{recipe_name}/versions/{version_id}/files (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type},listPublicArtifacts,Artifacts,n,n,n,none-declared,y,page-size+page-number,kebab,n,object{artifacts;paginationInfo;requestStatus},$.artifacts,,,/v2/{artifact_type},https://api.ngc.nvidia.com,catalog,artifacts,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/org/{org_name}/team/{team_name}/{artifact_name}/collections,listArtifactCollectionsInTeamAsGuest,Collections,y,y,n,none-declared,,page-size+page-number,kebab,n,object{collections;paginationInfo;requestStatus},,,,/v2/{artifact_type}/org/{org_name}/team/{team_name}/{artifact_name}/collections,https://api.ngc.nvidia.com,,,,,duplicate-endpoint-family (same operation under /v2/org/{org_name}/{artifact_type}/{artifact_name}/collections), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/org/{org_name}/{artifact_name}/collections,listArtifactCollectionsInOrgAsGuest,Collections,y,n,n,none-declared,,page-size+page-number,kebab,n,object{collections;paginationInfo;requestStatus},,,,/v2/{artifact_type}/org/{org_name}/{artifact_name}/collections,https://api.ngc.nvidia.com,,,,,duplicate-endpoint-family (same operation under /v2/org/{org_name}/{artifact_type}/{artifact_name}/collections), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/{org_name}/{artifact_name},getArtifactInOrgAsGuest,Artifacts,y,n,n,none-declared,,,kebab,n,object{artifact;requestStatus},$.artifact,,,/v2/{artifact_type}/{org_name}/{artifact_name},https://api.ngc.nvidia.com,catalog,artifacts,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/{org_name}/{artifact_name}/latest-version/zip,downloadAllFilesOfLatestVersionInOrgAsGuest,Artifact Version Files,y,n,y,none-declared,,,camel,n,object{requestStatus},,,,/v2/{artifact_type}/{org_name}/{artifact_name}/latest-version/zip,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/files,listArtifactFilesInOrgAsGuest,Artifact Version Files,y,n,n,none-declared,,page-size+page-number,kebab,n,object{artifact;artifactFiles;artifactVersion;paginationInfo;requestStatus},$.artifactFiles,,,/v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/files,https://api.ngc.nvidia.com,catalog,artifact_files,list,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/files/**,downloadArtifactFileInOrgAsGuest,Artifact Version Files,y,n,y,none-declared,,,camel,n,object{requestStatus},,,,/v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/files/**,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/files/**/zip/download,downloadArtifactFileInOrgAsGuestAsZip,Artifact Version Files,y,n,y,none-declared,,,camel,n,object,,,,/v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/files/**/zip/download,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/signature,getArtifactVersionSignatureAsGuest,ArtifactSigning,y,n,n,none-declared,,,camel,n,object,,,,/v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/signature,https://api.ngc.nvidia.com,,,,,non-json-response (signature bytes / redirect), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/zip,downloadAllFilesInOrgAsGuest,Artifact Version Files,y,n,y,none-declared,,,camel,n,object{requestStatus},,,,/v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/zip,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/zip/download,directDownloadAllFilesInOrgAsGuest,Artifact Version Files,y,n,y,none-declared,,,camel,n,object,,,,/v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/zip/download,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name},getChartInTeamAsGuest,Artifacts,y,y,n,none-declared,,,kebab,n,object{artifact;requestStatus},$.artifact,,,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name},https://api.ngc.nvidia.com,catalog,artifacts,get_by_team,select,,team-scoped twin of /v2/{artifact_type}/{org_name}/{artifact_name} (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/latest-version/zip,downloadAllFilesInTeamAsGuest_1,Artifact Version Files,y,y,y,none-declared,,,camel,n,object{requestStatus},,,,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/latest-version/zip,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/files,listArtifactFilesInTeamAsGuest,Artifact Version Files,y,y,n,none-declared,,page-size+page-number,kebab,n,object{artifact;artifactFiles;artifactVersion;paginationInfo;requestStatus},$.artifactFiles,,,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/files,https://api.ngc.nvidia.com,catalog,artifact_files,list_by_team,select,,team-scoped twin of /v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/files (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/files/**,downloadArtifactFileInTeamAsGuest,Artifact Version Files,y,y,y,none-declared,,,camel,n,object{requestStatus},,,,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/files/**,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/files/**/zip/download,downloadArtifactFileInTeamAsGuestAsZip,Artifact Version Files,y,y,y,none-declared,,,camel,n,object,,,,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/files/**/zip/download,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/signature,getArtifactVersionSignatureAsGuest_1,ArtifactSigning,y,y,n,none-declared,,,camel,n,object,,,,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/signature,https://api.ngc.nvidia.com,,,,,non-json-response (signature bytes / redirect), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/zip,downloadAllFilesInTeamAsGuest,Artifact Version Files,y,y,y,none-declared,,,camel,n,object{requestStatus},,,,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/zip,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/zip/download,directDownloadAllFilesInTeamAsGuest,Artifact Version Files,y,y,y,none-declared,,,camel,n,object,,,,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/zip/download,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/{org_name}/{artifact_name}/playground,getPublicModelAIPlayground,AIPlayground,y,n,y,none-declared,,,camel,n,object{artifactName;artifactType;attributes;createdDate;namespace;nvcfFunctionId;...},,,,/v2/{artifact_type}/{org_name}/{artifact_name}/playground,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/{org_name}/{artifact_name}/spec,getPublicModelArtifactsSpec,AIPlayground,y,n,n,none-declared,,,camel,n,object{artifactName;artifactType;attributes;createdDate;namespace;nvcfFunctionId;...},,,,/v2/{artifact_type}/{org_name}/{artifact_name}/spec,https://api.ngc.nvidia.com,catalog,artifact_specs,get,select,, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/playground,getPublicModelAIPlayground_1,AIPlayground,y,y,y,none-declared,,,camel,n,object{artifactName;artifactType;attributes;createdDate;namespace;nvcfFunctionId;...},,,,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/playground,https://api.ngc.nvidia.com,,,,,deprecated-inline, +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/spec,getPublicModelArtifactsSpec_1,AIPlayground,y,y,n,none-declared,,,camel,n,object{artifactName;artifactType;attributes;createdDate;namespace;nvcfFunctionId;...},,,,/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/spec,https://api.ngc.nvidia.com,catalog,artifact_specs,get_by_team,select,,team-scoped twin of /v2/{artifact_type}/{org_name}/{artifact_name}/spec (Private Registry team scoping is exempt from the 2026-09-30 schedule) +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{type}/org/{org}/team/{team}/{name}/{version}/files,downloadAllArtifactFilesAsGuest_1,Artifact File,y,y,n,none-declared,,page-size+page-number,kebab,n,object,,,,/v2/{type}/org/{org}/team/{team}/{name}/{version}/files,https://api.ngc.nvidia.com,,,,,duplicate-endpoint-family (typed/guest file listing twins), +ngc-core,ngc_models.json,https://api.ngc.nvidia.com,get,/v2/{type}/org/{org}/{name}/{version}/files,downloadAllArtifactFilesAsGuest,Artifact File,y,n,n,none-declared,,page-size+page-number,kebab,n,object,,,,/v2/{type}/org/{org}/{name}/{version}/files,https://api.ngc.nvidia.com,,,,,duplicate-endpoint-family (typed/guest file listing twins), diff --git a/provider-dev/config/provider_config.json b/provider-dev/config/provider_config.json new file mode 100644 index 0000000..94a2611 --- /dev/null +++ b/provider-dev/config/provider_config.json @@ -0,0 +1,7 @@ +{ + "auth": { + "type": "bearer", + "credentialsenvvar": "NGC_API_KEY" + }, + "snake_case_aliases": true +} diff --git a/provider-dev/config/servers.json b/provider-dev/config/servers.json new file mode 100644 index 0000000..7926d92 --- /dev/null +++ b/provider-dev/config/servers.json @@ -0,0 +1,11 @@ +{ + "hosts": { + "ngc": "https://api.ngc.nvidia.com", + "nvcf": "https://api.nvcf.nvidia.com" + }, + "orgVariable": { + "name": "org_name", + "x-stackQL-envVar": "NGC_ORG", + "description": "NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment." + } +} diff --git a/provider-dev/config/service_names.json b/provider-dev/config/service_names.json new file mode 100644 index 0000000..da8622d --- /dev/null +++ b/provider-dev/config/service_names.json @@ -0,0 +1,30 @@ +{ + "orgs": { + "title": "NVIDIA NGC Organizations", + "description": "NGC organizations, teams, users and team members, role grants, invitations and the current user (source: the NGC API definition harvested from the API explorer)." + }, + "private_registry": { + "title": "NVIDIA NGC Private Registry", + "description": "Org-scoped artifact metadata in the NGC private registry: models, resources, recipes, generic artifacts (helm charts, endpoints, blueprints, agents, playbooks, APIs, skills), versions and files, collections, shares, deployment parameters, encryption keys and workflows. Team-scoped twins are mapped as *_by_team methods (source: the Private Artifacts (Models) API definition, responses from the ngcsdk data classes)." + }, + "catalog": { + "title": "NVIDIA NGC Catalog", + "description": "The public NGC catalog: guest reads of models, resources, recipes, helm charts, collections and generic artifacts, plus the GPU and cloud service provider catalogs (no organization scope; public artifacts read without credentials)." + }, + "nvcf_functions": { + "title": "NVIDIA Cloud Functions - Functions", + "description": "NVCF functions and versions, function metadata, authorizations (function sharing grants), secrets and rate limits (source: the published NVCF OpenAPI specification; management operations served from api.ngc.nvidia.com)." + }, + "nvcf_deployments": { + "title": "NVIDIA Cloud Functions - Deployments", + "description": "NVCF deployments and GPU specifications, cluster groups and GPU inventory, registry credentials and telemetry endpoints (source: the published NVCF OpenAPI specification; served from api.ngc.nvidia.com)." + }, + "nvcf_queues": { + "title": "NVIDIA Cloud Functions - Queues", + "description": "NVCF request queue details per function and version, and queue position per request (served from api.nvcf.nvidia.com)." + }, + "nvcf_invocation": { + "title": "NVIDIA Cloud Functions - Invocation", + "description": "NVCF HTTP-polling invocation (pexec and status), assets and invocation assertion tokens (served from api.nvcf.nvidia.com)." + } +} diff --git a/provider-dev/config/spec_pin.json b/provider-dev/config/spec_pin.json new file mode 100644 index 0000000..6089a5e --- /dev/null +++ b/provider-dev/config/spec_pin.json @@ -0,0 +1,57 @@ +{ + "ngcCoreDecision": { + "outcome": "harvest-usable", + "date": "2026-07-14", + "evidence": "The explorer at docs.ngc.nvidia.com/api/ is a swagger-ui over 11 displayed per-service definitions (list extracted from its JS bundle, recorded in download_manifest.json). Two in-scope definitions are publicly retrievable and validate clean after deterministic repairs: ngc_kas.json (NGC API Documentation v3.249.6 - orgs, teams, users, invitations; repaired relative server to api.ngc.nvidia.com) and ngc_models.json (Models API - registry artifact metadata; info.version is a 0.0.1-SNAPSHOT placeholder, noted in clean_report.json). Five in-scope definitions (Org Mgmt, User IAM, Search, Metadata, Publishing) are served from *.ngc.nvidia.com hosts that resolve in DNS but refuse public connections - recorded as unreachable in download_manifest.json. Gateway probes api.ngc.nvidia.com/v3/openapi, /v3/search/api-docs and /v3/meta/api-docs return 401 unauthenticated; re-probe with a bearer key is a phase-1 task-4 follow-up.", + "fallback": "The archetype-2 fallback (derive the NGC core spec from the ngcsdk Python SDK) is NOT invoked: the harvested kas + models definitions cover the in-scope NGC core surface (orgs/users/teams and registry artifact metadata). Revisit only if the inventory shows a required resource absent from both harvested definitions and the authenticated gateway probes." + }, + "sources": { + "nvcf_openapi.json": { + "url": "https://api.nvcf.nvidia.com/v3/openapi", + "fetched": "2026-10-16", + "sha256": "bee443b36cbc3a62fcc68c265a12795423d33aafcaba0a4c9855688cfb6002f6", + "bytes": 200367, + "docsPage": "https://docs.nvidia.com/nvcf/api", + "openapi": "3.1.0", + "title": "Cloud Functions", + "specVersion": "2.261.2", + "decision": { + "canonicalSource": "The OpenAPI Spec link on the NVCF API documentation page (docsPage) resolves to this URL, served by the NVCF API itself. A companion Postman collection is referenced from the same documentation set.", + "hostSplit": "The spec declares a single server (https://api.nvcf.nvidia.com) but the NVCF documentation (cloud-functions user guide, API page) states the primary domain for function management is api.ngc.nvidia.com and the NVCF domain for function invocation and queue details is api.nvcf.nvidia.com. Hosts are carried per operation group; the per-operation assignment with evidence is recorded in endpoint_inventory.csv.", + "validation": "swagger-parser 12.1.0 validate: clean, no repairs required" + } + }, + "ngc_models.json": { + "url": "https://models.ngc.nvidia.com/v3/openapi", + "fetched": "2026-10-16", + "sha256": "05d9a1daf1ce36a3373e1ec5da025d9d3b4c76f9d2d5473f044245b328195456", + "bytes": 1414466, + "explorer": "https://docs.ngc.nvidia.com/api/", + "explorerName": "Private Artifacts (Models) API", + "openapi": "3.1.0", + "title": "Models API", + "specVersion": "0.0.1-SNAPSHOT" + }, + "ngc_kas.json": { + "url": "https://api.ngc.nvidia.com/v3/api-docs", + "fetched": "2026-10-16", + "sha256": "c92dca697fb5c1057741afec41383bd9b6a21ed6fc313e9dd21a49e713b91f38", + "bytes": 618739, + "explorer": "https://docs.ngc.nvidia.com/api/", + "explorerName": "KASv1 API (Deprecated)", + "openapi": "3.0.1", + "title": "NGC API Documentation", + "specVersion": "v3.249.17" + } + }, + "ngcSdk": { + "package": "ngcsdk", + "version": "4.36.6", + "url": "https://files.pythonhosted.org/packages/3c/cf/e4901fd5a50621d3f058d0ba4f732651a86d672fb76b7a404473b2b23ac1/ngcsdk-4.36.6-py3-none-any.whl", + "sha256": "8cf4ce3bd071b3d2e24d40f2c66abc2c2b49022b53d400a2eb9fe6018fe3f343", + "derived": "ngc_sdk_schemas.json", + "derivedSha256": "faa443aa2e6394370b18bab2a7368f8e85a72e56a4f9a87b5d1d41b5337ca3ea", + "classes": 149, + "fetched": "2026-10-16" + } +} diff --git a/provider-dev/docgen/provider-data/.gitkeep b/provider-dev/docgen/provider-data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/provider-dev/docgen/provider-data/headerContent1.txt b/provider-dev/docgen/provider-data/headerContent1.txt new file mode 100644 index 0000000..85261b7 --- /dev/null +++ b/provider-dev/docgen/provider-data/headerContent1.txt @@ -0,0 +1,24 @@ +--- +title: nvidia +hide_title: false +hide_table_of_contents: false +keywords: + - nvidia + - ngc + - nvcf + - nvidia cloud functions + - ngc private registry + - gpu inventory + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, provision and manage the NVIDIA NGC control plane using SQL - NVIDIA Cloud Functions (functions, versions, deployments, cluster groups and GPUs, sharing grants), the NGC private registry and public catalog (models, resources, helm charts, collections), and NGC organizations, teams and users +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +id: 'provider-intro' +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; + +Query, provision and operate the NVIDIA NGC control plane using SQL - NVIDIA Cloud Functions (NVCF: functions and versions, deployments and GPU specifications, cluster groups and GPU inventory, request queues, function sharing grants, HTTP-polling invocation), the NGC private registry (models, resources, recipes, helm charts and other artifacts as metadata, collections, shares, encryption keys), the public NGC catalog (artifact metadata, the GPU and cloud service provider catalogs - readable without an account) and NGC organizations, teams, users, roles and invitations. GPU capacity by cluster group, NVCF function fleet state by deployment specification, function sharing audits and registry estate reports are the queries this provider exists for. diff --git a/provider-dev/docgen/provider-data/headerContent2.txt b/provider-dev/docgen/provider-data/headerContent2.txt new file mode 100644 index 0000000..da95d18 --- /dev/null +++ b/provider-dev/docgen/provider-data/headerContent2.txt @@ -0,0 +1,280 @@ +See also: +[[` SHOW `]](https://stackql.io/docs/language-spec/show) [[` DESCRIBE `]](https://stackql.io/docs/language-spec/describe) [[` REGISTRY `]](https://stackql.io/docs/language-spec/registry) +* * * + +## Installation + +To pull the latest version of the `nvidia` provider, run the following command: + +```bash +REGISTRY PULL nvidia; +``` +> To view previous provider versions or to pull a specific provider version, see [here](https://stackql.io/docs/language-spec/registry). + +## Scope + +This provider covers the NGC control plane served from `https://api.ngc.nvidia.com` and, for queue details and invocation, `https://api.nvcf.nvidia.com`: NVIDIA Cloud Functions management (`nvcf_functions`, `nvcf_deployments`, `nvcf_queues`, `nvcf_invocation`), the NGC private registry (`private_registry`), the public catalog (`catalog`) and organization administration (`orgs`). Registry artifacts are surfaced as metadata; binary push and pull of artifact files is the registry data plane and is not mapped. Streaming and gRPC function invocation are not mapped; the HTTP-polling form is. Container images are served by the separate container registry API, whose definition NVIDIA does not publish, and are not in this provider. NVIDIA's official Terraform provider (`NVIDIA/terraform-provider-ngc`) covers NVCF functions and telemetry endpoints; the surface here is generated mechanically from the published NVCF OpenAPI document and the NGC API definitions behind the NGC API explorer (335 operations across 7 services and 82 resources, plus the `vw_gpu_capacity` view), with response schemas for the registry taken from the `ngcsdk` Python SDK's data classes. + +## Authentication + +The provider authenticates with an NGC Personal API Key as a bearer token. Generate one in the NGC console under Setup -> Generate Personal API Key, granting the service scopes you need (Private Registry for the registry service; Cloud Functions for the `nvcf_*` services - at the organization level, since a key with a team-level Cloud Functions role does not work with NVCF), export it as <CopyableCode code="NGC_API_KEY" /> (the same variable the NVIDIA Terraform provider and the NGC CLI read), and StackQL picks it up with no further configuration: + +```bash +export NGC_API_KEY='nvapi-...' +export NGC_ORG='0123456789ab' # optional, see organization scope +``` + +or using PowerShell: + +```powershell +$env:NGC_API_KEY = 'nvapi-...' +$env:NGC_ORG = '0123456789ab' +``` + +The public catalog (`nvidia.catalog`) serves public artifact metadata and the GPU catalog without any credential; the variable still has to be set for the provider to run, but any value works for those reads. A key that NGC rejects answers `403 Access Denied` on organization and registry reads and `403 Authorization failed` on NVCF reads; the NGC CLI's `ngc config set` validates a key against the same service NVIDIA uses for both. + +<details> + +<summary>Using different environment variables</summary> + +To use different environment variables (instead of the defaults), use the `--auth` flag of the `stackql` program. For example: + +```bash +AUTH='{ "nvidia": { "type": "bearer", "credentialsenvvar": "MY_OTHER_VAR" }}' +stackql shell --auth="${AUTH}" +``` + +or using PowerShell: + +```powershell +$Auth = "{ 'nvidia': { 'type': 'bearer', 'credentialsenvvar': 'MY_OTHER_VAR' }}" +stackql.exe shell --auth=$Auth +``` +</details> + +## Organization scope + +Registry and organization resources are scoped to an NGC organization, addressed by its name (`org_name` - the org id shown under Organization -> Setup, for example `0123456789ab`). `org_name` is a server variable resolved from the <CopyableCode code="NGC_ORG" /> environment variable when it is set, so queries against one organization need no `WHERE org_name` clause: + +```sql +SELECT name, display_name, framework, latest_version_id_str, updated_date +FROM nvidia.private_registry.models; +``` + +A `WHERE org_name = '...'` value always takes precedence over the environment, which is how a single session addresses several organizations. With the variable unset, `org_name` is a required parameter on every org-scoped method (visible in `SHOW METHODS`) and must be supplied per query. To discover the organizations the key can see: + +```sql +SELECT name, display_name, type FROM nvidia.orgs.orgs; +``` + +Team-scoped registry paths are exposed as `*_by_team` methods on the same resources - add `team_name` to the `WHERE` clause and the team-scoped operation is selected: + +```sql +SELECT name, updated_date +FROM nvidia.private_registry.models +WHERE team_name = 'ml-platform'; +``` + +A `JOIN` cannot fan out across organizations on `org_name` (the rows do not echo the server variable); to report across several organizations compose one statement per organization with `UNION ALL`. NVCF resources carry no organization in their paths: the key determines the organization. + +## Pagination and casing + +NGC core collections (organizations, users, teams, registry artifacts and versions) page with `page-number` and `page-size`; StackQL follows `paginationInfo.index` / `totalPages` transparently, so a `SELECT` returns every row, and `SELECT ... LIMIT n` is pushed to the wire as `page-size`. Columns are snake_case aliases of the camelCase wire properties (`displayName` -> `display_name`); query parameters are addressed in snake_case too (`resolve_labels`, `page_size`) and translated to the kebab-case wire names. `UPDATE` marshals every `SET` value as a string; `INSERT` and `EXEC` send typed JSON, and `EXEC` cannot carry a boolean. + +## Rate limit + +NVIDIA publishes no request limit for the NGC and NVCF control-plane APIs. A `429` is surfaced as an error on the statement that received it; wide statements that fan out (a `JOIN` from a list to a per-row `get`, or `UNION ALL` across organizations) issue one request per row and are the ones to pace. + +## Deprecations + +NVIDIA's NGC deprecated API reference ends team-scoped (`/teams/{team}`) paths for NVCF and sibling services on 2026-09-30; those path families are excluded from the provider. Private Registry team scoping is exempt from that schedule and stays mapped (the `*_by_team` methods). Operations NVIDIA marks deprecated inline keep their marker in the method description; those with a published replacement are not mapped. Refreshes of the provider are reviewed spec diffs against content-hash pins. + +## Example Queries + +Try the following queries using `stackql shell`, or run them from a script or CI pipeline with `stackql exec`. + +### GPU capacity by cluster group + +What GPU capacity exists, and where - one row per cluster group, GPU type and instance type the organization can deploy to, through the `vw_gpu_capacity` view: + +```sql +SELECT cluster_group, gpu, instance_type, is_default, cluster +FROM nvidia.nvcf_deployments.vw_gpu_capacity +ORDER BY cluster_group, gpu, instance_type; +``` + +The same estate straight from the `cluster_groups` resource, with `json_each` over the `gpus` column: + +```sql +SELECT cg.name AS cluster_group, + json_extract(g.value, '$.name') AS gpu, + json_extract(g.value, '$.instanceTypes[0].name') AS instance_type, + json_extract(cg.clusters, '$[0].name') AS cluster +FROM nvidia.nvcf_deployments.cluster_groups cg, + json_each(cg.gpus) g +ORDER BY cluster_group, gpu; +``` + +### NVCF function fleet state + +Every function version with its status, the container or helm chart it runs and its GPU deployment specification: + +```sql +SELECT f.name, f.status, f.version_id, + f.container_image, f.helm_chart, + json_extract(d.deployment_specifications, '$[0].gpu') AS gpu, + json_extract(d.deployment_specifications, '$[0].instanceType') AS instance_type, + json_extract(d.deployment_specifications, '$[0].minInstances') AS min_instances, + json_extract(d.deployment_specifications, '$[0].maxInstances') AS max_instances +FROM nvidia.nvcf_functions.functions f +LEFT JOIN nvidia.nvcf_deployments.deployments d + ON d.function_id = f.id AND d.function_version_id = f.version_id +WHERE f.status = 'ACTIVE'; +``` + +### Standing GPU spend + +A deployed function's minimum instance count is the GPU capacity it holds whether or not it is invoked: + +```sql +SELECT function_name, function_status, + json_extract(deployment_specifications, '$[0].gpu') AS gpu, + json_extract(deployment_specifications, '$[0].minInstances') AS min_instances +FROM nvidia.nvcf_deployments.deployments +WHERE function_id = 'fe97aa46-c8ea-4237-ba56-1212036f4d0f' + AND function_version_id = '868d2192-6819-4b53-89f5-3c7fb1df2a72'; +``` + +### Function sharing audit + +Which NVIDIA Cloud Accounts may invoke which function - the authorization grants as data, one row per function across the fleet, or for one function by id: + +```sql +SELECT id AS function_id, version_id, nca_id AS owner, + json_extract(authorized_parties, '$[*].ncaId') AS authorized_accounts +FROM nvidia.nvcf_functions.authorizations; + +SELECT id AS function_id, version_id, nca_id AS owner, + json_extract(authorized_parties, '$[*].ncaId') AS authorized_accounts +FROM nvidia.nvcf_functions.authorizations +WHERE function_id = 'fe97aa46-c8ea-4237-ba56-1212036f4d0f'; +``` + +### Registry estate report + +Models in the private registry by framework, with size and update recency (with `NGC_ORG` set): + +```sql +SELECT name, framework, precision, + latest_version_id_str AS latest_version, + latest_version_size_in_bytes / 1048576 AS latest_version_mb, + updated_date +FROM nvidia.private_registry.models +ORDER BY updated_date DESC; +``` + +### Generic registry artifacts + +Helm charts, endpoints, blueprints, agents, playbooks, APIs and skills through the generic artifacts resource (`artifact_type` takes the plural path segment: `helm-charts`, `endpoints`, `agents`, `blueprints`, `apis`, `playbooks`, `skills`; models, resources and recipes have their own resources): + +```sql +SELECT name, display_name, latest_version_id_str, updated_date +FROM nvidia.private_registry.artifacts +WHERE artifact_type = 'helm-charts'; +``` + +### Public catalog, no account needed + +Public model metadata and the GPU catalog, readable with any value in `NGC_API_KEY`: + +```sql +SELECT name, org_name, display_name, framework +FROM nvidia.catalog.models +LIMIT 20; + +SELECT display_name, pci_device_id, memory_size_gb, form_factor +FROM nvidia.catalog.gpus; +``` + +### Organization membership + +Users in the organization with their roles: + +```sql +SELECT email, name, is_active, last_login_date, + json_extract(roles, '$[0].orgRoles') AS org_roles +FROM nvidia.orgs.users; +``` + +### Provisioning a function + +Mutations use the same SQL grammar - `INSERT` creates, `UPDATE` patches, `DELETE` removes, and lifecycle actions are `EXEC` methods; body columns are the snake_case spellings of the wire properties. A function with a first version, its deployment on the smallest instance, a sharing grant and the teardown: + +```sql +-- create the function (and its first version) +INSERT INTO nvidia.nvcf_functions.functions (name, inference_url, container_image, api_body_format) +SELECT 'echo-demo', '/echo', 'nvcr.io/0123456789ab/echo:latest', 'CUSTOM'; + +-- deploy the version (the specification is a JSON array of {gpu, backend, instanceType, minInstances, maxInstances}) +INSERT INTO nvidia.nvcf_deployments.deployments (function_id, function_version_id, deployment_specifications) +SELECT 'fe97aa46-...', '868d2192-...', + '[{"gpu": "L40", "backend": "GFN", "instanceType": "GCP.GPU.L40_1x", "minInstances": 1, "maxInstances": 1}]'; + +-- share it with another NVIDIA Cloud Account +INSERT INTO nvidia.nvcf_functions.authorizations (function_id, authorized_party) +SELECT 'fe97aa46-...', '{"ncaId": "nca-partner-id"}'; + +-- undeploy, then delete the version +DELETE FROM nvidia.nvcf_deployments.deployments +WHERE function_id = 'fe97aa46-...' AND function_version_id = '868d2192-...'; + +DELETE FROM nvidia.nvcf_functions.function_versions +WHERE function_id = 'fe97aa46-...' AND function_version_id = '868d2192-...'; +``` + +### Invoking a function + +The HTTP-polling invocation form is an `EXEC` whose opaque JSON body is the function's own request, and the result is read back by request id: + +```sql +EXEC nvidia.nvcf_invocation.invocations.invoke + @function_id = 'fe97aa46-...', + @body = '{"prompt": "hello"}'; + +SELECT response +FROM nvidia.nvcf_invocation.invocation_status +WHERE request_id = '<NVCF-REQID from the invoke>'; +``` + +### Provisioning registry metadata + +A private registry model is created, patched and removed with the same verbs (`UPDATE` sends every `SET` value as a string): + +```sql +INSERT INTO nvidia.private_registry.models (name, display_name, framework, precision, application, short_description) +SELECT 'resnet50-finetuned', 'ResNet-50 fine-tuned', 'PyTorch', 'FP16', 'Classification', 'fine-tuned on internal data'; + +UPDATE nvidia.private_registry.models +SET display_name = 'ResNet-50 fine-tuned v2' +WHERE model_name = 'resnet50-finetuned'; + +DELETE FROM nvidia.private_registry.models +WHERE model_name = 'resnet50-finetuned'; +``` + +### The whole GPU estate in one statement + +NVCF cluster-group GPU types alongside the hyperscaler GPU instance inventory, using the `aws` and `google` providers: + +```sql +SELECT 'nvcf' AS platform, cluster_group AS location, gpu +FROM nvidia.nvcf_deployments.vw_gpu_capacity +UNION ALL +SELECT 'aws', region, json_extract(gpu_info, '$.Gpus[0].Name') +FROM aws.ec2.instance_types +WHERE region = 'us-east-1' AND gpu_info IS NOT NULL +UNION ALL +SELECT 'google', json_extract(zone, '$'), json_extract(accelerators, '$[0].guestAcceleratorType') +FROM google.compute.machine_types +WHERE project = 'my-project' AND zone = 'us-central1-a' AND accelerators IS NOT NULL; +``` diff --git a/provider-dev/downloaded/cleaned/ngc_kas.json b/provider-dev/downloaded/cleaned/ngc_kas.json new file mode 100644 index 0000000..e47224d --- /dev/null +++ b/provider-dev/downloaded/cleaned/ngc_kas.json @@ -0,0 +1,22576 @@ +{ + "components": { + "schemas": { + "AlternateContact": { + "description": "Org Owner Alternate Contact", + "properties": { + "email": { + "description": "Alternate contact's email.", + "maxLength": 128, + "minLength": 6, + "type": "string" + }, + "fullName": { + "description": "Full name of the alternate contact.", + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "Entitlement": { + "description": "Information about the entitlement for an org", + "properties": { + "entitlementExpirationTime": { + "description": "Entitlement expiration time", + "type": "string" + }, + "entitlementId": { + "description": "Unique entitlement identifier", + "type": "string" + }, + "entitlementState": { + "description": "Entitlement state", + "type": "string" + }, + "pecSfdcId": { + "description": "Product end customer salesforce.com Id (external customer Id). pecSfdcId is for EMS (entitlement management service) to track external paid customer", + "type": "string" + }, + "products": { + "items": { + "$ref": "#/components/schemas/EntitlementProduct" + }, + "type": "array" + } + }, + "type": "object" + }, + "EntitlementProduct": { + "description": "Information about the entitlement product", + "properties": { + "pkId": { + "description": "Unique product key identifier", + "type": "string" + }, + "productName": { + "description": "Product name. ex: FleetCommand, Batch, etc", + "type": "string" + }, + "subscriptionType": { + "description": "Subscription type", + "type": "string" + } + }, + "type": "object" + }, + "ErrorResponse": { + "properties": { + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + } + }, + "type": "object" + }, + "Health": { + "description": "object that describes health of the service", + "properties": { + "healthCode": { + "description": "Enum that describes health of the service", + "enum": [ + "UNKNOWN", + "OK", + "UNDER_MAINTENANCE", + "WARNING", + "FAILED" + ], + "type": "string" + }, + "healthCodeDescription": { + "description": "Human readable description", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "metaData": { + "items": { + "$ref": "#/components/schemas/MetaData" + }, + "type": "array" + } + }, + "type": "object" + }, + "HealthResponse": { + "description": "This API is invoked by monitoring tools, other services and infrastructure to retrieve health status the targeted service, this is unprotected method", + "properties": { + "health": { + "$ref": "#/components/schemas/Health" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + } + }, + "type": "object" + }, + "InfinityManagerSettings": { + "description": "Infinity manager setting definition", + "properties": { + "infinityManagerEnableTeamOverride": { + "description": "Allow override settings at team level. Only used in org level object", + "type": "boolean" + }, + "infinityManagerEnabled": { + "description": "Enable the infinity manager or not. Used both in org and team level object", + "type": "boolean" + } + }, + "type": "object" + }, + "MetaData": { + "properties": { + "key": { + "maxLength": 255, + "type": "string" + }, + "value": { + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "OrgCreateRequest": { + "description": "Request to create new Organization", + "properties": { + "country": { + "description": "user country", + "type": "string" + }, + "description": { + "description": "optional description of the organization", + "maxLength": 128, + "type": "string" + }, + "displayName": { + "description": "Name of the organization that will be shown to users.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "idpId": { + "description": "Identity Provider ID.", + "type": "string" + }, + "isInternal": { + "description": "Is NVIDIA internal org or not", + "type": "boolean" + }, + "name": { + "description": "Organization name", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "orgOwner": { + "$ref": "#/components/schemas/OrgOwner" + }, + "pecName": { + "description": "product end customer name for enterprise(Fleet Command) product", + "type": "string" + }, + "pecSfdcId": { + "description": "product end customer salesforce.com Id (external customer Id) for enterprise(Fleet Command) product", + "type": "string" + }, + "productEnablements": { + "items": { + "$ref": "#/components/schemas/ProductEnablement" + }, + "type": "array" + }, + "productSubscriptions": { + "description": "This should be deprecated, use productEnablements instead", + "items": { + "$ref": "#/components/schemas/ProductSubscription" + }, + "type": "array" + }, + "salesforceAccountIndustry": { + "description": "Company or organization industry", + "type": "string" + }, + "sendEmail": { + "description": "Send email to org owner or not. Default is true", + "type": "boolean" + }, + "type": { + "enum": [ + "UNKNOWN", + "CLOUD", + "ENTERPRISE", + "INDIVIDUAL" + ], + "type": "string" + } + }, + "required": [ + "orgOwner" + ], + "type": "object" + }, + "OrgCreateRequestV3": { + "description": "Request to create new Organization in v3 flow", + "properties": { + "country": { + "description": "user country", + "type": "string" + }, + "description": { + "description": "optional description of the organization", + "maxLength": 128, + "type": "string" + }, + "displayName": { + "description": "Name of the organization that will be shown to users.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "initiator": { + "description": "Identify the initiator of the org request", + "type": "string" + }, + "isInternal": { + "description": "Is NVIDIA internal org or not", + "type": "boolean" + }, + "name": { + "description": "Organization name", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "ncaId": { + "description": "NVIDIA Cloud Account Identifier", + "type": "string" + }, + "ncaNumber": { + "description": "NVIDIA Cloud Account Number", + "type": "string" + }, + "orgOwner": { + "$ref": "#/components/schemas/OrgOwnerV3" + }, + "pecName": { + "description": "product end customer name for enterprise(Fleet Command) product", + "type": "string" + }, + "pecSfdcId": { + "description": "product end customer salesforce.com Id (external customer Id) for enterprise(Fleet Command) product", + "type": "string" + }, + "productEnablements": { + "items": { + "$ref": "#/components/schemas/ProductEnablement" + }, + "type": "array" + }, + "productSubscriptions": { + "description": "This should be deprecated, use productEnablements instead", + "items": { + "$ref": "#/components/schemas/ProductSubscription" + }, + "type": "array" + }, + "protoOrgId": { + "description": "Proto org identifier", + "type": "string" + }, + "salesforceAccountIndustry": { + "description": "Company or organization industry", + "type": "string" + }, + "sendEmail": { + "description": "Send email to org owner or not. Default is true", + "type": "boolean" + }, + "type": { + "enum": [ + "UNKNOWN", + "CLOUD", + "ENTERPRISE", + "INDIVIDUAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "OrgInvitation": { + "description": "Org invitation to NGC", + "properties": { + "email": { + "description": "Email address of the user.", + "type": "string" + }, + "protoOrgId": { + "description": "Proto Org identifier.", + "type": "string" + } + }, + "type": "object" + }, + "OrgInvitationResponse": { + "description": "Invitation Validation Response.", + "properties": { + "orgInvitation": { + "$ref": "#/components/schemas/OrgInvitation" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + } + }, + "type": "object" + }, + "OrgListEntitlementResponse": { + "description": "List of all organizations which have entitlement information. Only accessible by NGC admin portal", + "properties": { + "entitlements": { + "items": { + "$ref": "#/components/schemas/OrganizationEntitlement" + }, + "type": "array" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + } + }, + "type": "object" + }, + "OrgListResponse": { + "description": "List of organizations.", + "properties": { + "organizations": { + "items": { + "$ref": "#/components/schemas/Organization" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + } + }, + "type": "object" + }, + "OrgNca": { + "description": "Org vs NcaId mapping", + "properties": { + "ncaId": { + "description": "NVIDIA Cloud Account Id", + "type": "string" + }, + "orgName": { + "description": "Organization name", + "type": "string" + } + }, + "type": "object" + }, + "OrgNcaMappingRequest": { + "description": "object to get the org and nca mapping", + "properties": { + "ncaIds": { + "description": "List of nca Ids", + "items": { + "description": "List of nca Ids", + "type": "string" + }, + "type": "array" + }, + "orgNames": { + "description": "List of org names", + "items": { + "description": "List of org names", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "OrgNcaMappingResponse": { + "description": "org and nca mapping response", + "properties": { + "orgNcaMapping": { + "items": { + "$ref": "#/components/schemas/OrgNca" + }, + "type": "array" + } + }, + "type": "object" + }, + "OrgOwner": { + "description": "Org owner.", + "properties": { + "email": { + "description": "Email address of the org owner.", + "maxLength": 128, + "type": "string" + }, + "fullName": { + "description": "Org owner name.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "lastLoginDate": { + "description": "Last time the org owner logged in.", + "type": "string" + } + }, + "required": [ + "email" + ], + "type": "object" + }, + "OrgOwnerV3": { + "description": "Org owner.", + "properties": { + "email": { + "description": "Email address of the org owner.", + "maxLength": 128, + "type": "string" + }, + "fullName": { + "description": "Org owner name.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "idpId": { + "description": "Identity Provider ID of the org owner.", + "type": "string" + }, + "starfleetId": { + "description": "Starfleet ID of the org owner.", + "type": "string" + } + }, + "required": [ + "email" + ], + "type": "object" + }, + "OrgProfileUpdateRequest": { + "description": "Object used to update Org profile information", + "properties": { + "description": { + "description": "optional description of the organization", + "maxLength": 128, + "type": "string" + }, + "displayName": { + "description": "Name of the organization that will be shown to users", + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "OrgResponse": { + "description": "info about an organizations", + "properties": { + "organizations": { + "$ref": "#/components/schemas/Organization" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + } + }, + "type": "object" + }, + "OrgUpdateRequest": { + "description": "Object used to update Org information", + "properties": { + "alternateContact": { + "$ref": "#/components/schemas/AlternateContact" + }, + "companyName": { + "description": "Name of the company", + "maxLength": 128, + "type": "string" + }, + "description": { + "description": "optional description of the organization", + "maxLength": 128, + "type": "string" + }, + "displayName": { + "description": "Name of the organization that will be shown to users.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "idpId": { + "description": "Identity Provider ID.", + "type": "string" + }, + "infinityManagerSettings": { + "$ref": "#/components/schemas/InfinityManagerSettings" + }, + "isDatasetServiceEnabled": { + "description": "Dataset Service enable flag for an organization", + "type": "boolean" + }, + "isInternal": { + "description": "Is NVIDIA internal org or not", + "type": "boolean" + }, + "isQuickStartEnabled": { + "description": "Quick Start enable flag for an organization", + "type": "boolean" + }, + "isRegistrySSEEnabled": { + "description": "If a server side encryption is enabled for private registry (models, resources)", + "type": "boolean" + }, + "isSecretsManagerServiceEnabled": { + "description": "Secrets Manager Service enable flag for an organization", + "type": "boolean" + }, + "isSecureCredentialSharingServiceEnabled": { + "description": "Secure Credential Sharing Service enable flag for an organization", + "type": "boolean" + }, + "isSeparateInfluxDbUsed": { + "description": "If a separate influx db used for an organization in Base Command Platform job telemetry", + "type": "boolean" + }, + "ngcClaimID": { + "description": "NGC Reference ID for redeem subscription flow tracking purpose. Provided from RWA only.", + "type": "string" + }, + "orgOwner": { + "$ref": "#/components/schemas/OrgOwner" + }, + "orgOwners": { + "description": "Org owners", + "items": { + "$ref": "#/components/schemas/OrgOwner" + }, + "type": "array" + }, + "pecName": { + "description": "product end customer name for enterprise(Fleet Command) product", + "type": "string" + }, + "pecSfdcId": { + "description": "product end customer salesforce.com Id (external customer Id) for enterprise(Fleet Command) product", + "type": "string" + }, + "productEnablements": { + "items": { + "$ref": "#/components/schemas/ProductEnablement" + }, + "type": "array" + }, + "productSubscriptions": { + "items": { + "$ref": "#/components/schemas/ProductSubscription" + }, + "type": "array" + }, + "repoScanSettings": { + "$ref": "#/components/schemas/RepoScanSettings" + }, + "type": { + "enum": [ + "UNKNOWN", + "CLOUD", + "ENTERPRISE", + "INDIVIDUAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "Organization": { + "description": "Information about the Organization", + "properties": { + "alternateContact": { + "$ref": "#/components/schemas/AlternateContact" + }, + "billingAccountId": { + "description": "Billing account ID.", + "type": "string" + }, + "canAddOn": { + "description": "Identifies if the org can be reused.", + "type": "boolean" + }, + "country": { + "description": "ISO country code of the organization.", + "type": "string" + }, + "description": { + "description": "Optional description of the organization.", + "type": "string" + }, + "displayName": { + "description": "Name of the organization that will be shown to users.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "id": { + "description": "Unique Id of this team.", + "format": "int64", + "type": "integer" + }, + "idpId": { + "description": "Identity Provider ID.", + "type": "string" + }, + "industry": { + "description": "Industry of the organization.", + "type": "string" + }, + "infinityManagerSettings": { + "$ref": "#/components/schemas/InfinityManagerSettings" + }, + "isDatasetServiceEnabled": { + "description": "Dataset Service enable flag for an organization", + "type": "boolean" + }, + "isInternal": { + "description": "Is NVIDIA internal org or not", + "type": "boolean" + }, + "isProto": { + "description": "Indicates when the org is a proto org", + "type": "boolean" + }, + "isQuickStartEnabled": { + "description": "Quick Start enable flag for an organization", + "type": "boolean" + }, + "isRegistrySSEEnabled": { + "description": "If a server side encryption is enabled for private registry (models, resources)", + "type": "boolean" + }, + "isSecretsManagerServiceEnabled": { + "description": "Secrets Manager Service enable flag for an organization", + "type": "boolean" + }, + "isSecureCredentialSharingServiceEnabled": { + "description": "Secure Credential Sharing Service enable flag for an organization", + "type": "boolean" + }, + "isSeparateInfluxDbUsed": { + "description": "If a separate influx db used for an organization in BCP for job telemetry", + "type": "boolean" + }, + "name": { + "description": "Organization name.", + "type": "string" + }, + "ncaAccountNumber": { + "description": "NVIDIA Cloud Account Number.", + "type": "string" + }, + "orgOwner": { + "$ref": "#/components/schemas/OrgOwner" + }, + "orgOwners": { + "description": "Org owners", + "items": { + "$ref": "#/components/schemas/OrgOwner" + }, + "type": "array" + }, + "pecSfdcId": { + "description": "Product end customer salesforce.com Id (external customer Id). pecSfdcId is for EMS (entitlement management service) to track external paid customer.", + "type": "string" + }, + "productEnablements": { + "items": { + "$ref": "#/components/schemas/ProductEnablement" + }, + "type": "array" + }, + "productSubscriptions": { + "items": { + "$ref": "#/components/schemas/ProductSubscription" + }, + "type": "array" + }, + "repoScanSettings": { + "$ref": "#/components/schemas/RepoScanSettings" + }, + "type": { + "enum": [ + "UNKNOWN", + "CLOUD", + "ENTERPRISE", + "INDIVIDUAL" + ], + "type": "string" + }, + "usersInfo": { + "$ref": "#/components/schemas/UsersInfo" + } + }, + "type": "object" + }, + "OrganizationEntitlement": { + "description": "Information about the organization entitlements", + "properties": { + "entitlements": { + "items": { + "$ref": "#/components/schemas/Entitlement" + }, + "type": "array" + }, + "orgName": { + "description": "Organization name", + "type": "string" + } + }, + "type": "object" + }, + "PackageVersion": { + "description": "Latest version information for a specific package", + "properties": { + "createdAt": { + "description": "The creation date of the version", + "type": "string" + }, + "description": { + "description": "Human readable description of the package", + "type": "string" + }, + "name": { + "description": "The name of the package", + "type": "string" + }, + "version": { + "description": "The version number", + "type": "string" + } + }, + "type": "object" + }, + "PackageVersionListResponse": { + "description": "an array of versions", + "properties": { + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + }, + "versions": { + "items": { + "$ref": "#/components/schemas/PackageVersion" + }, + "type": "array" + } + }, + "type": "object" + }, + "PaginationInfo": { + "description": "object that describes the pagination information", + "properties": { + "index": { + "description": "Page index of results", + "format": "int32", + "type": "integer" + }, + "nextPage": { + "description": "Serialized pointer to the next results page. Should be used for fetching next page. Can be empty", + "type": "string" + }, + "size": { + "description": "Number of results in page", + "format": "int32", + "type": "integer" + }, + "totalPages": { + "description": "Total number of pages available", + "format": "int64", + "type": "integer" + }, + "totalResults": { + "description": "Total number of results available", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "ProductEnablement": { + "description": "Product Enablement", + "properties": { + "expirationDate": { + "description": "Date on which the subscription expires. The subscription is invalid after this date. (yyyy-MM-dd)", + "type": "string" + }, + "poDetails": { + "items": { + "$ref": "#/components/schemas/PurchaseOrder" + }, + "type": "array" + }, + "productName": { + "description": "Product Name (NVAIE, BASE_COMMAND, REGISTRY, etc)", + "type": "string" + }, + "type": { + "description": "Product Enablement Types", + "enum": [ + "NGC_ADMIN_EVAL", + "NGC_ADMIN_NFR", + "NGC_ADMIN_COMMERCIAL", + "EMS_EVAL", + "EMS_NFR", + "EMS_COMMERCIAL", + "NGC_ADMIN_DEVELOPER" + ], + "type": "string" + } + }, + "required": [ + "productName", + "type" + ], + "type": "object" + }, + "ProductSubscription": { + "description": "Product Subscription", + "properties": { + "emsEntitlementType": { + "description": "EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL)", + "enum": [ + "EMS_EVAL", + "EMS_NFR", + "EMS_COMMERICAL", + "EMS_COMMERCIAL" + ], + "type": "string" + }, + "expirationDate": { + "description": "Date on which the subscription expires. The subscription is invalid after this date. (yyyy-MM-dd)", + "type": "string" + }, + "id": { + "description": "Unique entitlement identifier", + "type": "string" + }, + "productName": { + "description": "Product Name (NVAIE, BASE_COMMAND, FleetCommand, REGISTRY, etc).", + "type": "string" + }, + "startDate": { + "description": "Date on which the subscription becomes active. (yyyy-MM-dd)", + "type": "string" + }, + "type": { + "description": "Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, NGC_ADMIN_COMMERCIAL)", + "enum": [ + "NGC_ADMIN_EVAL", + "NGC_ADMIN_NFR", + "NGC_ADMIN_COMMERCIAL" + ], + "type": "string" + } + }, + "required": [ + "productName" + ], + "type": "object" + }, + "PurchaseOrder": { + "description": "Purchase Order.", + "properties": { + "entitlementId": { + "description": "Entitlement identifier.", + "type": "string" + }, + "pkId": { + "description": "PAK (Product Activation Key) identifier.", + "type": "string" + } + }, + "type": "object" + }, + "RepoScanSettings": { + "description": "Repo scan setting definition", + "properties": { + "repoScanAllowOverride": { + "description": "Allow org admin to override the org level repo scan settings", + "type": "boolean" + }, + "repoScanByDefault": { + "description": "Allow repository scanning by default", + "type": "boolean" + }, + "repoScanEnableNotifications": { + "description": "Sends notification to end user after scanning is done", + "type": "boolean" + }, + "repoScanEnableTeamOverride": { + "description": "Allow override settings at team level. Only used in org level object", + "type": "boolean" + }, + "repoScanEnabled": { + "description": "Enable the repository scan or not. Only used in org level object", + "type": "boolean" + }, + "repoScanShowResults": { + "description": "Allow showing scan results to CLI or UI", + "type": "boolean" + } + }, + "type": "object" + }, + "RequestStatus": { + "properties": { + "requestId": { + "type": "string" + }, + "serverId": { + "type": "string" + }, + "statusCode": { + "description": "Describes response status reported by the server.", + "enum": [ + "UNKNOWN", + "SUCCESS", + "UNAUTHORIZED", + "PAYMENT_REQUIRED", + "FORBIDDEN", + "TIMEOUT", + "EXISTS", + "NOT_FOUND", + "INTERNAL_ERROR", + "INVALID_REQUEST", + "INVALID_REQUEST_VERSION", + "INVALID_REQUEST_DATA", + "METHOD_NOT_ALLOWED", + "CONFLICT", + "UNPROCESSABLE_ENTITY", + "TOO_MANY_REQUESTS", + "INSUFFICIENT_STORAGE", + "SERVICE_UNAVAILABLE", + "PAYLOAD_TOO_LARGE", + "NOT_ACCEPTABLE", + "UNAVAILABLE_FOR_LEGAL_REASONS", + "BAD_GATEWAY", + "PRECONDITION_FAILED" + ], + "type": "string" + }, + "statusDescription": { + "type": "string" + } + }, + "type": "object" + }, + "Response": { + "properties": { + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + } + }, + "type": "object" + }, + "RoleProduct": { + "description": "Product information of the role", + "properties": { + "displayName": { + "description": "Display Name of the product from the product catalog to which this role is associated with", + "type": "string" + }, + "name": { + "description": "Name of the product from the product catalog to which this role is associated with", + "type": "string" + } + }, + "type": "object" + }, + "SearchParamFilter": { + "properties": { + "field": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "SearchParamOrderBy": { + "properties": { + "field": { + "type": "string" + }, + "value": { + "enum": [ + "ASC", + "DESC" + ], + "type": "string" + } + }, + "type": "object" + }, + "SearchParams": { + "properties": { + "fields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "filters": { + "items": { + "$ref": "#/components/schemas/SearchParamFilter" + }, + "type": "array" + }, + "groupBy": { + "type": "string" + }, + "orderBy": { + "items": { + "$ref": "#/components/schemas/SearchParamOrderBy" + }, + "type": "array" + }, + "page": { + "format": "int64", + "type": "integer" + }, + "pageSize": { + "format": "int64", + "type": "integer" + }, + "query": { + "type": "string" + }, + "queryFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "scoredSize": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "SecurityConfiguration": { + "properties": { + "additionalQueryStringParams": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "apiKey": { + "deprecated": true, + "type": "string" + }, + "apiKeyName": { + "deprecated": true, + "type": "string" + }, + "apiKeyVehicle": { + "deprecated": true, + "type": "string" + }, + "appName": { + "type": "string" + }, + "clientId": { + "type": "string" + }, + "clientSecret": { + "type": "string" + }, + "realm": { + "type": "string" + }, + "scopeSeparator": { + "type": "string" + }, + "useBasicAuthenticationWithAccessCodeGrant": { + "type": "boolean" + } + }, + "type": "object" + }, + "ServiceAccess": { + "description": "List of actions that this role allows", + "properties": { + "accessLevels": { + "description": "List of access levels that this role allows", + "items": { + "description": "List of access levels that this role allows", + "type": "string" + }, + "type": "array" + }, + "service": { + "description": "Service that this role allows", + "type": "string" + } + }, + "type": "object" + }, + "SwaggerResource": { + "properties": { + "location": { + "deprecated": true, + "type": "string" + }, + "name": { + "type": "string" + }, + "swaggerVersion": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "TargetSystemUserIdentifier": { + "description": "Information about the user who is attempting to run the job", + "properties": { + "gid": { + "description": "gid of the user on this team", + "format": "int64", + "type": "integer" + }, + "orgName": { + "description": "Org context for the job", + "type": "string" + }, + "starfleetId": { + "description": "Starfleet ID of the user creating the job.", + "type": "string" + }, + "teamName": { + "description": "Team context for the job", + "type": "string" + }, + "uid": { + "description": "uid of the user on this team", + "format": "int64", + "type": "integer" + }, + "userId": { + "description": "Unique ID of the user who submitted the job", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "Team": { + "description": "Information about the team", + "properties": { + "description": { + "description": "description of the team", + "type": "string" + }, + "id": { + "description": "unique Id of this team.", + "format": "int64", + "type": "integer" + }, + "infinityManagerSettings": { + "$ref": "#/components/schemas/InfinityManagerSettings" + }, + "isDeleted": { + "description": "indicates if the team is deleted or not", + "type": "boolean" + }, + "name": { + "description": "team name", + "type": "string" + }, + "repoScanSettings": { + "$ref": "#/components/schemas/RepoScanSettings" + } + }, + "type": "object" + }, + "TeamCreateRequest": { + "description": "Request to create new Team", + "properties": { + "description": { + "description": "description of the team", + "maxLength": 255, + "type": "string" + }, + "name": { + "description": "team name", + "maxLength": 19, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "TeamCreateResponse": { + "description": "response to an team creation request, includes unique team id", + "properties": { + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + }, + "team": { + "$ref": "#/components/schemas/Team" + } + }, + "type": "object" + }, + "TeamListResponse": { + "description": "listing of all teams", + "properties": { + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + }, + "teams": { + "items": { + "$ref": "#/components/schemas/Team" + }, + "type": "array" + } + }, + "type": "object" + }, + "TeamResponse": { + "description": "details about one team", + "properties": { + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + }, + "team": { + "$ref": "#/components/schemas/Team" + } + }, + "type": "object" + }, + "TeamUpdateRequest": { + "description": "object used to update information about existing team", + "properties": { + "description": { + "description": "description of the team", + "maxLength": 255, + "type": "string" + }, + "infinityManagerSettings": { + "$ref": "#/components/schemas/InfinityManagerSettings" + }, + "repoScanSettings": { + "$ref": "#/components/schemas/RepoScanSettings" + } + }, + "type": "object" + }, + "UiConfiguration": { + "properties": { + "apisSorter": { + "deprecated": true, + "type": "string" + }, + "deepLinking": { + "type": "boolean" + }, + "defaultModelExpandDepth": { + "format": "int32", + "type": "integer" + }, + "defaultModelRendering": { + "enum": [ + "example", + "model" + ], + "type": "string" + }, + "defaultModelsExpandDepth": { + "format": "int32", + "type": "integer" + }, + "displayOperationId": { + "type": "boolean" + }, + "displayRequestDuration": { + "type": "boolean" + }, + "docExpansion": { + "enum": [ + "none", + "list", + "full" + ], + "type": "string" + }, + "filter": { + "type": "object" + }, + "jsonEditor": { + "deprecated": true, + "type": "boolean" + }, + "maxDisplayedTags": { + "format": "int32", + "type": "integer" + }, + "operationsSorter": { + "enum": [ + "alpha", + "method" + ], + "type": "string" + }, + "showExtensions": { + "type": "boolean" + }, + "showRequestHeaders": { + "deprecated": true, + "type": "boolean" + }, + "supportedSubmitMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tagsSorter": { + "enum": [ + "alpha" + ], + "type": "string" + }, + "validatorUrl": { + "type": "string" + } + }, + "type": "object" + }, + "User": { + "description": "information about the user", + "properties": { + "clientId": { + "description": "unique auth client id of this user.", + "type": "string" + }, + "createdDate": { + "description": "Created date for this user", + "type": "string" + }, + "email": { + "description": "Email address of the user. This should be unique.", + "maxLength": 128, + "minLength": 7, + "type": "string" + }, + "firstLoginDate": { + "description": "Last time the user logged in", + "type": "string" + }, + "hasBetaAccess": { + "description": "Determines if the user has beta access", + "type": "boolean" + }, + "hasProfile": { + "description": "indicate if user profile has been completed.", + "type": "boolean" + }, + "hasSignedAODTEULA": { + "description": "indicates if user has accepted AODT End User License Agreement.", + "type": "boolean" + }, + "hasSignedAiFoundryPartnershipsEULA": { + "description": "indicates if user has accepted AI Foundry Partnerships eula", + "type": "boolean" + }, + "hasSignedBaseCommandEULA": { + "description": "indicates if user has accepted Base Command End User License Agreement.", + "type": "boolean" + }, + "hasSignedBaseCommandManagerEULA": { + "description": "indicates if user has accepted Base Command Manager End User License Agreement.", + "type": "boolean" + }, + "hasSignedBioNeMoEULA": { + "description": "indicates if user has accepted BioNeMo End User License Agreement.", + "type": "boolean" + }, + "hasSignedContainerPublishingEULA": { + "description": "indicates if user has accepted container publishing eula", + "type": "boolean" + }, + "hasSignedCuOptEULA": { + "description": "indicates if user has accepted CuOpt eula", + "type": "boolean" + }, + "hasSignedEULA": { + "description": "Determines if the user has signed the NGC End User License Agreement.", + "type": "boolean" + }, + "hasSignedEarth2EULA": { + "description": "indicates if user has accepted Earth-2 eula", + "type": "boolean" + }, + "hasSignedEgxEULA": { + "description": "[Deprecated] indicates if user has accepted EGX End User License Agreement.", + "type": "boolean" + }, + "hasSignedFleetCommandEULA": { + "description": "indicates if user has accepted Fleet Command End User License Agreement.", + "type": "boolean" + }, + "hasSignedLlmEULA": { + "description": "indicates if user has accepted LLM End User License Agreement.", + "type": "boolean" + }, + "hasSignedNVAIEEULA": { + "description": "indicates if user has accepted Fleet Command End User License Agreement.", + "type": "boolean" + }, + "hasSignedNVQCEULA": { + "description": "indicates if user has accepted Nvidia Quantum Cloud End User License Agreement.", + "type": "boolean" + }, + "hasSignedNvidiaEULA": { + "description": "Determines if the user has signed the NVIDIA End User License Agreement.", + "type": "boolean" + }, + "hasSignedOmniverseEULA": { + "description": "indicates if user has accepted Omniverse End User License Agreement.", + "type": "boolean" + }, + "hasSignedPrivacyPolicy": { + "description": "Determines if the user has signed the Privacy Policy.", + "type": "boolean" + }, + "hasSignedThirdPartyRegistryShareEULA": { + "description": "indicates if user has consented to share their registration info with other parties", + "type": "boolean" + }, + "hasSubscribedToEmail": { + "description": "Determines if the user has opted in email subscription.", + "type": "boolean" + }, + "id": { + "description": "unique Id of this user.", + "format": "int64", + "type": "integer" + }, + "idpType": { + "description": "Type of IDP, Identity Provider. Used for login.", + "enum": [ + "NVIDIA", + "ENTERPRISE" + ], + "type": "string" + }, + "isActive": { + "description": "Determines if the user is active or not.", + "type": "boolean" + }, + "isDeleted": { + "description": "Indicates if user was deleted from the system.", + "type": "boolean" + }, + "isSAML": { + "description": "Determines if the user is a SAML account or not.", + "type": "boolean" + }, + "jobPositionTitle": { + "description": "Title of user's job position.", + "type": "string" + }, + "lastLoginDate": { + "description": "Last time the user logged in", + "type": "string" + }, + "name": { + "description": "user name", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "roles": { + "description": "List of roles that the user have", + "items": { + "$ref": "#/components/schemas/UserRole" + }, + "type": "array" + }, + "starfleetId": { + "description": "unique starfleet id of this user.", + "type": "string" + }, + "storageQuota": { + "description": "Storage quota for this user.", + "items": { + "$ref": "#/components/schemas/UserStorageQuota" + }, + "type": "array" + }, + "updatedDate": { + "description": "Updated date for this user", + "type": "string" + }, + "userMetadata": { + "$ref": "#/components/schemas/UserMetadata" + }, + "verified": { + "description": "Is user's email or phone number is verified", + "type": "boolean" + } + }, + "type": "object" + }, + "UserCreateRequest": { + "description": "object used request user creation in an existing org", + "properties": { + "email": { + "description": "Email address of the user. This should be unique.", + "maxLength": 128, + "minLength": 6, + "type": "string" + }, + "emailOptIn": { + "description": "indicates if user has opt in to nvidia emails", + "type": "boolean" + }, + "eulaAccepted": { + "description": "indicates if user has accepted EULA", + "type": "boolean" + }, + "name": { + "description": "user name", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "roleType": { + "description": "DEPRECATED - use roleTypes which allows multiple roles", + "type": "string" + }, + "roleTypes": { + "description": "feature roles to give to the user", + "items": { + "description": "feature roles to give to the user", + "type": "string" + }, + "type": "array" + }, + "salesforceContactJobRole": { + "description": "user job role", + "type": "string" + }, + "userMetadata": { + "$ref": "#/components/schemas/UserMetadata" + } + }, + "required": [ + "email" + ], + "type": "object" + }, + "UserInvitation": { + "description": "User invitation to an NGC org or team", + "properties": { + "createdDate": { + "description": "Date on which the invitation was created. (ISO-8601 format)", + "type": "string" + }, + "email": { + "description": "Email address of the user.", + "maxLength": 128, + "minLength": 7, + "type": "string" + }, + "id": { + "description": "Unique invitation ID", + "type": "string" + }, + "isProcessed": { + "description": "Flag indicating if the invitation has already been accepted by the user.", + "type": "boolean" + }, + "name": { + "description": "user name", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "org": { + "description": "Org to which a user was invited.", + "type": "string" + }, + "roles": { + "description": "List of roles that the user have.", + "items": { + "description": "List of roles that the user have.", + "type": "string" + }, + "type": "array" + }, + "team": { + "description": "Team to which a user was invited.", + "type": "string" + }, + "type": { + "description": "Type of invitation. The invitation is either to an organization or to a team within organization.", + "enum": [ + "ORGANIZATION", + "TEAM" + ], + "type": "string" + } + }, + "type": "object" + }, + "UserInvitationListResponse": { + "description": "Response for a list of user invitations.", + "properties": { + "invitations": { + "description": "List of invitations.", + "items": { + "$ref": "#/components/schemas/UserInvitation" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + } + }, + "type": "object" + }, + "UserKeyResponse": { + "description": "response to a request to access key such as docker token", + "properties": { + "cloudNfsKey": { + "type": "string" + }, + "cloudNfsKeyPwd": { + "type": "string" + }, + "cloudNfsUserName": { + "type": "string" + }, + "key": { + "maxLength": 255, + "type": "string" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + } + }, + "required": [ + "key" + ], + "type": "object" + }, + "UserListResponse": { + "description": "Response for List User reponse", + "properties": { + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + }, + "users": { + "description": "information about the user", + "items": { + "$ref": "#/components/schemas/User" + }, + "type": "array" + } + }, + "type": "object" + }, + "UserMetadata": { + "description": "Metadata information about the user.", + "properties": { + "company": { + "description": "Name of the company", + "maxLength": 128, + "type": "string" + }, + "companyUrl": { + "description": "Company URL", + "type": "string" + }, + "country": { + "description": "Country of the user", + "type": "string" + }, + "firstName": { + "description": "User's first name", + "maxLength": 255, + "type": "string" + }, + "industry": { + "description": "Industry segment", + "type": "string" + }, + "interest": { + "description": "List of development areas that user has interest", + "items": { + "description": "List of development areas that user has interest", + "type": "string" + }, + "type": "array" + }, + "lastName": { + "description": "User's last name", + "maxLength": 255, + "type": "string" + }, + "role": { + "description": "Role of the user in the company", + "type": "string" + } + }, + "type": "object" + }, + "UserNcaInvitationRequest": { + "description": "NCA User invitation request", + "properties": { + "email": { + "description": "Is the user email", + "maxLength": 128, + "minLength": 7, + "type": "string" + }, + "invitationExpirationIn": { + "description": "Is the numbers of days the invitation will expire", + "format": "int32", + "type": "integer" + }, + "inviteAs": { + "description": "Nca allow users to be invited as Admin and as Member", + "enum": [ + "ADMIN", + "MEMBER" + ], + "type": "string" + }, + "message": { + "description": "Is a message to the new user", + "type": "string" + } + }, + "type": "object" + }, + "UserResponse": { + "description": " about one user", + "properties": { + "activationToken": { + "description": "token needed to activate the user to enable login and other features", + "type": "string" + }, + "ncaRole": { + "description": "NCA role", + "enum": [ + "UNKNOWN", + "ADMINISTRATOR", + "MEMBER", + "OWNER", + "PENDING" + ], + "type": "string" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + }, + "user": { + "$ref": "#/components/schemas/User" + }, + "userRoles": { + "description": "DEPRECATED - Please use roles inside user", + "items": { + "$ref": "#/components/schemas/UserRole" + }, + "type": "array" + } + }, + "type": "object" + }, + "UserRole": { + "description": "List of roles that the user have", + "properties": { + "org": { + "$ref": "#/components/schemas/Organization" + }, + "orgRoles": { + "description": "List of org role types that the user have", + "items": { + "description": "List of org role types that the user have", + "type": "string" + }, + "type": "array" + }, + "roleTypes": { + "description": "DEPRECATED - List of role types that the user have", + "items": { + "description": "DEPRECATED - List of role types that the user have", + "type": "string" + }, + "type": "array" + }, + "targetSystemUserIdentifier": { + "$ref": "#/components/schemas/TargetSystemUserIdentifier" + }, + "team": { + "$ref": "#/components/schemas/Team" + }, + "teamRoles": { + "description": "List of team role types that the user have", + "items": { + "description": "List of team role types that the user have", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "UserRoleDefinition": { + "description": "List of roles", + "properties": { + "allowedActions": { + "description": "List of actions that this role allows", + "items": { + "$ref": "#/components/schemas/ServiceAccess" + }, + "type": "array" + }, + "displayName": { + "description": "Display Name of the role", + "type": "string" + }, + "name": { + "description": "Name of the role", + "type": "string" + }, + "product": { + "$ref": "#/components/schemas/RoleProduct" + }, + "shortDisplayName": { + "description": "Short Display Name of the role", + "type": "string" + } + }, + "type": "object" + }, + "UserRoleDefinitionsResponse": { + "description": "Response containing all the roles defined in NGC and their allowed actions", + "properties": { + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + }, + "roles": { + "description": "List of roles", + "items": { + "$ref": "#/components/schemas/UserRoleDefinition" + }, + "type": "array" + } + }, + "type": "object" + }, + "UserStorageQuota": { + "description": "represents user storage quota for a given ace and available unused storage", + "properties": { + "aceId": { + "description": "id of the ace", + "format": "int64", + "type": "integer" + }, + "aceName": { + "description": "name of the ace", + "type": "string" + }, + "available": { + "description": "Available space in bytes", + "format": "int64", + "type": "integer" + }, + "datasetCount": { + "description": "Number of datasets that are a part of user's used storage", + "format": "int64", + "type": "integer" + }, + "datasetsUsage": { + "description": "Space used by datasets in bytes", + "format": "int64", + "type": "integer" + }, + "orgName": { + "description": "The org name that this user quota tied to. This is needed for analytics", + "type": "string" + }, + "quota": { + "description": "Assigned quota in bytes", + "format": "int64", + "type": "integer" + }, + "resultsetCount": { + "description": "Number of resultsets that are a part of user's used storage", + "format": "int64", + "type": "integer" + }, + "resultsetsUsage": { + "description": "Space used by resultsets in bytes", + "format": "int64", + "type": "integer" + }, + "storageClusterDescription": { + "description": "Description of this storage cluster", + "type": "string" + }, + "storageClusterName": { + "description": "Name of storage cluster", + "type": "string" + }, + "storageClusterUuid": { + "description": "Identifier to this storage cluster", + "type": "string" + }, + "workspacesCount": { + "description": "Number of workspaces that are a part of user's used storage", + "format": "int64", + "type": "integer" + }, + "workspacesUsage": { + "description": "Space used by workspaces in bytes", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "UserUpdateRequest": { + "description": "object used to request user update", + "properties": { + "hasEmailOptIn": { + "description": "indicates if user has opt in to nvidia emails", + "type": "boolean" + }, + "hasSignedAODTEULA": { + "description": "indicates if user has accepted AODT End User License Agreement.", + "type": "boolean" + }, + "hasSignedAiFoundryPartnershipsEULA": { + "description": "indicates if user has accepted AI Foundry Partnerships End User License Agreement.", + "type": "boolean" + }, + "hasSignedBaseCommandEULA": { + "description": "indicates if user has accepted Base Command EULA", + "type": "boolean" + }, + "hasSignedBaseCommandManagerEULA": { + "description": "indicates if user has accepted Base Command Manager End User License Agreement.", + "type": "boolean" + }, + "hasSignedBioNeMoEULA": { + "description": "indicates if user has accepted BioNeMo End User License Agreement.", + "type": "boolean" + }, + "hasSignedContainerPublishingEULA": { + "description": "indicates if user has accepted container publishing eula", + "type": "boolean" + }, + "hasSignedCuOptEULA": { + "description": "indicates if user has accepted CuOpt End User License Agreement.", + "type": "boolean" + }, + "hasSignedEULA": { + "description": "indicates if user has accepted NGC EULA", + "type": "boolean" + }, + "hasSignedEarth2EULA": { + "description": "indicates if user has accepted Earth-2 End User License Agreement.", + "type": "boolean" + }, + "hasSignedEgxEULA": { + "description": "indicates if user has accepted EGX EULA", + "type": "boolean" + }, + "hasSignedFleetCommandEULA": { + "description": "indicates if user has accepted Fleet Command End User License Agreement.", + "type": "boolean" + }, + "hasSignedLlmEULA": { + "description": "indicates if user has accepted LLM End User License Agreement.", + "type": "boolean" + }, + "hasSignedNVAIEEULA": { + "description": "indicates if user has accepted Fleet Command End User License Agreement.", + "type": "boolean" + }, + "hasSignedNVQCEULA": { + "description": "indicates if user has accepted Nvidia Quantum Cloud End User License Agreement.", + "type": "boolean" + }, + "hasSignedNvidiaEULA": { + "description": "indicates if user has accepted NVIDIA EULA", + "type": "boolean" + }, + "hasSignedOmniverseEULA": { + "description": "indicates if user has accepted Omniverse End User License Agreement.", + "type": "boolean" + }, + "hasSignedPrivacyPolicy": { + "description": "indicates if the user has signed the Privacy Policy", + "type": "boolean" + }, + "hasSignedThirdPartyRegistryShareEULA": { + "description": "indicates if user has consented to share their registration info with other parties", + "type": "boolean" + }, + "name": { + "description": "user name", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "userMetadata": { + "$ref": "#/components/schemas/UserMetadata" + } + }, + "type": "object" + }, + "UsersInfo": { + "description": "Users information.", + "properties": { + "totalUsers": { + "description": "Total number of users.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "ValidateOrgQueryParams": { + "description": "Object for defining params to validate org.", + "properties": { + "orgOwner": { + "$ref": "#/components/schemas/OrgOwner" + }, + "pecSfdcId": { + "description": "Product end customer salesforce.com id (external customer id) for enterprise product.", + "type": "string" + }, + "productSubscriptions": { + "description": "Product Subscriptions.", + "items": { + "$ref": "#/components/schemas/ProductSubscription" + }, + "type": "array" + } + }, + "required": [ + "orgOwner", + "pecSfdcId", + "productSubscriptions" + ], + "type": "object" + } + }, + "securitySchemes": { + "api-key": { + "description": "Authenticate your API requests by adding the API key from https://ngc.nvidia.com/setup/api-key", + "in": "header", + "name": "Authorization", + "type": "apiKey" + }, + "bearer-token": { + "bearerFormat": "JWT", + "description": "Users can issue API tokens by calling GET https://ngc.authn.nvidia.com/token?scope=group/ngc[:<org-name>[/<team-name>]].\nWhenever the user wants to access a protected route or resource, the user must get the token for that particular organization / team", + "scheme": "bearer", + "type": "http" + } + } + }, + "info": { + "description": "The NGC Web API is an interface for querying information from and enacting change in a NGC world. \n", + "license": { + "name": "Legal Notices", + "url": "https://www.nvidia.com/en-us/legal_info" + }, + "title": "NGC API Documentation", + "version": "v3.249.17" + }, + "openapi": "3.0.1", + "paths": { + "/health": { + "get": { + "description": "Used to check the health status of the web service only", + "operationId": "status", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HealthResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Web Service Health Status", + "tags": [ + "Services" + ] + } + }, + "/health/all": { + "get": { + "description": "Used to get health status of all services", + "operationId": "statusDetails", + "parameters": [ + { + "description": "boolean value to indicating to show details or not", + "in": "query", + "name": "showDetails", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + }, + { + "description": "secret value that validates the call in order to show details", + "in": "query", + "name": "secret", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HealthResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "All Service Health Status", + "tags": [ + "Services" + ] + } + }, + "/public-keys": { + "get": { + "description": "Used to check the health status of the web service only", + "operationId": "getPublicKey", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Web Service Health Status", + "tags": [ + "Services" + ] + } + }, + "/roles": { + "get": { + "description": "List of roles in NGC and their scopes", + "operationId": "getRoles", + "parameters": [ + { + "description": "flag indicate if hidden roles should be included", + "in": "query", + "name": "show-hidden", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserRoleDefinitionsResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "NGC Roles", + "tags": [ + "Services" + ] + } + }, + "/swagger-resources": { + "delete": { + "operationId": "swaggerResources_delete", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/SwaggerResource" + }, + "type": "array" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "get": { + "operationId": "swaggerResources_get", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/SwaggerResource" + }, + "type": "array" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "head": { + "operationId": "swaggerResources_head", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/SwaggerResource" + }, + "type": "array" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "options": { + "operationId": "swaggerResources_options", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/SwaggerResource" + }, + "type": "array" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "patch": { + "operationId": "swaggerResources_patch", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/SwaggerResource" + }, + "type": "array" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "post": { + "operationId": "swaggerResources_post", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/SwaggerResource" + }, + "type": "array" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "put": { + "operationId": "swaggerResources_put", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/SwaggerResource" + }, + "type": "array" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + } + }, + "/swagger-resources/configuration/security": { + "delete": { + "operationId": "securityConfiguration_delete", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SecurityConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "get": { + "operationId": "securityConfiguration_get", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SecurityConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "head": { + "operationId": "securityConfiguration_head", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SecurityConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "options": { + "operationId": "securityConfiguration_options", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SecurityConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "patch": { + "operationId": "securityConfiguration_patch", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SecurityConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "post": { + "operationId": "securityConfiguration_post", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SecurityConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "put": { + "operationId": "securityConfiguration_put", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SecurityConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + } + }, + "/swagger-resources/configuration/ui": { + "delete": { + "operationId": "uiConfiguration_delete", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/UiConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "get": { + "operationId": "uiConfiguration_get", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/UiConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "head": { + "operationId": "uiConfiguration_head", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/UiConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "options": { + "operationId": "uiConfiguration_options", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/UiConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "patch": { + "operationId": "uiConfiguration_patch", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/UiConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "post": { + "operationId": "uiConfiguration_post", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/UiConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "put": { + "operationId": "uiConfiguration_put", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/UiConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + } + }, + "/v2/admin/backfill-orgs-to-kratos": { + "post": { + "description": "Backfill Orgs to Kratos", + "operationId": "backfillOrgsToKratos", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Backfill Orgs to Kratos", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v2/admin/entitlements": { + "get": { + "description": "List all organizations with entitlements. (SuperAdmin, ECM and Billing privileges required)", + "operationId": "listOrganizationsWithEntitlement_1", + "parameters": [ + { + "description": "filter by product-name", + "in": "query", + "name": "product-name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "get is paid subscription entitlements", + "in": "query", + "name": "is-paid-subscription", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgListEntitlementResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List Organizations with Entitlements", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v2/admin/org": { + "get": { + "description": "List all organizations. (SuperAdmin privileges required)", + "operationId": "listOrganizations_2", + "parameters": [ + { + "description": "The page number of result", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "The page size of result", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "Org name to search", + "in": "query", + "name": "org-name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Org description to search", + "in": "query", + "name": "org-desc", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Org Type to search", + "in": "query", + "name": "org-type", + "required": false, + "schema": { + "enum": [ + "UNKNOWN", + "CLOUD", + "ENTERPRISE", + "INDIVIDUAL" + ], + "type": "string" + } + }, + { + "description": "PEC ID to search", + "in": "query", + "name": "pec-id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List Organizations", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v2/admin/org/validate": { + "get": { + "description": "List all organizations that match the validate org params", + "operationId": "listValidatedOrganizations", + "parameters": [ + { + "description": "Validate Organization Parameters", + "in": "query", + "name": "q", + "required": true, + "schema": { + "$ref": "#/components/schemas/ValidateOrgQueryParams" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List Validated Organizations", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v2/admin/org/{org_name}": { + "get": { + "description": "Get organization info. (SuperAdmin privileges required)", + "operationId": "getOrg_1", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get Organization", + "tags": [ + "Super Admin Org Controller" + ] + }, + "patch": { + "deprecated": true, + "description": "Update org information and settings. Superadmin privileges required", + "operationId": "updateOrg_1", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Update Organization", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v2/admin/org/{org_name}/entitlements": { + "get": { + "description": "List all organizations with entitlements. (SuperAdmin, ECM and Billing privileges required)", + "operationId": "listOrganizationsWithEntitlement", + "parameters": [ + { + "description": "filter by org-name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "filter by product-name", + "in": "query", + "name": "product-name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "get is paid subscription entitlements", + "in": "query", + "name": "is-paid-subscription", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgListEntitlementResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List Organizations with Entitlements", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v2/admin/org/{org_name}/org-owner-backfill": { + "post": { + "description": "Backfill the org owner for users", + "operationId": "backfillOrgOwnerByOrg", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Backfill the org owner for users", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/org/{org_name}/team/{team_name}/users": { + "post": { + "description": "Create an Org-Admin User (Super Admin privileges required)", + "operationId": "createUserInTeam_1", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Boolean to send email notification, default is true", + "in": "query", + "name": "send-email", + "required": false, + "schema": { + "default": true, + "type": "boolean" + } + }, + { + "description": "If the IDP ID is provided then it is used instead of the one configured for the organization", + "in": "query", + "name": "idp-id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Create User", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/org/{org_name}/team/{team_name}/users/{id}": { + "post": { + "deprecated": true, + "description": "Add existing User to an Team", + "operationId": "addUserToTeam_1", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Add existing User to an Team", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/org/{org_name}/team/{team_name}/users/{id}/add-role": { + "patch": { + "deprecated": true, + "description": "Add user role in team.", + "operationId": "addUserRole_3", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Add user role in team", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/org/{org_name}/team/{team_name}/users/{id}/remove-role": { + "delete": { + "deprecated": true, + "description": "Remove user role in team (if the last role is removed, the user is removed from the team).", + "operationId": "removeUserRole_3", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Remove user role in team", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/org/{org_name}/teams": { + "get": { + "description": "List all Teams", + "operationId": "listTeams_1", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The page number of result", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "The page size of result", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "Team name to search", + "in": "query", + "name": "team-name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Get all team that has scan by default only", + "in": "query", + "name": "scan-by-default", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Get all team that has scan allow override only", + "in": "query", + "name": "scan-allow-override", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Get all team that has scan show results only", + "in": "query", + "name": "scan-show-results", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/TeamListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List Teams", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v2/admin/org/{org_name}/teams/{team_name}": { + "get": { + "description": "Get one team", + "operationId": "getTeam_1", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/TeamResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get Team", + "tags": [ + "Super Admin Org Controller" + ] + }, + "patch": { + "description": "Edit a Team", + "operationId": "editTeam_1", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TeamUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/TeamResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Edit Team", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v2/admin/org/{org_name}/users": { + "post": { + "description": "Create an user in an Organization (Super Admin privileges required)", + "operationId": "createUserInOrg_1", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Boolean to send email notification, default is true", + "in": "query", + "name": "send-email", + "required": false, + "schema": { + "default": true, + "type": "boolean" + } + }, + { + "description": "If the IDP ID is provided then it is used instead of the one configured for the organization", + "in": "query", + "name": "idp-id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Create User", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/org/{org_name}/users/{id}": { + "delete": { + "description": "Remove User from org.", + "operationId": "removeUserFromOrg_2", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Remove User from org", + "tags": [ + "Super Admin User Controller" + ] + }, + "post": { + "deprecated": true, + "description": "Add existing User to an Org", + "operationId": "addUserToOrg", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Add existing User to an Org", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/org/{org_name}/users/{id}/add-role": { + "patch": { + "deprecated": true, + "description": "Add user role in org.", + "operationId": "addUserRole_2", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Add user role in org", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/org/{org_name}/users/{id}/remove-role": { + "delete": { + "deprecated": true, + "description": "Remove user role in org (if the last role is removed, the user is removed from the org and org teams).", + "operationId": "removeUserRole_2", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Remove user role in org", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/org/{org_name}/users/{id}/update-role": { + "patch": { + "deprecated": true, + "description": "Update User Role in org", + "operationId": "updateUserRole_2", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Update User Role in org", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/orgs": { + "post": { + "description": "Create a new organization. (SuperAdmin privileges required)", + "operationId": "createOrganization", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Create Organization", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v2/admin/orgs/offboarded": { + "get": { + "description": "List all Offboarded organizations.", + "operationId": "listOffboardedOrgs", + "parameters": [ + { + "description": "The page number of result", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "The page size of result", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List Offboarded Organizations", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v2/admin/users/invite": { + "patch": { + "deprecated": true, + "description": "Invite an existing user again (Super Admin privileges required)", + "operationId": "emailInviteToUser", + "parameters": [ + { + "in": "query", + "name": "email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Boolean to send email notification, default is true", + "in": "query", + "name": "send-email", + "required": false, + "schema": { + "default": true, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Re invite user", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/users/me": { + "get": { + "description": "What am I? Admin version, shows more info than regular endpoint", + "operationId": "whoAmI_1", + "parameters": [ + { + "in": "query", + "name": "org-name", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Who am I? Admin version", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/users/{id}": { + "get": { + "description": "Get User details", + "operationId": "getUserDetails", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get User Information", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/users/{id}/crm-sync": { + "post": { + "description": "Sync crm id with user email (Super Admin privileges required)", + "operationId": "syncCrmUser", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Sync crm id with user email", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/users/{id}/migrate-deprecated-roles": { + "post": { + "description": "Migrate User Deprecated Roles.", + "operationId": "migrateUserDeprecatedRoles", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Migrate User Deprecated Roles", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/users/{user_id}/org-owner-backfill": { + "post": { + "description": "Backfill the org owner for individual users", + "operationId": "backfillOrgOwnerByUser", + "parameters": [ + { + "in": "path", + "name": "user_id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Backfill the org owner for individual users", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/org/{org_name}/starfleetIds/{starfleet_id}": { + "get": { + "description": "Get User details in org by starfleet Id", + "operationId": "getUserInOrg_1", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "starfleet_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get User in org", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/starfleetIds/{starfleet_id}": { + "get": { + "description": "Get User details in team by starfleet Id", + "operationId": "getUserInTeamByStarfleetId", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "starfleet_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get User in team", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/users": { + "get": { + "description": "Get list of users in team. (User Admin in team privileges required)", + "operationId": "listUsersInTeam", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The page number of result", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "The page size of result", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "User Search Parameters. Only 'filters' and 'orderBy' for 'name' and 'email' are implemented", + "in": "query", + "name": "q", + "required": false, + "schema": { + "$ref": "#/components/schemas/SearchParams" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List users in team", + "tags": [ + "Users Management" + ] + }, + "post": { + "description": "Creates a User and add them to a team within the org.", + "operationId": "createUserInTeam", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "send-email", + "required": false, + "schema": { + "default": true, + "type": "boolean" + } + }, + { + "description": "If the IDP ID is provided then it is used instead of the one configured for the organization", + "in": "query", + "name": "idp-id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Creates a User in team", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/users/invitations": { + "get": { + "description": "List invitations in a team. (Team User Admin privileges required)", + "operationId": "listInvitationsForUserInTeam", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The page number of result", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "The page size of result", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "in": "query", + "name": "orderBy", + "required": false, + "schema": { + "enum": [ + "NAME_ASC", + "NAME_DESC" + ], + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "User Search Parameters", + "in": "query", + "name": "q", + "required": false, + "schema": { + "$ref": "#/components/schemas/SearchParams" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserInvitationListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List user invitations in a team.", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/users/invitations/{id}": { + "delete": { + "description": "Delete a specific invitation in an team. (Org Admin or Team User Admin privileges required)", + "operationId": "deleteUserInvitationInTeam", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Delete a specific invitation in a team.", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/users/invitations/{id}/resend-invitation-email": { + "get": { + "description": "Resend email of a specific invitation in a team (Org or Team User Admin privileges required).", + "operationId": "resendUserInvitationEmailInTeam", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Resend email of a specific invitation in a team.", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/users/{id}": { + "delete": { + "description": "Removes User from team. (Org Admin or Team Admin Privileges Required).", + "operationId": "removeUserFromTeam_1", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Removes User from team", + "tags": [ + "Users Management" + ] + }, + "get": { + "description": "Get User details within team context", + "operationId": "getUserInTeam", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "If the IDP ID is provided then it is used instead of the one configured for the organization. If no IDP is configured for the organization, then IDP is guessed based on the email domain", + "in": "query", + "name": "idp-id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get User in team", + "tags": [ + "Users Management" + ] + }, + "post": { + "description": "Add a User to team", + "operationId": "addUserToTeam", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Add a User to team", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/users/{id}/add-role": { + "patch": { + "deprecated": true, + "description": "Add User Role in team.", + "operationId": "addUserRole_1", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Add User Role in team", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/users/{id}/remove-role": { + "delete": { + "deprecated": true, + "description": "Remove User Role in team (if the last role is removed, the user is removed from the team).", + "operationId": "removeUserRole_1", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Remove User Role in team", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/users/{id}/update-role": { + "patch": { + "deprecated": true, + "description": "Update User Role in team", + "operationId": "updateUserRole_1", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Update User Role in team", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org_name}/teams": { + "get": { + "description": "List all Teams", + "operationId": "listTeams", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The page number of result", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "The page size of result", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TeamListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List Teams", + "tags": [ + "Teams" + ] + }, + "post": { + "description": "Create team in org. (Org Admin Privileges Required)", + "operationId": "createTeam", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TeamCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TeamCreateResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Create Team", + "tags": [ + "Teams" + ] + } + }, + "/v2/org/{org_name}/teams/{team_name}": { + "delete": { + "description": "Delete a Team", + "operationId": "deleteTeam", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Delete Team", + "tags": [ + "Teams" + ] + }, + "get": { + "description": "Get Team by name", + "operationId": "getTeam", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TeamResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get Team", + "tags": [ + "Teams" + ] + }, + "patch": { + "description": "Edit a Team", + "operationId": "editTeam", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TeamUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TeamResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Edit Team", + "tags": [ + "Teams" + ] + } + }, + "/v2/org/{org_name}/users": { + "get": { + "description": "Get list of users in organization. (User Admin in org privileges required)", + "operationId": "listUsersInOrg", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Name of team to exclude members from", + "in": "query", + "name": "exclude-from-team", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "The page number of result", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "The page size of result", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "User Search Parameters. Only 'filters' and 'orderBy' for 'name' and 'email' are implemented", + "in": "query", + "name": "q", + "required": false, + "schema": { + "$ref": "#/components/schemas/SearchParams" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List users In org", + "tags": [ + "Users Management" + ] + }, + "post": { + "description": "Creates a User", + "operationId": "createUserInOrg", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "send-email", + "required": false, + "schema": { + "default": true, + "type": "boolean" + } + }, + { + "description": "If the IDP ID is provided then it is used instead of the one configured for the organization", + "in": "query", + "name": "idp-id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Creates a User in org", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org_name}/users/invitations": { + "get": { + "description": "List invitations in an org. (Org User Admin privileges required)", + "operationId": "listInvitationsForUserInOrg", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The page number of result", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "The page size of result", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "in": "query", + "name": "orderBy", + "required": false, + "schema": { + "enum": [ + "NAME_ASC", + "NAME_DESC" + ], + "type": "string" + } + }, + { + "description": "User Search Parameters", + "in": "query", + "name": "q", + "required": false, + "schema": { + "$ref": "#/components/schemas/SearchParams" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserInvitationListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List user invitations in an org.", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org_name}/users/invitations/{id}": { + "delete": { + "description": "Delete a specific invitation in an org. (Org User Admin privileges required)", + "operationId": "deleteUserInvitationInOrg", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Delete a specific invitation in an org.", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org_name}/users/invitations/{id}/resend-invitation-email": { + "get": { + "description": "Resend email of a specific invitation in an org (Org User Admin privileges required).", + "operationId": "resendUserInvitationEmailInOrg", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Resend email of a specific invitation in an org.", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org_name}/users/{id}": { + "delete": { + "description": "Remove User from org. (User Admin Privileges Required)", + "operationId": "removeUserFromOrg_1", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "If anonymize is true, then org owner permission is required.", + "in": "query", + "name": "anonymize", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Remove User from org", + "tags": [ + "Users Management" + ] + }, + "get": { + "description": "Get User details in org context", + "operationId": "getUserInOrg", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "If the IDP ID is provided then it is used instead of the one configured for the organization. If no IDP is configured for the organization, then IDP is guessed based on the email domain", + "in": "query", + "name": "idp-id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get User in org", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org_name}/users/{id}/add-role": { + "patch": { + "deprecated": true, + "description": "Add User Role in org.", + "operationId": "addUserRole", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Add User Role in org", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org_name}/users/{id}/invite": { + "get": { + "deprecated": true, + "description": "Create a new invitation and send email to a user. This is used when a previously sent invite email expired. (Org Admin privileges required)", + "operationId": "emailInviteToUser_1", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "send-email", + "required": false, + "schema": { + "default": true, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Create a new Invitation and send Email to User", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org_name}/users/{id}/remove-role": { + "delete": { + "deprecated": true, + "description": "Remove User Role in org (if the last role is removed, the user is removed from the org and org teams).", + "operationId": "removeUserRole", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Remove User Role in org", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org_name}/users/{id}/update-role": { + "patch": { + "deprecated": true, + "description": "Update User Role in org", + "operationId": "updateUserRole", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Update User Role in org", + "tags": [ + "Users Management" + ] + } + }, + "/v2/orgs": { + "get": { + "description": "List all organizations of the user", + "operationId": "listOrganizations_1", + "parameters": [ + { + "description": "The page number of result", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "The page size of result", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List Organizations", + "tags": [ + "Orgs" + ] + } + }, + "/v2/orgs/{org_name}": { + "get": { + "description": "Get organization information", + "operationId": "getOrganization", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get Organization", + "tags": [ + "Orgs" + ] + }, + "patch": { + "description": "Update organization information", + "operationId": "updateOrganization", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgProfileUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Update Organization", + "tags": [ + "Orgs" + ] + } + }, + "/v2/ping": { + "head": { + "description": "A lightweight ping call (heartbeat). This would allow UI to show different overlays in case there is any problem with the subscription or if the user has not accepted TOU", + "operationId": "headPing", + "parameters": [], + "responses": { + "200": { + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Head ping (heartbeat)", + "tags": [ + "Users Management" + ] + } + }, + "/v2/users/me": { + "get": { + "description": "What am I?", + "operationId": "whoAmI", + "parameters": [ + { + "in": "query", + "name": "org-name", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Who am I?", + "tags": [ + "Users Management" + ] + }, + "patch": { + "description": "Edit current user profile", + "operationId": "editUserProfile", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Edit current user profile", + "tags": [ + "Users Management" + ] + } + }, + "/v2/users/me/api-key": { + "post": { + "description": "Generate API Key", + "operationId": "generateUserApiKey", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserKeyResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Generate API Key", + "tags": [ + "Users Management" + ] + } + }, + "/v3/admin/org": { + "get": { + "description": "List all organizations. (SuperAdmin privileges required)", + "operationId": "listOrganizations", + "parameters": [ + { + "description": "The page number of result", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "The page size of result", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "Org name to search", + "in": "query", + "name": "org-name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Org description to search", + "in": "query", + "name": "org-desc", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Org Type to search", + "in": "query", + "name": "org-type", + "required": false, + "schema": { + "enum": [ + "UNKNOWN", + "CLOUD", + "ENTERPRISE", + "INDIVIDUAL" + ], + "type": "string" + } + }, + { + "description": "PEC ID to search", + "in": "query", + "name": "pec-id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List Organizations and Proto Organizations", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v3/admin/org/{org_name}": { + "get": { + "description": "Get organization or proto organization info. (SuperAdmin privileges required)", + "operationId": "getOrg", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The list of fields to hide from the response", + "in": "query", + "name": "exclude-fields", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get Organization or Proto Organization", + "tags": [ + "Super Admin Org Controller" + ] + }, + "patch": { + "description": "Update org information and settings. Superadmin privileges required", + "operationId": "updateOrg", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Update Organization", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v3/admin/orgs": { + "post": { + "description": "OrgCreateRequest is used to create the organization or when no nca_id is provided upfront, the OrgCreateRequest is stored as proto org, and proto org flow initiates (SuperAdmin privileges required)", + "operationId": "createProtoOrganization", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgCreateRequestV3" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Creates organization from scratch or proto organization", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v3/admin/orgs/ncaIds": { + "post": { + "description": "Get Organization by NCA ID or Org Name. (SuperAdmin privileges required)", + "operationId": "getMapping", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgNcaMappingRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgNcaMappingResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get Organization by NCA ID or Org Name", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v3/orgs": { + "post": { + "description": "Create a new organization based on the org info provided in the request.", + "operationId": "createOrganizationFromScratch", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgCreateRequestV3" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Create Organization from Scratch", + "tags": [ + "Orgs" + ] + } + }, + "/v3/orgs/proto-org": { + "post": { + "description": "Create a new organization based on the org info retrieved from the ProtoOrg.", + "operationId": "createOrganizationFromProtoOrg", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgCreateRequestV3" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Create Organization from ProtoOrg", + "tags": [ + "Orgs" + ] + } + }, + "/v3/orgs/proto-org/validate": { + "get": { + "description": "Validate org creation from proto org", + "operationId": "protoOrgInvitationValidate", + "parameters": [ + { + "description": "JWT that contains org owner email and proto org identifier", + "in": "query", + "name": "invitation_token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgInvitationResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Validate org creation invite", + "tags": [ + "Orgs" + ] + } + }, + "/v3/orgs/{org_name}/teams/{team_name}/users/nca-invitations": { + "post": { + "description": "Invites and creates a User in team", + "operationId": "inviteUserToNcaInTeam", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserNcaInvitationRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Invite User to NCA (team version)", + "tags": [ + "Users Management" + ] + } + }, + "/v3/orgs/{org_name}/teams/{team_name}/users/{id}": { + "delete": { + "description": "Remove User from team.", + "operationId": "removeUserFromTeam", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "If anonymize is true, then org owner permission is required.", + "in": "query", + "name": "anonymize", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Remove User from team", + "tags": [ + "Users Management" + ] + } + }, + "/v3/orgs/{org_name}/teams/{team_name}/users/{user_email_or_id}": { + "get": { + "description": "Get info and role/invitation in a team by email or id", + "operationId": "listUserRolesInOrgTeam", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user_email_or_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get user in a team by email or id.", + "tags": [ + "Users Management" + ] + } + }, + "/v3/orgs/{org_name}/teams/{team_name}/users/{user_email_or_id}/add-role": { + "patch": { + "description": "Invite if user does not exist, otherwise add role in team", + "operationId": "addRoleOrInviteUserToTeam", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user_email_or_id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": true, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Invite user or add role in team", + "tags": [ + "Users Management" + ] + } + }, + "/v3/orgs/{org_name}/teams/{team_name}/users/{user_email_or_id}/remove-role": { + "delete": { + "description": "Remove role in team if user exists, otherwise remove invitation", + "operationId": "removeRoleOrInvitationInTeam", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user_email_or_id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Remove role or invitation in team", + "tags": [ + "Users Management" + ] + } + }, + "/v3/orgs/{org_name}/users/nca-invitations": { + "post": { + "description": "Invites and creates a User in org", + "operationId": "inviteUserToNcaInOrg", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserNcaInvitationRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Invite User to NCA (org version)", + "tags": [ + "Users Management" + ] + } + }, + "/v3/orgs/{org_name}/users/{id}": { + "delete": { + "description": "Remove User from org.", + "operationId": "removeUserFromOrg", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "If anonymize is true, then org owner permission is required.", + "in": "query", + "name": "anonymize", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Remove User from org", + "tags": [ + "Users Management" + ] + } + }, + "/v3/orgs/{org_name}/users/{user_email_or_id}": { + "get": { + "description": "Get info and role/invitation in an org by email or id", + "operationId": "listUserRolesInOrg", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user_email_or_id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get user in an org by email or id.", + "tags": [ + "Users Management" + ] + } + }, + "/v3/orgs/{org_name}/users/{user_email_or_id}/add-role": { + "patch": { + "description": "Invite if user does not exist, otherwise add role in org", + "operationId": "addRoleOrInviteUserToOrg", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user_email_or_id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": true, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Invite user or add role in org", + "tags": [ + "Users Management" + ] + } + }, + "/v3/orgs/{org_name}/users/{user_email_or_id}/remove-role": { + "delete": { + "description": "Remove role in org if user exists, otherwise remove invitation", + "operationId": "removeRoleOrInvitationInOrg", + "parameters": [ + { + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user_email_or_id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Remove role or invitation in org", + "tags": [ + "Users Management" + ] + } + }, + "/version": { + "get": { + "description": "Used to get the latest version number of a given package.", + "operationId": "getLatestPackageVersion", + "parameters": [ + { + "description": "repository of package", + "in": "query", + "name": "repo", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "name of package", + "in": "query", + "name": "package", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVersionListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Version Number", + "tags": [ + "Services" + ] + } + } + }, + "security": [ + { + "api-key": [] + }, + { + "bearer-token": [] + } + ], + "servers": [ + { + "url": "https://api.ngc.nvidia.com" + } + ], + "tags": [ + { + "name": "Services" + }, + { + "name": "Orgs" + }, + { + "name": "Super Admin User Controller" + }, + { + "name": "Super Admin Org Controller" + }, + { + "description": "Team Operations", + "name": "Teams" + }, + { + "description": "Operation to manager users", + "name": "Users Management" + } + ] +} diff --git a/provider-dev/downloaded/cleaned/ngc_models.json b/provider-dev/downloaded/cleaned/ngc_models.json new file mode 100644 index 0000000..3c3cd04 --- /dev/null +++ b/provider-dev/downloaded/cleaned/ngc_models.json @@ -0,0 +1,52625 @@ +{ + "components": { + "schemas": { + "AIPlaygroundCreateRequest": { + "description": "Request to create a new AI Playground config", + "properties": { + "artifactName": { + "description": "Unique name of the model", + "type": "string" + }, + "attributes": { + "description": "Metadata json string", + "type": "string" + }, + "nvcfFunctionId": { + "description": "NVCF function id for the model playground", + "type": "string" + }, + "nvcfInferencePath": { + "description": "NVCF inference path (invocation route) for the model playground", + "type": "string" + }, + "openAPISpec": { + "description": "OpenAPI specification for this model", + "type": "string" + } + }, + "required": [ + "artifactName", + "nvcfFunctionId" + ], + "type": "object" + }, + "AIPlaygroundResponse": { + "description": "Request to fetch an AI Playground config", + "properties": { + "artifactName": { + "description": "Unique name of the model", + "type": "string" + }, + "artifactType": { + "description": "ArtifactTypeEnum of the artifact", + "type": "string" + }, + "attributes": { + "description": "Metadata json string", + "type": "string" + }, + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "namespace": { + "description": "org/team of the model", + "type": "string" + }, + "nvcfFunctionId": { + "description": "NVCF function id for the model playground", + "type": "string" + }, + "nvcfInferencePath": { + "description": "NVCF inference path (invocation route) for the model playground", + "type": "string" + }, + "openAPISpec": { + "description": "OpenAPI specification for this model", + "type": "string" + }, + "updatedDate": { + "description": "Updated date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + } + }, + "type": "object" + }, + "AIPlaygroundUpdateRequest": { + "description": "Request to update an AI Playground config", + "properties": { + "attributes": { + "description": "Metadata json string", + "type": "string" + }, + "nvcfFunctionId": { + "description": "NVCF function id for the model playground", + "type": "string" + }, + "nvcfInferencePath": { + "description": "NVCF inference path (invocation route) for the model playground", + "type": "string" + }, + "openAPISpec": { + "description": "OpenAPI specification for this model", + "type": "string" + } + }, + "type": "object" + }, + "AcceptArtifactLicenseRequest": { + "description": "Request body to accept an org-scoped artifact license.", + "properties": { + "licenseId": { + "description": "License identifier to accept (must match a licenseId from the artifact's published licenseTerms).", + "example": "NVIDIA Proprietary", + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\s._+()/:'-]*$", + "type": "string" + }, + "licenseVersion": { + "description": "License version to accept (must match licenseVersion for that license on the artifact).", + "example": 1, + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\s._+()/:'-]*$", + "type": "string" + } + }, + "required": [ + "licenseId", + "licenseVersion" + ], + "type": "object" + }, + "Artifact": { + "description": "Artifact object", + "properties": { + "accessType": { + "enum": [ + "LISTED", + "EXCLUSIVE", + "NOT_LISTED" + ], + "type": "string" + }, + "artifactType": { + "description": "Artifact type", + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "type": "string" + }, + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "bias": { + "description": "Text describing bias in the artifact", + "type": "string" + }, + "builtBy": { + "description": "Organization that built the helm chart", + "type": "string" + }, + "canGuestDownload": { + "description": "Indicates if a guest user can download", + "type": "boolean" + }, + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "description": { + "description": "Description of the helm chart", + "type": "string" + }, + "displayName": { + "description": "Display name", + "type": "string" + }, + "encryptionKeyId": { + "description": "ID of the customer managed encryption key associated with this artifact", + "type": "string" + }, + "explainability": { + "description": "Text describing the explainability for this artifact", + "type": "string" + }, + "hasSignedVersion": { + "description": "Indicates if the artifact has any signed versions", + "type": "boolean" + }, + "isFavourite": { + "description": "Flag indicating if helm chart is user's favorite", + "type": "boolean" + }, + "isPublic": { + "description": "Determines if this helm chart is publicly accessible", + "type": "boolean" + }, + "isReadOnly": { + "description": "indicate if current user has read only permissions (deprecated)", + "type": "boolean" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "latestVersionId": { + "description": "ID of the latest version", + "type": "string" + }, + "latestVersionSizeInBytes": { + "description": "Size of the latest version in bytes", + "format": "int64", + "type": "integer" + }, + "licenseTerms": { + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "type": "string" + }, + "name": { + "description": "Unique name of the helm chart", + "type": "string" + }, + "orgName": { + "description": "Name of the org that the helm chart belongs to", + "type": "string" + }, + "ownerName": { + "description": "Name of the user who owns this version", + "type": "string" + }, + "policyLabels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "privacy": { + "description": "Text describing the privacy for this artifact", + "type": "string" + }, + "productNames": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "publisher": { + "description": "Organization that published this helm chart", + "type": "string" + }, + "safetyAndSecurity": { + "description": "Text for describing the safety and security in the artifact", + "type": "string" + }, + "shortDescription": { + "description": "Short description of the helm chart", + "type": "string" + }, + "teamName": { + "description": "Name of the team that the helm chart belongs to", + "type": "string" + }, + "updatedDate": { + "description": "Updated date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + } + }, + "type": "object" + }, + "ArtifactAttribute": { + "description": "Attribute on the artifact", + "properties": { + "key": { + "maxLength": 255, + "pattern": "[a-zA-Z0-9]+", + "type": "string" + }, + "value": { + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "ArtifactCatalogFlags": { + "description": "Artifact Catalog Flags object", + "properties": { + "canGuestDownload": { + "description": "Indicates if a guest user can download", + "type": "boolean" + }, + "isListedToPublic": { + "description": "Flag indicating if artifact is listed and searchable", + "type": "boolean" + }, + "isPublic": { + "description": "Determines if this artifact is publicly accessible", + "type": "boolean" + } + }, + "type": "object" + }, + "ArtifactCreateRequest": { + "description": "Properties for the artifact to create", + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "bias": { + "description": "Text describing bias in the model", + "maxLength": 128000, + "type": "string" + }, + "builtBy": { + "description": "organization that built the artifact", + "maxLength": 255, + "type": "string" + }, + "description": { + "description": "Description of the artifact", + "maxLength": 128000, + "type": "string" + }, + "displayName": { + "description": "Display name", + "maxLength": 128, + "minLength": 2, + "type": "string" + }, + "explainability": { + "description": "Text describing explainability for this model", + "maxLength": 128000, + "type": "string" + }, + "labels": { + "items": { + "maxLength": 255, + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "labelsV2": { + "items": { + "type": "string" + }, + "type": "array" + }, + "licenseTerms": { + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "maxLength": 255, + "type": "string" + }, + "name": { + "description": "Unique name of the artifact", + "maxLength": 250, + "minLength": 1, + "pattern": "^[a-z][a-z\\d._-]*$", + "type": "string" + }, + "privacy": { + "description": "Text describing the privacy for this model", + "maxLength": 128000, + "type": "string" + }, + "publisher": { + "description": "organization that published the artifact", + "maxLength": 255, + "type": "string" + }, + "safetyAndSecurity": { + "description": "Text for describing the safety and security in the model", + "maxLength": 128000, + "type": "string" + }, + "shortDescription": { + "description": "Short description of the artifact", + "maxLength": 255, + "type": "string" + } + }, + "required": [ + "name", + "shortDescription" + ], + "type": "object" + }, + "ArtifactDownloadAllResponse": { + "description": "Response body to download all files of an artifact", + "properties": { + "filepath": { + "items": { + "type": "string" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + }, + "sha256_base64": { + "items": { + "type": "string" + }, + "type": "array" + }, + "urls": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ArtifactDownloadResponse": { + "description": "Response body to download a single file of an artifact", + "properties": { + "filepath": { + "description": "The filepath of the artifact", + "type": "string" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + }, + "url": { + "description": "Presigned url for single file download", + "type": "string" + } + }, + "required": [ + "url" + ], + "type": "object" + }, + "ArtifactFileChecksumToValidate": { + "description": "Artifact file checksum object in request to validate artifact file checksum exists or not", + "properties": { + "sha256": { + "description": "Base64 encoded sha256 hash of the artifact file", + "type": "string" + } + }, + "required": [ + "sha256" + ], + "type": "object" + }, + "ArtifactFileChecksumValidated": { + "properties": { + "exists": { + "description": "Boolean to indicate whether sha256 exists or not", + "type": "boolean" + }, + "sha256": { + "description": "Base64 encoded sha256 hash of the artifact file", + "type": "string" + }, + "size": { + "description": "Size of the artifact file", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "exists", + "sha256" + ], + "type": "object" + }, + "ArtifactFileCommitMetadata": { + "properties": { + "commitType": { + "enum": [ + "ADDITION", + "DELETION" + ], + "type": "string" + }, + "filePath": { + "description": "Artifact file path", + "type": "string" + }, + "sha256": { + "description": "Base64 encoded sha256 hash of the artifact file. Required for addition and not required for deletion", + "type": "string" + } + }, + "required": [ + "commitType", + "filePath" + ], + "type": "object" + }, + "ArtifactFilesChecksumExistsRequest": { + "description": "File checksums", + "properties": { + "files": { + "items": { + "$ref": "#/components/schemas/ArtifactFileChecksumToValidate" + }, + "type": "array" + } + }, + "type": "object" + }, + "ArtifactFilesChecksumExistsResponse": { + "description": "Request to check if file exists by checksum", + "properties": { + "files": { + "items": { + "$ref": "#/components/schemas/ArtifactFileChecksumValidated" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ArtifactFilesCommitRequest": { + "description": "Artifact files to be committed", + "properties": { + "artifactType": { + "description": "Artifact type - could be either model or resource", + "type": "string" + }, + "baseVersion": { + "description": "Artifact version that the commit is based on", + "type": "string" + }, + "files": { + "items": { + "$ref": "#/components/schemas/ArtifactFileCommitMetadata" + }, + "type": "array" + }, + "name": { + "description": "Artifact name", + "type": "string" + }, + "version": { + "description": "Artifact version", + "type": "string" + } + }, + "required": [ + "artifactType", + "name", + "version" + ], + "type": "object" + }, + "ArtifactItem": { + "description": "Artifact item with name and description", + "properties": { + "artifactType": { + "description": "Artifact type", + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "type": "string" + }, + "description": { + "description": "Description of the artifact", + "type": "string" + }, + "displayName": { + "description": "Display name of the artifact", + "type": "string" + }, + "name": { + "description": "Name of the artifact", + "type": "string" + } + }, + "required": [ + "description", + "name" + ], + "type": "object" + }, + "ArtifactListResponse": { + "description": "Response to list artifacts request", + "properties": { + "artifacts": { + "items": { + "$ref": "#/components/schemas/Artifact" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ArtifactPublishRequest": { + "description": "Request to publish an artifact", + "properties": { + "accessType": { + "enum": [ + "LISTED", + "EXCLUSIVE", + "NOT_LISTED" + ], + "type": "string" + }, + "canGuestPull": { + "type": "boolean" + }, + "canPublicList": { + "type": "boolean" + }, + "isPublic": { + "type": "boolean" + }, + "licenseTerms": { + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "type": "array" + }, + "productNames": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ArtifactResponse": { + "description": "Response to artifact request", + "properties": { + "artifact": { + "$ref": "#/components/schemas/Artifact", + "description": "Artifact object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ArtifactUpdateRequest": { + "description": "Properties for the artifact to update", + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "bias": { + "description": "Text describing bias in the model", + "type": "string" + }, + "builtBy": { + "description": "organization that built the artifact", + "maxLength": 255, + "type": "string" + }, + "description": { + "description": "Description of the artifact", + "type": "string" + }, + "displayName": { + "description": "Display name", + "maxLength": 128, + "minLength": 2, + "type": "string" + }, + "explainability": { + "description": "Text describing explainability for this model", + "type": "string" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "labelsV2": { + "items": { + "type": "string" + }, + "type": "array" + }, + "licenseTerms": { + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "maxLength": 255, + "type": "string" + }, + "privacy": { + "description": "Text describing the privacy for this model", + "type": "string" + }, + "publisher": { + "description": "organization that published the artifact", + "maxLength": 255, + "type": "string" + }, + "safetyAndSecurity": { + "description": "Text for describing the safety and security in the model", + "type": "string" + }, + "shortDescription": { + "description": "Short description of the artifact", + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "ArtifactVersion": { + "description": "Artifact version object", + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "createdByUser": { + "description": "Id of the user who created this version", + "type": "string" + }, + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "customMetrics": { + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "type": "array" + }, + "description": { + "description": "Description of the version", + "type": "string" + }, + "id": { + "description": "Unique ID of the version", + "type": "string" + }, + "isSigned": { + "description": "Indicates if the version is signed", + "type": "boolean" + }, + "malwareScanDate": { + "description": "Scan date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "malwareScanStatus": { + "description": "Malware scan status", + "enum": [ + "NOT_SCANNED", + "IN_PROGRESS", + "CLEAN", + "SUSPICIOUS", + "FAILED", + "MALICIOUS" + ], + "type": "string" + }, + "policy": { + "items": { + "type": "string" + }, + "type": "array" + }, + "releaseType": { + "description": "Release type enum for the artifact version in the product lifecycle.", + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "type": "string" + }, + "status": { + "description": "Version status", + "enum": [ + "UPLOAD_PENDING", + "UPLOAD_COMPLETE" + ], + "type": "string" + }, + "storageVersion": { + "description": "The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files.", + "type": "string" + }, + "totalFileCount": { + "description": "Total file count", + "format": "int64", + "type": "integer" + }, + "totalSizeInBytes": { + "description": "Total size of the version in bytes", + "format": "int64", + "type": "integer" + }, + "updatedDate": { + "description": "Updated date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + } + }, + "type": "object" + }, + "ArtifactVersionFileListResponse": { + "description": "Response to list files for artifact version request", + "properties": { + "artifact": { + "$ref": "#/components/schemas/Artifact", + "description": "Artifact object" + }, + "artifactFiles": { + "items": { + "$ref": "#/components/schemas/File" + }, + "type": "array" + }, + "artifactVersion": { + "$ref": "#/components/schemas/ArtifactVersion", + "description": "Artifact version object" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ArtifactVersionListResponse": { + "description": "Response to list artifact versions request", + "properties": { + "artifact": { + "$ref": "#/components/schemas/Artifact", + "description": "Artifact object" + }, + "artifactVersions": { + "items": { + "$ref": "#/components/schemas/ArtifactVersion" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ArtifactVersionResponse": { + "description": "Response to artifact version request", + "properties": { + "artifact": { + "$ref": "#/components/schemas/Artifact", + "description": "Artifact object" + }, + "artifactVersion": { + "$ref": "#/components/schemas/ArtifactVersion", + "description": "Artifact version object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ArtifactVersionUpdateRequest": { + "description": "Version properties to update", + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "description": { + "description": "Description of the artifact version", + "maxLength": 255, + "type": "string" + }, + "status": { + "description": "Version status", + "enum": [ + "UPLOAD_PENDING", + "UPLOAD_COMPLETE" + ], + "type": "string" + } + }, + "type": "object" + }, + "AsyncCloneArtifactVersionFilesRequest": { + "description": "Request to asynchronously clone artifact version files. Artifact type, target artifact name, version, org, and team are provided via URL path parameters.", + "properties": { + "sourceArtifact": { + "$ref": "#/components/schemas/CloneableArtifact", + "description": "Cloneable Artifact Parameters object" + }, + "uploadPending": { + "description": "Allow the cloned model version to continue to be updated with files. A follow up commit is needed to update status to 'Upload Complete'.", + "type": "boolean" + } + }, + "required": [ + "sourceArtifact" + ], + "type": "object" + }, + "CloneArtifactFilesStatusResponse": { + "description": "Progress of cloning artifact version files", + "properties": { + "filesCopied": { + "description": "Number of files copied", + "format": "int64", + "type": "integer" + }, + "percentageCloned": { + "description": "Percentage of files cloned", + "format": "double", + "type": "number" + }, + "sizeCopied": { + "description": "Combined file size copied", + "format": "int64", + "type": "integer" + }, + "totalFiles": { + "description": "Total files at source", + "format": "int64", + "type": "integer" + }, + "totalSize": { + "description": "Combined file size at source", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "CloneArtifactVersionFilesRequest": { + "description": "Request to clone artifact version files", + "properties": { + "artifactType": { + "description": "Artifact type", + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "type": "string" + }, + "sourceArtifact": { + "$ref": "#/components/schemas/CloneableArtifact", + "description": "Cloneable Artifact Parameters object" + }, + "targetArtifact": { + "$ref": "#/components/schemas/CloneableArtifact", + "description": "Cloneable Artifact Parameters object" + }, + "uploadPending": { + "description": "Allow the cloned model version to continue to be updated with files. A follow up commit is needed to update status to 'Upload Complete'.", + "type": "boolean" + } + }, + "required": [ + "artifactType", + "sourceArtifact", + "targetArtifact" + ], + "type": "object" + }, + "CloneStatus": { + "description": "Progress of cloning artifact version files", + "properties": { + "filesCopied": { + "description": "Number of files copied", + "format": "int64", + "type": "integer" + }, + "internalCheckpointStateCleanup": { + "description": "Internal-only: When the async clone workflow is completed, this field shows if the internal checkpoint files were successfully cleaned up in the storage - CLEAN if no objects remain (cleanup succeeded or unused), NOT_EMPTY if objects remain, ERROR if verification could not be performed. Omitted when not applicable.", + "enum": [ + "CLEAN", + "NOT_EMPTY", + "ERROR" + ], + "type": "string" + }, + "percentageFilesCloned": { + "description": "Percentage of files cloned", + "format": "double", + "type": "number" + }, + "sizeCopied": { + "description": "Combined file size copied", + "format": "int64", + "type": "integer" + }, + "totalFiles": { + "description": "Total files at source", + "format": "int64", + "type": "integer" + }, + "totalSize": { + "description": "Combined file size at source", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "CloneableArtifact": { + "description": "Cloneable Artifact Parameters object", + "properties": { + "name": { + "description": "Unique name of the artifact", + "type": "string" + }, + "org": { + "description": "Name of the org that the artifact belongs to", + "type": "string" + }, + "team": { + "description": "Name of the team that the artifact belongs to", + "type": "string" + }, + "version": { + "description": "ID of the version or tag", + "type": "string" + } + }, + "required": [ + "name", + "org", + "version" + ], + "type": "object" + }, + "CloudServiceProvider": { + "description": "Cloud Service Provider object", + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "description": { + "description": "Description of the Cloud Service Provider", + "type": "string" + }, + "displayName": { + "description": "Display name of the Cloud Service Provider", + "type": "string" + }, + "isDeployable": { + "description": "Determines if this Cloud Service Provider can be used to deploy artifacts", + "type": "boolean" + }, + "isEnabled": { + "description": "Determines if this Cloud Service Provider is enabled", + "type": "boolean" + }, + "labels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "type": "string" + }, + "name": { + "description": "Unique name of the Cloud Service Provider", + "type": "string" + }, + "updatedDate": { + "description": "Updated date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "CloudServiceProviderCreateRequest": { + "description": "Request to create a new Cloud Service Provider", + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "description": { + "description": "Description of the Cloud Service Provider", + "type": "string" + }, + "displayName": { + "description": "Display name of the Cloud Service Provider", + "type": "string" + }, + "isEnabled": { + "description": "Determines if this Cloud Service Provider is enabled", + "type": "boolean" + }, + "labels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "type": "string" + }, + "name": { + "description": "Unique name of the Cloud Service Provider", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "CloudServiceProviderListResponse": { + "description": "Response to list Cloud Service Providers request", + "properties": { + "cloudServiceProviders": { + "items": { + "$ref": "#/components/schemas/CloudServiceProvider" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "CloudServiceProviderUpdateRequest": { + "description": "Request to update existing Cloud Service Provider", + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "description": { + "description": "Description of the Cloud Service Provider", + "type": "string" + }, + "displayName": { + "description": "Display name of the Cloud Service Provider", + "type": "string" + }, + "isEnabled": { + "description": "Determines if this Cloud Service Provider is enabled", + "type": "boolean" + }, + "labels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "type": "string" + } + }, + "type": "object" + }, + "Collection": { + "description": "Collection object", + "properties": { + "accessType": { + "enum": [ + "LISTED", + "EXCLUSIVE", + "NOT_LISTED" + ], + "type": "string" + }, + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "builtBy": { + "description": "Organization that built the collection", + "type": "string" + }, + "canGuestDownload": { + "description": "Indicates if a guest user can download", + "type": "boolean" + }, + "category": { + "enum": [ + "HEALTHCARE", + "SMART_CITIES", + "RETAIL", + "MANUFACTURING", + "SUPERCOMPUTING", + "ROBOTICS", + "AUTOMOTIVE", + "TELECOMMUNICATIONS", + "FINANCE", + "OIL_AND_GAS", + "NATURAL_LANGUAGE_PROCESSING", + "AUTOMATIC_SPEECH_RECOGNITION", + "INTELLIGENT_VIDEO_ANALYTICS", + "OBJECT_DETECTION", + "IMAGE_CLASSIFICATION", + "ANNOTATION", + "IMAGE_SYNTHESIS", + "MACHINE_LEARNING", + "DEEP_LEARNING", + "INFRASTRUCTURE", + "HIGH_PERFORMANCE_COMPUTING", + "WINDOWS_RTX_ACCELERATED_MODELS", + "BEGINNER", + "ADVANCED" + ], + "type": "string" + }, + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "description": { + "description": "Description of the collection", + "type": "string" + }, + "displayName": { + "description": "Display name", + "type": "string" + }, + "isPublic": { + "description": "Determines if this collection is publicly accessible", + "type": "boolean" + }, + "isReadOnly": { + "description": "indicate if current user has read only permissions (deprecated)", + "type": "boolean" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "type": "string" + }, + "name": { + "description": "Unique name of the collection", + "type": "string" + }, + "orgName": { + "description": "Name of the org that the collection belongs to", + "type": "string" + }, + "ownerName": { + "description": "Name of the user who owns this version", + "type": "string" + }, + "policyLabels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "productNames": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "publisher": { + "description": "Organization that published this collection", + "type": "string" + }, + "shortDescription": { + "description": "Short description of the collection", + "type": "string" + }, + "size": { + "description": "Total count of collection items", + "format": "int64", + "type": "integer" + }, + "teamName": { + "description": "Name of the team that the collection belongs to", + "type": "string" + }, + "updatedDate": { + "description": "Updated date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + } + }, + "required": [ + "category" + ], + "type": "object" + }, + "CollectionCreateRequest": { + "description": "Properties for the collections to be created", + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "builtBy": { + "description": "organization that built the collection", + "type": "string" + }, + "category": { + "enum": [ + "HEALTHCARE", + "SMART_CITIES", + "RETAIL", + "MANUFACTURING", + "SUPERCOMPUTING", + "ROBOTICS", + "AUTOMOTIVE", + "TELECOMMUNICATIONS", + "FINANCE", + "OIL_AND_GAS", + "NATURAL_LANGUAGE_PROCESSING", + "AUTOMATIC_SPEECH_RECOGNITION", + "INTELLIGENT_VIDEO_ANALYTICS", + "OBJECT_DETECTION", + "IMAGE_CLASSIFICATION", + "ANNOTATION", + "IMAGE_SYNTHESIS", + "MACHINE_LEARNING", + "DEEP_LEARNING", + "INFRASTRUCTURE", + "HIGH_PERFORMANCE_COMPUTING", + "WINDOWS_RTX_ACCELERATED_MODELS", + "BEGINNER", + "ADVANCED" + ], + "type": "string" + }, + "description": { + "description": "Description of the collection", + "type": "string" + }, + "displayName": { + "description": "Display name", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "labelsV2": { + "items": { + "type": "string" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "maxLength": 255, + "type": "string" + }, + "name": { + "description": "Unique name of the collection", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-z][a-z\\d._-]*$", + "type": "string" + }, + "ownerName": { + "description": "Name of the user who owns this collection", + "maxLength": 255, + "type": "string" + }, + "publisher": { + "description": "organization that published the collection", + "maxLength": 255, + "type": "string" + }, + "shortDescription": { + "description": "Short description of the collection", + "maxLength": 255, + "type": "string" + } + }, + "required": [ + "category", + "name", + "shortDescription" + ], + "type": "object" + }, + "CollectionListResponse": { + "description": "Response to list collections request", + "properties": { + "collections": { + "items": { + "$ref": "#/components/schemas/Collection" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "CollectionOperation": { + "description": "Collection operation object", + "properties": { + "operation": { + "description": "Collection operation", + "maxLength": 255, + "type": "string" + }, + "path": { + "description": "Path to a collection item in a scoped format", + "maxLength": 255, + "pattern": "^(/(?!/)([\\w- %\\.(?!\\.)])+)+$", + "type": "string" + } + }, + "type": "object" + }, + "CollectionPatchRequest": { + "description": "Properties for the collection to patch", + "properties": { + "operations": { + "items": { + "$ref": "#/components/schemas/CollectionOperation", + "maxItems": 100 + }, + "maxItems": 100, + "type": "array" + } + }, + "type": "object" + }, + "CollectionPublishRequest": { + "description": "Request to publish a collection", + "properties": { + "accessType": { + "enum": [ + "LISTED", + "EXCLUSIVE", + "NOT_LISTED" + ], + "type": "string" + }, + "canGuestPull": { + "type": "boolean" + }, + "canPublicList": { + "type": "boolean" + }, + "isPublic": { + "type": "boolean" + }, + "productNames": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CollectionResponse": { + "description": "Response to create collection request", + "properties": { + "collection": { + "$ref": "#/components/schemas/Collection", + "description": "Collection object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "CollectionUpdateRequest": { + "description": "Properties for the collection to update", + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "builtBy": { + "description": "organization that built the collection", + "type": "string" + }, + "category": { + "enum": [ + "HEALTHCARE", + "SMART_CITIES", + "RETAIL", + "MANUFACTURING", + "SUPERCOMPUTING", + "ROBOTICS", + "AUTOMOTIVE", + "TELECOMMUNICATIONS", + "FINANCE", + "OIL_AND_GAS", + "NATURAL_LANGUAGE_PROCESSING", + "AUTOMATIC_SPEECH_RECOGNITION", + "INTELLIGENT_VIDEO_ANALYTICS", + "OBJECT_DETECTION", + "IMAGE_CLASSIFICATION", + "ANNOTATION", + "IMAGE_SYNTHESIS", + "MACHINE_LEARNING", + "DEEP_LEARNING", + "INFRASTRUCTURE", + "HIGH_PERFORMANCE_COMPUTING", + "WINDOWS_RTX_ACCELERATED_MODELS", + "BEGINNER", + "ADVANCED" + ], + "type": "string" + }, + "description": { + "description": "Description of the collection", + "type": "string" + }, + "displayName": { + "description": "Display name", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "labelsV2": { + "items": { + "type": "string" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "maxLength": 255, + "type": "string" + }, + "ownerName": { + "description": "Name of the user who owns this collection", + "maxLength": 255, + "type": "string" + }, + "publisher": { + "description": "organization that published the collection", + "maxLength": 255, + "type": "string" + }, + "shortDescription": { + "description": "Short description of the collection", + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "ConfiguredLicenseTerm": { + "description": "License information for the artifact", + "properties": { + "artifactType": { + "description": "Artifact type", + "example": "model", + "maxLength": 15, + "pattern": "^[\\s\\S]*$", + "type": "string" + }, + "generatedHtml": { + "description": "Generated html", + "example": "<p><strong>GOVERNING HOSTING TERMS:</strong> ...</p>", + "maxLength": 9999, + "pattern": "^[\\s\\S]*$", + "type": "string" + }, + "tags": { + "items": { + "$ref": "#/components/schemas/LicenseTag" + }, + "type": "array" + } + }, + "type": "object" + }, + "ConfiguredLicenseTerms": { + "description": "License information for the artifact", + "properties": { + "download": { + "$ref": "#/components/schemas/ConfiguredLicenseTerm", + "description": "License information for the artifact" + }, + "hosting": { + "$ref": "#/components/schemas/ConfiguredLicenseTerm", + "description": "License information for the artifact" + } + }, + "type": "object" + }, + "CountableResource": { + "description": "Countable Resource object", + "properties": { + "defaultValue": { + "description": "Deprecated: Default value. Please use actual CloudServiceProvider values instead", + "format": "int64", + "type": "integer" + }, + "maxValue": { + "description": "Maximum value", + "format": "int64", + "type": "integer" + }, + "minValue": { + "description": "Minimum value", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "CustomMetric": { + "description": "Custom metrics", + "properties": { + "key": { + "maxLength": 255, + "type": "string" + }, + "value": { + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "CustomMetricGroup": { + "description": "Defines the group of custom metrics.", + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/CustomMetric" + }, + "type": "array" + }, + "name": { + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "Dataset": { + "properties": { + "license": { + "description": "License of the dataset", + "maxLength": 255, + "type": "string" + }, + "link": { + "description": "Link to the dataset", + "maxLength": 255, + "type": "string" + }, + "name": { + "description": "Name of the dataset", + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "DeploymentArtifactParameters": { + "description": "Deployment Artifact Parameters object", + "properties": { + "artifactType": { + "description": "Artifact type", + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "type": "string" + }, + "displayName": { + "description": "Display name of the artifact", + "type": "string" + }, + "filePath": { + "description": "Path to a file in an artifact version", + "type": "string" + }, + "name": { + "description": "Unique name of the artifact", + "type": "string" + }, + "orgName": { + "description": "Name of the org that the artifact belongs to", + "type": "string" + }, + "teamName": { + "description": "Name of the team that the artifact belongs to", + "type": "string" + }, + "versionId": { + "description": "ID of the version or tag", + "type": "string" + } + }, + "required": [ + "name", + "orgName" + ], + "type": "object" + }, + "DeploymentCpuParameters": { + "description": "Deployment CPU Parameters object", + "properties": { + "count": { + "description": "Total count of CPUs", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentCpuParametersMeta": { + "description": "Cloud Service Provider Deployment CPU Parameters object", + "properties": { + "count": { + "$ref": "#/components/schemas/CountableResource", + "description": "Countable Resource object" + } + }, + "required": [ + "count" + ], + "type": "object" + }, + "DeploymentGpuParameters": { + "description": "Deployment GPU Parameters object", + "properties": { + "count": { + "description": "Total count of GPUs", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "GPU Type", + "type": "string" + } + }, + "type": "object" + }, + "DeploymentGpuParametersMeta": { + "description": "Cloud Service Provider Deployment GPU Parameters object", + "properties": { + "count": { + "$ref": "#/components/schemas/CountableResource", + "description": "Countable Resource object" + }, + "type": { + "$ref": "#/components/schemas/EnumerableResource", + "description": "Enumerable Resource object" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "DeploymentMemoryParameters": { + "description": "Deployment Memory Parameters object", + "properties": { + "capacityInGB": { + "description": "Capacity in GB", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentMemoryParametersMeta": { + "description": "Cloud Service Provider Deployment Memory Parameters object", + "properties": { + "capacityInGB": { + "$ref": "#/components/schemas/CountableResource", + "description": "Countable Resource object" + } + }, + "required": [ + "capacityInGB" + ], + "type": "object" + }, + "DeploymentParameters": { + "description": "Deployment Artifact Parameters object", + "properties": { + "container": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParameters", + "description": "Deployment CPU Parameters object" + }, + "csp": { + "description": "Cloud Service Provider name", + "type": "string" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParameters", + "description": "Deployment GPU Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParameters", + "description": "Deployment Memory Parameters object" + }, + "model": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "resource": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParameters", + "description": "Deployment Storage Parameters object" + } + }, + "type": "object" + }, + "DeploymentParametersCreateRequest": { + "description": "Request to create a new deployment parameters", + "properties": { + "container": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParameters", + "description": "Deployment CPU Parameters object" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParameters", + "description": "Deployment GPU Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParameters", + "description": "Deployment Memory Parameters object" + }, + "model": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "resource": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParameters", + "description": "Deployment Storage Parameters object" + } + }, + "type": "object" + }, + "DeploymentParametersListResponse": { + "description": "Response to list deployment parameters request", + "properties": { + "artifact": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "csp": { + "description": "Cloud Service Provider name", + "type": "string" + }, + "deploymentParameters": { + "items": { + "$ref": "#/components/schemas/DeploymentParameters" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "DeploymentParametersMeta": { + "description": "Cloud Service Provider Deployment Parameters object", + "properties": { + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParametersMeta", + "description": "Cloud Service Provider Deployment CPU Parameters object" + }, + "csp": { + "description": "Cloud Service Provider name", + "type": "string" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParametersMeta", + "description": "Cloud Service Provider Deployment GPU Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParametersMeta", + "description": "Cloud Service Provider Deployment Memory Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParametersMeta", + "description": "Cloud Service Provider Deployment Storage Parameters object" + } + }, + "type": "object" + }, + "DeploymentParametersMetaCreateRequest": { + "description": "Properties for the cloud service provider deployment parameters meta to create", + "properties": { + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParametersMeta", + "description": "Cloud Service Provider Deployment CPU Parameters object" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParametersMeta", + "description": "Cloud Service Provider Deployment GPU Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParametersMeta", + "description": "Cloud Service Provider Deployment Memory Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParametersMeta", + "description": "Cloud Service Provider Deployment Storage Parameters object" + } + }, + "required": [ + "gpu", + "storage" + ], + "type": "object" + }, + "DeploymentParametersMetaUpdateRequest": { + "description": "Properties for the cloud service provider deployment parameters meta to create", + "properties": { + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParametersMeta", + "description": "Cloud Service Provider Deployment CPU Parameters object" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParametersMeta", + "description": "Cloud Service Provider Deployment GPU Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParametersMeta", + "description": "Cloud Service Provider Deployment Memory Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParametersMeta", + "description": "Cloud Service Provider Deployment Storage Parameters object" + } + }, + "type": "object" + }, + "DeploymentParametersUpdateRequest": { + "description": "Request to update existing deployment parameters", + "properties": { + "container": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParameters", + "description": "Deployment CPU Parameters object" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParameters", + "description": "Deployment GPU Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParameters", + "description": "Deployment Memory Parameters object" + }, + "model": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "resource": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParameters", + "description": "Deployment Storage Parameters object" + } + }, + "type": "object" + }, + "DeploymentStorageParameters": { + "description": "Deployment Storage Parameters object", + "properties": { + "capacityInGB": { + "description": "Capacity in GB", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentStorageParametersMeta": { + "description": "Cloud Service Provider Deployment Storage Parameters object", + "properties": { + "capacityInGB": { + "$ref": "#/components/schemas/CountableResource", + "description": "Countable Resource object" + } + }, + "required": [ + "capacityInGB" + ], + "type": "object" + }, + "DeploymentUrlCreateRequest": { + "description": "Request to create a new deployment url", + "properties": { + "container": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParameters", + "description": "Deployment CPU Parameters object" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParameters", + "description": "Deployment GPU Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParameters", + "description": "Deployment Memory Parameters object" + }, + "model": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "resource": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParameters", + "description": "Deployment Storage Parameters object" + } + }, + "type": "object" + }, + "DeploymentUrlResponse": { + "description": "Response to create a new deployment url", + "properties": { + "csp": { + "description": "Cloud Service Provider name", + "type": "string" + }, + "deploymentParameters": { + "$ref": "#/components/schemas/DeploymentParameters", + "description": "Deployment Artifact Parameters object" + }, + "deploymentUrl": { + "description": "Deployment URL", + "type": "string" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "EncryptionKey": { + "description": "Customer Managed Key shard configuration for the model", + "properties": { + "description": { + "description": "Description for a new customer key shard", + "type": "string" + }, + "encryptionKeyId": { + "description": "ID of the existing customer key shard to use", + "type": "string" + }, + "useExistingKey": { + "description": "Whether to use an existing customer key shard or should a new one be created", + "type": "boolean" + } + }, + "required": [ + "useExistingKey" + ], + "type": "object" + }, + "EnumerableResource": { + "description": "Enumerable Resource object", + "properties": { + "defaultItemName": { + "description": "Deprecated: Default item name. Please use actual CloudServiceProvider values instead", + "type": "string" + }, + "items": { + "items": { + "$ref": "#/components/schemas/EnumerableResourceItem" + }, + "type": "array" + } + }, + "type": "object" + }, + "EnumerableResourceItem": { + "description": "Enumerable Resource Item object", + "properties": { + "displayName": { + "description": "Display name", + "type": "string" + }, + "logo": { + "description": "Logo URL", + "type": "string" + }, + "name": { + "description": "Name", + "type": "string" + } + }, + "type": "object" + }, + "File": { + "description": "File object", + "properties": { + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "description": { + "description": "Description of the file", + "type": "string" + }, + "path": { + "description": "Relative file path from the root of the object", + "maxLength": 1023, + "minLength": 1, + "type": "string" + }, + "sizeInBytes": { + "description": "Size of the file in bytes", + "format": "int64", + "minimum": 0, + "type": "integer" + }, + "updatedDate": { + "description": "Updated date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + } + }, + "type": "object" + }, + "GpuByPciCreateRequest": { + "description": "GPU by PCI properties", + "properties": { + "cudaMajorVersion": { + "description": "CUDA major version", + "type": "string" + }, + "cudaMinorVersion": { + "description": "CUDA minor version", + "type": "string" + }, + "displayName": { + "description": "Display name for the GPU", + "type": "string" + }, + "formFactor": { + "description": "GPU form factor", + "type": "string" + }, + "gpuCounts": { + "items": { + "format": "int32", + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "type": "array", + "uniqueItems": true + }, + "labelName": { + "description": "Label name for the GPU", + "type": "string" + }, + "memorySizeGb": { + "description": "Memory size in GB (smallint range)", + "format": "int32", + "maximum": 32767, + "minimum": 0, + "type": "integer" + }, + "pciDeviceId": { + "description": "PCI Device ID", + "type": "string" + }, + "pciSubsystemDeviceId": { + "description": "PCI Subsystem Device ID", + "type": "string" + }, + "pciVendorId": { + "description": "PCI Vendor ID", + "type": "string" + } + }, + "required": [ + "displayName", + "pciDeviceId" + ], + "type": "object" + }, + "GpuByPciResponse": { + "description": "Response for GPU by PCI ID lookup", + "properties": { + "createdAt": { + "description": "Creation timestamp", + "format": "date-time", + "type": "string" + }, + "cudaMajorVersion": { + "description": "CUDA major version", + "type": "string" + }, + "cudaMinorVersion": { + "description": "CUDA minor version", + "type": "string" + }, + "displayName": { + "description": "Display name for the GPU", + "type": "string" + }, + "formFactor": { + "description": "GPU form factor", + "type": "string" + }, + "gpuCounts": { + "items": { + "format": "int32", + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "type": "array", + "uniqueItems": true + }, + "labelName": { + "description": "Label name for the GPU", + "type": "string" + }, + "memorySizeGb": { + "description": "Memory size in GB (smallint range)", + "format": "int32", + "maximum": 32767, + "minimum": 0, + "type": "integer" + }, + "pciDeviceId": { + "description": "PCI Device ID", + "type": "string" + }, + "pciSubsystemDeviceId": { + "description": "PCI Subsystem Device ID", + "type": "string" + }, + "pciVendorId": { + "description": "PCI Vendor ID", + "type": "string" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + }, + "updatedAt": { + "description": "Last update timestamp", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "displayName", + "pciDeviceId" + ], + "type": "object" + }, + "GpuByPciUpdateRequest": { + "description": "GPU by PCI update properties", + "properties": { + "cudaMajorVersion": { + "description": "CUDA major version", + "type": "string" + }, + "cudaMinorVersion": { + "description": "CUDA minor version", + "type": "string" + }, + "displayName": { + "description": "Display name for the GPU", + "type": "string" + }, + "formFactor": { + "description": "GPU form factor", + "type": "string" + }, + "gpuCounts": { + "items": { + "format": "int32", + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "type": "array", + "uniqueItems": true + }, + "labelName": { + "description": "Label name for the GPU", + "type": "string" + }, + "memorySizeGb": { + "description": "Memory size in GB (smallint range)", + "format": "int32", + "maximum": 32767, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "Health": { + "description": "object that describes health of the service", + "properties": { + "healthCode": { + "description": "Enum that describes health of the service", + "enum": [ + "UNKNOWN", + "OK", + "UNDER_MAINTENANCE", + "WARNING", + "FAILED" + ], + "type": "string" + }, + "healthCodeDescription": { + "description": "Human readable description", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "metaData": { + "items": { + "$ref": "#/components/schemas/MetaData" + }, + "type": "array" + } + }, + "type": "object" + }, + "HealthResponse": { + "description": "This API is invoked by monitoring tools, other services and infrastructure to retrieve health status the targeted service, this is unprotected method", + "properties": { + "health": { + "$ref": "#/components/schemas/Health", + "description": "object that describes health of the service" + } + }, + "type": "object" + }, + "KaizenHealthStatus": { + "properties": { + "status": { + "type": "string" + } + }, + "type": "object" + }, + "KeyArtifactListResponse": { + "description": "Response containing a list of artifacts associated with a key", + "properties": { + "artifacts": { + "items": { + "$ref": "#/components/schemas/ArtifactItem" + }, + "type": "array" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "KeyItem": { + "description": "Key item with ID and create timestamp string", + "properties": { + "created": { + "description": "The creation timestamp of the key item in ISO-8601 format. Format: YYYY-MM-DDTHH:mm:ss.sssZ.", + "example": "2025-04-19T22:30:00.123Z", + "format": "regex", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "description": { + "description": "Description of the encryption key", + "maxLength": 255, + "type": "string" + }, + "encryptionKeyId": { + "description": "The encryption key identifier in UUID format.", + "example": "196afcf4-d6c8-4116-aa25-34a718a14f43", + "format": "regex", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", + "type": "string" + } + }, + "required": [ + "created", + "encryptionKeyId" + ], + "type": "object" + }, + "KeyListResponse": { + "description": "Response to list keys request", + "properties": { + "encryptionKeys": { + "items": { + "$ref": "#/components/schemas/KeyItem" + }, + "type": "array" + } + }, + "type": "object" + }, + "LicenseMetadata": { + "description": "License information for the artifact", + "properties": { + "configuredLicenseTerms": { + "$ref": "#/components/schemas/ConfiguredLicenseTerms", + "description": "License information for the artifact" + }, + "governingTerms": { + "description": "Comprehensive terms and links related to the license", + "example": "<p><strong>GOVERNING HOSTING TERMS:</strong> Use of the model is governed by the <a href='...'>NVIDIA Open Model Agreement</a>.</p>", + "maxLength": 1000, + "pattern": "^[\\s\\S]*$", + "type": "string" + }, + "licenseId": { + "description": "License ID", + "example": "NVIDIA proprietary", + "maxLength": 100, + "pattern": "^[\\s\\S]*$", + "type": "string" + }, + "licenseVersion": { + "description": "License version ID", + "example": "v1.0", + "maxLength": 100, + "pattern": "^[\\s\\S]*$", + "type": "string" + }, + "needsAcceptance": { + "description": "Indicator if user needs to accept this license", + "type": "boolean" + } + }, + "required": [ + "governingTerms", + "licenseId", + "licenseVersion" + ], + "type": "object" + }, + "LicenseTag": { + "description": "License tag information for individual term", + "properties": { + "category": { + "description": "Category of the tag", + "example": "terms", + "maxLength": 100, + "pattern": "^[\\s\\S]*$", + "type": "string" + }, + "key": { + "description": "Key identifier for the tag", + "example": "nv-open-model", + "maxLength": 100, + "pattern": "^[\\s\\S]*$", + "type": "string" + }, + "label": { + "description": "License Label", + "example": "NVIDIA Open Model Agreement", + "maxLength": 100, + "pattern": "^[\\s\\S]*$", + "type": "string" + }, + "tag": { + "description": "License tag name", + "example": "Model Agreement", + "maxLength": 100, + "pattern": "^[\\s\\S]*$", + "type": "string" + }, + "url": { + "description": "Link to the hosted license", + "example": "https://www.nvidia.com/.../nvidia-open-model-agreement/", + "maxLength": 1000, + "pattern": "^[\\s\\S]*$", + "type": "string" + } + }, + "type": "object" + }, + "MalwareScanNotification": { + "properties": { + "contact": { + "type": "string" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "nspect_id": { + "type": "string" + }, + "tenant": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "type": "object" + }, + "MetaData": { + "properties": { + "key": { + "maxLength": 255, + "type": "string" + }, + "value": { + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "Model": { + "description": "Model object", + "properties": { + "accessType": { + "enum": [ + "LISTED", + "EXCLUSIVE", + "NOT_LISTED" + ], + "type": "string" + }, + "application": { + "description": "Application of the model", + "type": "string" + }, + "bias": { + "description": "Text describing bias in the model", + "type": "string" + }, + "builtBy": { + "description": "organization that built the repository", + "type": "string" + }, + "canGuestDownload": { + "description": "Indicates if a guest user can download", + "type": "boolean" + }, + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "description": { + "description": "Description of the model", + "type": "string" + }, + "displayName": { + "description": "Display name", + "type": "string" + }, + "encryptionKeyId": { + "description": "ID of the customer managed encryption key associated with this artifact", + "type": "string" + }, + "explainability": { + "description": "Text describing explainability for this model", + "type": "string" + }, + "framework": { + "description": "Framework used to train this model", + "type": "string" + }, + "hasPlayground": { + "description": "indicate if the Model has AI Playground configured", + "type": "boolean" + }, + "hasSignedVersion": { + "description": "Indicates if the model has any signed versions", + "type": "boolean" + }, + "isFavourite": { + "description": "Flag indicating if model is user's favorite", + "type": "boolean" + }, + "isPlaygroundEnabled": { + "description": "indicate if AI Playground is enabled in the catalog", + "type": "boolean" + }, + "isPublic": { + "description": "Determines if model is publicly accessible", + "type": "boolean" + }, + "isReadOnly": { + "description": "indicate if current user has read only permissions (deprecated)", + "type": "boolean" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "latestVersionGpuModel": { + "description": "GPU model and memory used for the latest version", + "type": "string" + }, + "latestVersionId": { + "description": "Deprecated: Please use latestVersionIdStr instead. ID of the latest version", + "format": "int64", + "type": "integer" + }, + "latestVersionIdStr": { + "description": "ID of the latest version", + "type": "string" + }, + "latestVersionSizeInBytes": { + "description": "Size of the latest version in bytes", + "format": "int64", + "type": "integer" + }, + "licenseTerms": { + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "type": "string" + }, + "modelFormat": { + "description": "Format of the model", + "type": "string" + }, + "name": { + "description": "Unique name of the model", + "type": "string" + }, + "orgName": { + "description": "Name of the org that the model belongs to", + "type": "string" + }, + "ownerName": { + "description": "Name of model's owner", + "type": "string" + }, + "policyLabels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "precision": { + "description": "Precision this model was trained with", + "type": "string" + }, + "privacy": { + "description": "Text describing the privacy for this model", + "type": "string" + }, + "productNames": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "publicDatasetUsed": { + "$ref": "#/components/schemas/Dataset" + }, + "publisher": { + "description": "organization that published the repository", + "type": "string" + }, + "safetyAndSecurity": { + "description": "Text for describing the safety and security in the model", + "type": "string" + }, + "shortDescription": { + "description": "Short description of the model", + "type": "string" + }, + "teamName": { + "description": "Name of the team that the model belongs to", + "type": "string" + }, + "updatedDate": { + "description": "Updated date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "versions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ModelCreateRequest": { + "description": "Properties for the models to be created", + "properties": { + "application": { + "description": "Application of the model", + "maxLength": 255, + "type": "string" + }, + "bias": { + "description": "Text describing bias in the model", + "type": "string" + }, + "builtBy": { + "description": "organization that built the repository", + "maxLength": 255, + "type": "string" + }, + "description": { + "description": "Description of the model", + "type": "string" + }, + "displayName": { + "description": "Display name", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "encryptionKey": { + "$ref": "#/components/schemas/EncryptionKey", + "description": "Customer Managed Key shard configuration for the model" + }, + "explainability": { + "description": "Text describing explainability for this model", + "type": "string" + }, + "framework": { + "description": "Framework used to train this model", + "maxLength": 255, + "type": "string" + }, + "hasPlayground": { + "description": "indicate if the Model has AI Playground configured", + "type": "boolean" + }, + "isPlaygroundEnabled": { + "description": "indicate if AI Playground is enabled in the catalog", + "type": "boolean" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "labelsV2": { + "items": { + "type": "string" + }, + "type": "array" + }, + "licenseTerms": { + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "maxLength": 255, + "type": "string" + }, + "modelFormat": { + "description": "Format of the model", + "maxLength": 255, + "type": "string" + }, + "name": { + "description": "Unique name of the model", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-z][a-z\\d._-]*$", + "type": "string" + }, + "ownerName": { + "description": "Name of the user who owns this model", + "maxLength": 255, + "type": "string" + }, + "precision": { + "description": "Precision this model was trained with", + "maxLength": 255, + "type": "string" + }, + "privacy": { + "description": "Text describing the privacy for this model", + "type": "string" + }, + "publicDatasetUsed": { + "$ref": "#/components/schemas/Dataset" + }, + "publisher": { + "description": "organization that published the repository", + "maxLength": 255, + "type": "string" + }, + "safetyAndSecurity": { + "description": "Text for describing the safety and security in the model", + "type": "string" + }, + "shortDescription": { + "description": "Short description of the model", + "maxLength": 255, + "type": "string" + } + }, + "required": [ + "framework", + "name", + "precision" + ], + "type": "object" + }, + "ModelFile": { + "description": "Model file object", + "properties": { + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "description": { + "description": "Description of the file", + "type": "string" + }, + "path": { + "description": "Relative file path from the root of the model", + "maxLength": 1023, + "minLength": 1, + "type": "string" + }, + "sha256_base64": { + "description": "Base64 encoded sha256 hash of the artifact file", + "type": "string" + }, + "sizeInBytes": { + "description": "Size of the file in bytes", + "format": "int64", + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "ModelListResponse": { + "description": "Response to list models request", + "properties": { + "models": { + "items": { + "$ref": "#/components/schemas/Model" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ModelResponse": { + "description": "Response to create model request", + "properties": { + "model": { + "$ref": "#/components/schemas/Model", + "description": "Model object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ModelSimplified": { + "description": "Model object", + "properties": { + "name": { + "description": "Unique name of the model", + "type": "string" + }, + "orgName": { + "description": "Name of the org that the model belongs to", + "type": "string" + }, + "teamName": { + "description": "Name of the team that the model belongs to", + "type": "string" + } + }, + "required": [ + "name", + "orgName" + ], + "type": "object" + }, + "ModelUpdateRequest": { + "description": "Properties for the model to update", + "properties": { + "application": { + "description": "Application of the model", + "maxLength": 255, + "type": "string" + }, + "bias": { + "description": "Text describing bias in the model", + "type": "string" + }, + "builtBy": { + "description": "organization that built the repository", + "maxLength": 255, + "type": "string" + }, + "description": { + "description": "Description of the model", + "type": "string" + }, + "displayName": { + "description": "Display name", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "explainability": { + "description": "Text describing explainability for this model", + "type": "string" + }, + "framework": { + "description": "Framework used to train this model", + "maxLength": 255, + "type": "string" + }, + "hasPlayground": { + "description": "indicate if the Model has AI Playground configured", + "type": "boolean" + }, + "isPlaygroundEnabled": { + "description": "indicate if AI Playground is enabled in the catalog", + "type": "boolean" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "labelsV2": { + "items": { + "type": "string" + }, + "type": "array" + }, + "licenseTerms": { + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "maxLength": 255, + "type": "string" + }, + "modelFormat": { + "description": "Format of the model", + "maxLength": 255, + "type": "string" + }, + "ownerName": { + "description": "Name of the user who owns this model", + "maxLength": 255, + "type": "string" + }, + "precision": { + "description": "Precision this model was trained with", + "maxLength": 255, + "type": "string" + }, + "privacy": { + "description": "Text describing the privacy for this model", + "type": "string" + }, + "publicDatasetUsed": { + "$ref": "#/components/schemas/Dataset" + }, + "publisher": { + "description": "organization that published the repository", + "maxLength": 255, + "type": "string" + }, + "safetyAndSecurity": { + "description": "Text for describing the safety and security in the model", + "type": "string" + }, + "shortDescription": { + "description": "Short description of the model", + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "ModelVersion": { + "description": "Model version object", + "properties": { + "accuracyReached": { + "description": "Accuracy this model reached", + "format": "float", + "type": "number" + }, + "batchSize": { + "description": "Batch size this model was trained with", + "format": "int64", + "type": "integer" + }, + "createdByUser": { + "description": "Id of the user who created this model", + "type": "string" + }, + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "customMetrics": { + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "type": "array" + }, + "description": { + "description": "Description of the model version", + "type": "string" + }, + "gpuModel": { + "description": "GPU model and memory", + "type": "string" + }, + "id": { + "description": "Deprecated: Please use versionId instead. Unique ID of the version", + "format": "int64", + "type": "integer" + }, + "isSigned": { + "description": "Indicates if the version is signed", + "type": "boolean" + }, + "malwareScanDate": { + "description": "Scan date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "malwareScanStatus": { + "description": "Malware scan status", + "enum": [ + "NOT_SCANNED", + "IN_PROGRESS", + "CLEAN", + "SUSPICIOUS", + "FAILED", + "MALICIOUS" + ], + "type": "string" + }, + "memoryFootprint": { + "description": "Model size/memory footprint for inference", + "type": "string" + }, + "numberOfEpochs": { + "description": "Number of epochs this model trained", + "format": "int64", + "type": "integer" + }, + "nvcfContainerConfiguration": { + "$ref": "#/components/schemas/NvcfContainerConfiguration", + "description": "NVCF container configuration parameters" + }, + "nvcfDeploymentSpecification": { + "$ref": "#/components/schemas/NvcfDeploymentSpecification", + "description": "NVCF deployment specification" + }, + "otherContents": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "ownerName": { + "description": "Name of the user who owns this version", + "type": "string" + }, + "policy": { + "items": { + "type": "string" + }, + "type": "array" + }, + "releaseType": { + "description": "Release type enum for the artifact version in the product lifecycle.", + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "type": "string" + }, + "status": { + "description": "Version status", + "enum": [ + "UPLOAD_PENDING", + "UPLOAD_COMPLETE" + ], + "type": "string" + }, + "storageVersion": { + "description": "The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files.", + "type": "string" + }, + "totalFileCount": { + "description": "Total file count", + "format": "int64", + "type": "integer" + }, + "totalSizeInBytes": { + "description": "Total size of the model in bytes", + "format": "int64", + "type": "integer" + }, + "updatedDate": { + "description": "Updated date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "versionId": { + "description": "Unique version id. Please use this instead of 'id'", + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "ModelVersionCreateRequest": { + "description": "Properties for the model version to be created", + "properties": { + "accuracyReached": { + "description": "Accuracy this model reached", + "format": "float", + "maximum": 100, + "minimum": 0, + "type": "number" + }, + "batchSize": { + "description": "Batch size this model was trained with", + "format": "int64", + "minimum": 0, + "type": "integer" + }, + "customMetrics": { + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "type": "array" + }, + "description": { + "description": "Description of the model version", + "maxLength": 255, + "type": "string" + }, + "gpuModel": { + "description": "GPU model and memory", + "maxLength": 255, + "type": "string" + }, + "id": { + "description": "Deprecated: Please use version instead. Unique ID of the version", + "format": "int64", + "maximum": 2147483647, + "minimum": 1, + "type": "integer" + }, + "memoryFootprint": { + "description": "Model size/memory footprint for inference", + "maxLength": 255, + "type": "string" + }, + "numberOfEpochs": { + "description": "Number of epochs this model trained", + "format": "int64", + "minimum": 0, + "type": "integer" + }, + "nvcfContainerConfiguration": { + "$ref": "#/components/schemas/NvcfContainerConfiguration", + "description": "NVCF container configuration parameters" + }, + "nvcfDeploymentSpecification": { + "$ref": "#/components/schemas/NvcfDeploymentSpecification", + "description": "NVCF deployment specification" + }, + "otherContents": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "ownerName": { + "description": "Name of the user who owns this version", + "maxLength": 255, + "type": "string" + }, + "versionId": { + "description": "Unique version id. Please use this instead of 'id'", + "maxLength": 255, + "pattern": "[^/]+", + "type": "string" + } + }, + "type": "object" + }, + "ModelVersionFileListResponse": { + "description": "Response to list files for model version request", + "properties": { + "model": { + "$ref": "#/components/schemas/Model", + "description": "Model object" + }, + "modelFiles": { + "items": { + "$ref": "#/components/schemas/ModelFile" + }, + "type": "array" + }, + "modelVersion": { + "$ref": "#/components/schemas/ModelVersion", + "description": "Model version object" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ModelVersionListResponse": { + "description": "Response to list model versions request", + "properties": { + "model": { + "$ref": "#/components/schemas/Model", + "description": "Model object" + }, + "modelVersions": { + "items": { + "$ref": "#/components/schemas/ModelVersion" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ModelVersionResponse": { + "description": "Response to create a model version request", + "properties": { + "model": { + "$ref": "#/components/schemas/Model", + "description": "Model object" + }, + "modelVersion": { + "$ref": "#/components/schemas/ModelVersion", + "description": "Model version object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ModelVersionUpdateRequest": { + "description": "Version properties to update", + "properties": { + "accuracyReached": { + "description": "Accuracy this model reached", + "format": "float", + "maximum": 100, + "minimum": 0, + "type": "number" + }, + "batchSize": { + "description": "Batch size this model was trained with", + "format": "int64", + "minimum": 0, + "type": "integer" + }, + "customMetrics": { + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "type": "array" + }, + "description": { + "description": "Description of the model version", + "maxLength": 255, + "type": "string" + }, + "gpuModel": { + "description": "GPU model and memory", + "maxLength": 255, + "type": "string" + }, + "memoryFootprint": { + "description": "Model size/memory footprint for inference", + "maxLength": 255, + "type": "string" + }, + "numberOfEpochs": { + "description": "Number of epochs this model trained", + "format": "int64", + "minimum": 0, + "type": "integer" + }, + "nvcfContainerConfiguration": { + "$ref": "#/components/schemas/NvcfContainerConfiguration", + "description": "NVCF container configuration parameters" + }, + "nvcfDeploymentSpecification": { + "$ref": "#/components/schemas/NvcfDeploymentSpecification", + "description": "NVCF deployment specification" + }, + "otherContents": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "ownerName": { + "description": "Name of the user who owns this version", + "maxLength": 255, + "type": "string" + }, + "status": { + "description": "Version status", + "enum": [ + "UPLOAD_PENDING", + "UPLOAD_COMPLETE" + ], + "type": "string" + } + }, + "type": "object" + }, + "MultipartUploadAbortRequest": { + "description": "Request body for aborting a multipart upload for artifacts", + "properties": { + "artifactType": { + "description": "Type of artifact", + "type": "string" + }, + "filePath": { + "description": "The file path for the artifact upload", + "type": "string" + }, + "name": { + "description": "Name of the artifact", + "type": "string" + }, + "uploadID": { + "description": "The unique ID assigned for this multipart upload to associate all upload parts. This is the basic base64 encoded data of the MultipartUploadIDSchema", + "type": "string" + }, + "version": { + "description": "Artifact version", + "type": "string" + } + }, + "required": [ + "artifactType", + "filePath", + "name", + "uploadID", + "version" + ], + "type": "object" + }, + "MultipartUploadCompleteRequest": { + "description": "Request body for completing a multipart upload for artifacts", + "properties": { + "artifactType": { + "description": "Type of artifact", + "type": "string" + }, + "filePath": { + "description": "The file path for the artifact upload", + "type": "string" + }, + "name": { + "description": "Name of the artifact", + "type": "string" + }, + "sha256": { + "description": "Base64 encoded sha256 hash of the entire file", + "type": "string" + }, + "uploadID": { + "description": "The unique ID assigned for this multipart upload to associate all upload parts. This is the basic base64 encoded data of the MultipartUploadIDSchema", + "type": "string" + }, + "version": { + "description": "Artifact version", + "type": "string" + } + }, + "required": [ + "artifactType", + "filePath", + "name", + "sha256", + "uploadID", + "version" + ], + "type": "object" + }, + "MultipartUploadCreateRequest": { + "description": "Request body for creating a multipart upload for artifacts", + "properties": { + "artifactType": { + "description": "Type of artifact", + "type": "string" + }, + "customPartSize": { + "description": "Custom chunk size of the file to be uploaded, in bytes. should be >= 5MB and <= 500MB. default is 500 in MB.", + "format": "int64", + "type": "integer" + }, + "filePath": { + "description": "The file path for the artifact upload", + "type": "string" + }, + "name": { + "description": "Name of the artifact", + "type": "string" + }, + "partNumberList": { + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "sha256": { + "description": "Base64 encoded sha256 hash of the artifact file to be uploaded", + "type": "string" + }, + "size": { + "description": "total size of the artifact, in bytes", + "format": "int64", + "type": "integer" + }, + "uploadID": { + "description": "Upload id of an already initiated Multipart upload", + "type": "string" + }, + "version": { + "description": "Artifact version", + "type": "string" + } + }, + "required": [ + "artifactType", + "filePath", + "name", + "size", + "version" + ], + "type": "object" + }, + "MultipartUploadCreateResponse": { + "description": "Response body for creating a multipart upload for artifacts", + "properties": { + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "partSize": { + "description": "The size of each part upload in bytes", + "format": "int64", + "type": "integer" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + }, + "uploadID": { + "description": "The unique ID assigned for this multipart upload to associate all upload parts. This is the basic base64 encoded data of the MultipartUploadIDSchema", + "type": "string" + }, + "urls": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "partSize", + "uploadID" + ], + "type": "object" + }, + "NimManifestMetadataRequest": { + "description": "NIM profile metadata", + "properties": { + "profiles": { + "items": { + "$ref": "#/components/schemas/NimProfile" + }, + "type": "array" + } + }, + "type": "object" + }, + "NimManifestMetadataResponse": { + "properties": { + "profiles": { + "items": { + "$ref": "#/components/schemas/NimProfile" + }, + "type": "array" + } + }, + "type": "object" + }, + "NimProfile": { + "properties": { + "buildable_profile": { + "type": "boolean" + }, + "checksum": { + "type": "string" + }, + "feat_lora": { + "type": "boolean" + }, + "form_factor": { + "type": "string" + }, + "gpu": { + "type": "string" + }, + "gpu_device": { + "type": "string" + }, + "inference_backend": { + "type": "string" + }, + "latency": { + "additionalProperties": {}, + "type": "object" + }, + "min_vram_per_device_gb": { + "format": "double", + "type": "number" + }, + "pipeline_parallel_size": { + "format": "int32", + "type": "integer" + }, + "precision": { + "type": "string" + }, + "profile_id": { + "type": "string" + }, + "tensor_parallel_size": { + "format": "int32", + "type": "integer" + }, + "workspace_hash": { + "type": "string" + } + }, + "type": "object" + }, + "NotifyMalwareScanResultResponse": { + "description": "Notify malware scan result response", + "properties": { + "status": { + "description": "Malware scan status", + "enum": [ + "NOT_SCANNED", + "IN_PROGRESS", + "CLEAN", + "SUSPICIOUS", + "FAILED", + "MALICIOUS" + ], + "type": "string" + } + }, + "type": "object" + }, + "NvcfContainerConfiguration": { + "description": "NVCF container configuration parameters", + "properties": { + "apiBodyFormat": { + "description": "API body format", + "type": "string" + }, + "containerArgs": { + "description": "Container arguments", + "type": "string" + }, + "containerEnvironment": { + "items": { + "$ref": "#/components/schemas/MetaData" + }, + "type": "array" + }, + "containerImage": { + "description": "Container Image", + "type": "string" + }, + "healthUri": { + "description": "Health URI", + "type": "string" + }, + "inferencePort": { + "description": "Inference port", + "type": "string" + }, + "inferenceUrl": { + "description": "Inference url", + "type": "string" + }, + "models": { + "items": { + "$ref": "#/components/schemas/NvcfContainerModel" + }, + "type": "array" + } + }, + "type": "object" + }, + "NvcfContainerModel": { + "description": "Models version object metadata", + "properties": { + "name": { + "description": "Model name", + "type": "string" + }, + "uri": { + "description": "Model URI", + "type": "string" + }, + "version": { + "description": "Model version", + "type": "string" + } + }, + "type": "object" + }, + "NvcfDeploymentSpecification": { + "description": "NVCF deployment specification", + "properties": { + "gpuCount": { + "description": "GPU count", + "format": "int32", + "type": "integer" + }, + "gpuType": { + "description": "GPU type", + "type": "string" + }, + "instanceType": { + "description": "Instance type", + "type": "string" + }, + "maxConcurrency": { + "description": "Maximum concurrency", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "PaginationInfo": { + "description": "Pagination Information", + "properties": { + "index": { + "description": "Page index of results", + "format": "int32", + "type": "integer" + }, + "nextPage": { + "description": "Serialized pointer to the next results page. Should be used for fetching next page. Can be empty", + "type": "string" + }, + "size": { + "description": "Number of results in page", + "format": "int32", + "type": "integer" + }, + "totalPages": { + "description": "Total number of pages available", + "format": "int64", + "type": "integer" + }, + "totalResults": { + "description": "Total number of results available", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "Recipe": { + "description": "Recipe object", + "properties": { + "accessType": { + "enum": [ + "LISTED", + "EXCLUSIVE", + "NOT_LISTED" + ], + "type": "string" + }, + "advanced": { + "description": "Text for describing advanced information", + "type": "string" + }, + "application": { + "enum": [ + "CLASSIFICATION", + "OBJECT_DETECTION", + "SEGMENTATION", + "TRANSLATION", + "TEXT_TO_SPEECH", + "RECOMMENDER", + "SENTIMENT", + "NLP", + "KUBEFLOW_PIPELINE", + "OTHER", + "SPEAKER_VERIFICATION", + "PUNCTUATION_AND_CAPITALIZATION", + "DIALOG_STATE_TRACKING", + "SPEAKER_DIARIZATION", + "SPEAKER_RECOGNITION", + "SPEECH_SYNTHESIS", + "VOICE_ACTIVITY_DETECTION", + "SPEECH_RECOGNITION", + "LANGUAGE_MODELING", + "NAMED_ENTITY_RECOGNITION", + "TEXT_CLASSIFICATION", + "TEXT_PROCESSING", + "QUESTION_ANSWERING", + "CONTENT_GENERATION" + ], + "type": "string" + }, + "builtBy": { + "description": "Organization that built the recipe", + "type": "string" + }, + "canGuestDownload": { + "description": "Indicates if a guest user can download", + "type": "boolean" + }, + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "description": { + "description": "Description of the recipe", + "type": "string" + }, + "displayName": { + "description": "Display name", + "type": "string" + }, + "hasSignedVersion": { + "description": "Indicates if the recipe has any signed versions", + "type": "boolean" + }, + "isFavourite": { + "description": "Flag indicating if recipe is user's favorite", + "type": "boolean" + }, + "isPublic": { + "description": "Determines if this recipe is publicly accessible", + "type": "boolean" + }, + "isReadOnly": { + "description": "indicate if current user has read only permissions (deprecated)", + "type": "boolean" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "latestVersionId": { + "description": "Deprecated: Please use latestVersionIdStr instead. ID of the latest version", + "format": "int64", + "type": "integer" + }, + "latestVersionIdStr": { + "description": "ID of the latest version", + "type": "string" + }, + "latestVersionSizeInBytes": { + "description": "Size of the latest version in bytes", + "format": "int64", + "type": "integer" + }, + "licenseTerms": { + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "type": "string" + }, + "modelFormat": { + "description": "Format of the model this recipe produces", + "type": "string" + }, + "name": { + "description": "Unique name of the recipe", + "type": "string" + }, + "orgName": { + "description": "Name of the org that the recipe belongs to", + "type": "string" + }, + "performance": { + "description": "Text describing performance of the recipe results", + "type": "string" + }, + "policyLabels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "precision": { + "enum": [ + "FP16", + "FP32", + "INT8", + "FPBOTH", + "OTHER", + "ALL" + ], + "type": "string" + }, + "productNames": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "publicDatasetUsed": { + "$ref": "#/components/schemas/Dataset" + }, + "publisher": { + "description": "Organization that published this recipe", + "type": "string" + }, + "quickStartGuide": { + "description": "Text with a guide to getting started", + "type": "string" + }, + "relatedModels": { + "items": { + "$ref": "#/components/schemas/Model" + }, + "type": "array" + }, + "setup": { + "description": "Text describing recipe setup", + "type": "string" + }, + "shortDescription": { + "description": "Short description of the recipe", + "type": "string" + }, + "teamName": { + "description": "Name of the team that the recipe belongs to", + "type": "string" + }, + "trainingFramework": { + "enum": [ + "TensorFlow", + "Caffe2", + "CNTK", + "Torch", + "PyTorch", + "MXNet", + "Keras", + "Other", + "TransferLearningToolkit", + "TensorFlow2" + ], + "type": "string" + }, + "updatedDate": { + "description": "Updated date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + } + }, + "type": "object" + }, + "RecipeCreateRequest": { + "description": "Properties for the recipe to create", + "properties": { + "advanced": { + "description": "Text for describing advanced information", + "type": "string" + }, + "application": { + "enum": [ + "CLASSIFICATION", + "OBJECT_DETECTION", + "SEGMENTATION", + "TRANSLATION", + "TEXT_TO_SPEECH", + "RECOMMENDER", + "SENTIMENT", + "NLP", + "KUBEFLOW_PIPELINE", + "OTHER", + "SPEAKER_VERIFICATION", + "PUNCTUATION_AND_CAPITALIZATION", + "DIALOG_STATE_TRACKING", + "SPEAKER_DIARIZATION", + "SPEAKER_RECOGNITION", + "SPEECH_SYNTHESIS", + "VOICE_ACTIVITY_DETECTION", + "SPEECH_RECOGNITION", + "LANGUAGE_MODELING", + "NAMED_ENTITY_RECOGNITION", + "TEXT_CLASSIFICATION", + "TEXT_PROCESSING", + "QUESTION_ANSWERING", + "CONTENT_GENERATION" + ], + "type": "string" + }, + "builtBy": { + "description": "organization that built the recipe", + "maxLength": 255, + "type": "string" + }, + "description": { + "description": "Description of the recipe", + "type": "string" + }, + "displayName": { + "description": "Display name", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "labelsV2": { + "items": { + "type": "string" + }, + "type": "array" + }, + "licenseTerms": { + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "maxLength": 255, + "type": "string" + }, + "modelFormat": { + "description": "Format of the model this recipe produces", + "maxLength": 255, + "type": "string" + }, + "name": { + "description": "Unique name of the recipe", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-z][a-z\\d._-]*$", + "type": "string" + }, + "performance": { + "description": "Text describing performance of the recipe results", + "type": "string" + }, + "precision": { + "enum": [ + "FP16", + "FP32", + "INT8", + "FPBOTH", + "OTHER", + "ALL" + ], + "type": "string" + }, + "publicDatasetUsed": { + "$ref": "#/components/schemas/Dataset" + }, + "publisher": { + "description": "organization that published the recipe", + "maxLength": 255, + "type": "string" + }, + "quickStartGuide": { + "description": "Text with a guide to getting started", + "type": "string" + }, + "setup": { + "description": "Text describing recipe setup", + "type": "string" + }, + "shortDescription": { + "description": "Short description of the recipe", + "maxLength": 255, + "type": "string" + }, + "trainingFramework": { + "enum": [ + "TensorFlow", + "Caffe2", + "CNTK", + "Torch", + "PyTorch", + "MXNet", + "Keras", + "Other", + "TransferLearningToolkit", + "TensorFlow2" + ], + "type": "string" + } + }, + "required": [ + "application", + "modelFormat", + "name", + "precision", + "publicDatasetUsed", + "shortDescription", + "trainingFramework" + ], + "type": "object" + }, + "RecipeFile": { + "description": "Recipe file object", + "properties": { + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "description": { + "description": "Description of the file", + "type": "string" + }, + "path": { + "description": "Relative file path from the root of the recipe", + "maxLength": 1023, + "minLength": 1, + "type": "string" + }, + "sha256_base64": { + "description": "Base64 encoded sha256 hash of the artifact file", + "type": "string" + }, + "sizeInBytes": { + "description": "Size of the file in bytes", + "format": "int64", + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "RecipeListResponse": { + "description": "Response to list recipes request", + "properties": { + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "recipes": { + "items": { + "$ref": "#/components/schemas/Recipe" + }, + "type": "array" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "RecipeResponse": { + "description": "Response to recipe request", + "properties": { + "recipe": { + "$ref": "#/components/schemas/Recipe", + "description": "Recipe object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "RecipeUpdateRequest": { + "description": "Properties for the recipe to update", + "properties": { + "advanced": { + "description": "Text for describing advanced information", + "type": "string" + }, + "application": { + "enum": [ + "CLASSIFICATION", + "OBJECT_DETECTION", + "SEGMENTATION", + "TRANSLATION", + "TEXT_TO_SPEECH", + "RECOMMENDER", + "SENTIMENT", + "NLP", + "KUBEFLOW_PIPELINE", + "OTHER", + "SPEAKER_VERIFICATION", + "PUNCTUATION_AND_CAPITALIZATION", + "DIALOG_STATE_TRACKING", + "SPEAKER_DIARIZATION", + "SPEAKER_RECOGNITION", + "SPEECH_SYNTHESIS", + "VOICE_ACTIVITY_DETECTION", + "SPEECH_RECOGNITION", + "LANGUAGE_MODELING", + "NAMED_ENTITY_RECOGNITION", + "TEXT_CLASSIFICATION", + "TEXT_PROCESSING", + "QUESTION_ANSWERING", + "CONTENT_GENERATION" + ], + "type": "string" + }, + "builtBy": { + "description": "organization that built the recipe", + "maxLength": 255, + "type": "string" + }, + "description": { + "description": "Description of the recipe", + "type": "string" + }, + "displayName": { + "description": "Display name", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "labelsV2": { + "items": { + "type": "string" + }, + "type": "array" + }, + "licenseTerms": { + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "maxLength": 255, + "type": "string" + }, + "modelFormat": { + "description": "Format of the model this recipe produces", + "maxLength": 255, + "type": "string" + }, + "performance": { + "description": "Text describing performance of the recipe results", + "type": "string" + }, + "precision": { + "enum": [ + "FP16", + "FP32", + "INT8", + "FPBOTH", + "OTHER", + "ALL" + ], + "type": "string" + }, + "publicDatasetUsed": { + "$ref": "#/components/schemas/Dataset" + }, + "publisher": { + "description": "organization that published the recipe", + "maxLength": 255, + "type": "string" + }, + "quickStartGuide": { + "description": "Text with a guide to getting started", + "type": "string" + }, + "relatedModels": { + "items": { + "$ref": "#/components/schemas/ModelSimplified" + }, + "type": "array" + }, + "setup": { + "description": "Text describing recipe setup", + "type": "string" + }, + "shortDescription": { + "description": "Short description of the recipe", + "maxLength": 255, + "type": "string" + }, + "trainingFramework": { + "enum": [ + "TensorFlow", + "Caffe2", + "CNTK", + "Torch", + "PyTorch", + "MXNet", + "Keras", + "Other", + "TransferLearningToolkit", + "TensorFlow2" + ], + "type": "string" + } + }, + "type": "object" + }, + "RecipeVersion": { + "description": "Recipe version object", + "properties": { + "accuracyReached": { + "description": "Accuracy this recipe reached", + "format": "float", + "type": "number" + }, + "batchSize": { + "description": "Batch size this recipe was trained with", + "format": "int64", + "type": "integer" + }, + "createdByUser": { + "description": "Id of the user who created this recipe", + "type": "string" + }, + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "customMetrics": { + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "type": "array" + }, + "description": { + "description": "Description of the recipe version", + "type": "string" + }, + "gpuModel": { + "description": "GPU model and memory", + "type": "string" + }, + "id": { + "description": "Deprecated: Please use versionId instead. Unique ID of the version", + "format": "int64", + "type": "integer" + }, + "isSigned": { + "description": "Indicates if the version is signed", + "type": "boolean" + }, + "malwareScanDate": { + "description": "Scan date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "malwareScanStatus": { + "description": "Malware scan status", + "enum": [ + "NOT_SCANNED", + "IN_PROGRESS", + "CLEAN", + "SUSPICIOUS", + "FAILED", + "MALICIOUS" + ], + "type": "string" + }, + "memoryFootprint": { + "description": "recipe size/memory footprint for inference", + "type": "string" + }, + "numberOfEpochs": { + "description": "Number of epochs this recipe trained", + "format": "int64", + "type": "integer" + }, + "otherContents": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "performance": { + "description": "Text describing performance of the recipe results", + "type": "string" + }, + "policy": { + "items": { + "type": "string" + }, + "type": "array" + }, + "quickStartGuide": { + "description": "Text with a guide to getting started", + "type": "string" + }, + "releaseNotes": { + "description": "Text describing this release", + "type": "string" + }, + "releaseType": { + "description": "Release type enum for the artifact version in the product lifecycle.", + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "type": "string" + }, + "setup": { + "description": "Text describing recipe setup", + "type": "string" + }, + "status": { + "description": "Version status", + "enum": [ + "UPLOAD_PENDING", + "UPLOAD_COMPLETE" + ], + "type": "string" + }, + "storageVersion": { + "description": "The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files.", + "type": "string" + }, + "totalFileCount": { + "description": "Total file count", + "format": "int64", + "type": "integer" + }, + "totalSizeInBytes": { + "description": "Total size of the recipe in bytes", + "format": "int64", + "type": "integer" + }, + "versionId": { + "description": "Unique version id. Please use this instead of 'id'", + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "RecipeVersionCreateRequest": { + "description": "Properties for the recipe version to be created", + "properties": { + "accuracyReached": { + "description": "Accuracy this recipe reached", + "format": "float", + "maximum": 100, + "minimum": 0, + "type": "number" + }, + "batchSize": { + "description": "Batch size this recipe was trained with", + "format": "int64", + "minimum": 0, + "type": "integer" + }, + "customMetrics": { + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "type": "array" + }, + "description": { + "description": "Description of the recipe version", + "type": "string" + }, + "gpuModel": { + "description": "GPU model and memory", + "maxLength": 255, + "type": "string" + }, + "id": { + "description": "Deprecated: Please use version instead. Unique ID of the version", + "format": "int64", + "maximum": 2147483647, + "minimum": 1, + "type": "integer" + }, + "memoryFootprint": { + "description": "Recipe size/memory footprint for inference", + "maxLength": 255, + "type": "string" + }, + "numberOfEpochs": { + "description": "Number of epochs this recipe trained", + "format": "int64", + "minimum": 0, + "type": "integer" + }, + "otherContents": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "performance": { + "description": "Text describing performance of the recipe results", + "type": "string" + }, + "quickStartGuide": { + "description": "Text with a guide to getting started", + "type": "string" + }, + "releaseNotes": { + "description": "Text describing this release", + "type": "string" + }, + "setup": { + "description": "Text describing recipe setup", + "type": "string" + }, + "versionId": { + "description": "Unique version id. Please use this instead of 'id'", + "maxLength": 255, + "pattern": "[^/]+", + "type": "string" + } + }, + "type": "object" + }, + "RecipeVersionFileListResponse": { + "description": "Response to list files for recipe version request", + "properties": { + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "recipe": { + "$ref": "#/components/schemas/Recipe", + "description": "Recipe object" + }, + "recipeFiles": { + "items": { + "$ref": "#/components/schemas/RecipeFile" + }, + "type": "array" + }, + "recipeVersion": { + "$ref": "#/components/schemas/RecipeVersion", + "description": "Recipe version object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "RecipeVersionListResponse": { + "description": "Response to list recipe versions request", + "properties": { + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "recipe": { + "$ref": "#/components/schemas/Recipe", + "description": "Recipe object" + }, + "recipeVersions": { + "items": { + "$ref": "#/components/schemas/RecipeVersion" + }, + "type": "array" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "RecipeVersionResponse": { + "description": "Response to recipe version request", + "properties": { + "recipe": { + "$ref": "#/components/schemas/Recipe", + "description": "Recipe object" + }, + "recipeVersion": { + "$ref": "#/components/schemas/RecipeVersion", + "description": "Recipe version object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "RecipeVersionUpdateRequest": { + "description": "Version properties to update", + "properties": { + "accuracyReached": { + "description": "Accuracy this recipe reached", + "format": "float", + "maximum": 100, + "minimum": 0, + "type": "number" + }, + "batchSize": { + "description": "Batch size this recipe was trained with", + "format": "int64", + "minimum": 0, + "type": "integer" + }, + "customMetrics": { + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "type": "array" + }, + "description": { + "description": "Description of the recipe version", + "type": "string" + }, + "gpuModel": { + "description": "GPU model and memory", + "maxLength": 255, + "type": "string" + }, + "memoryFootprint": { + "description": "Recipe size/memory footprint for inference", + "maxLength": 255, + "type": "string" + }, + "numberOfEpochs": { + "description": "Number of epochs this recipe trained", + "format": "int64", + "minimum": 0, + "type": "integer" + }, + "otherContents": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "performance": { + "description": "Text describing performance of the recipe results", + "type": "string" + }, + "quickStartGuide": { + "description": "Text with a guide to getting started", + "type": "string" + }, + "releaseNotes": { + "description": "Text describing this release", + "type": "string" + }, + "setup": { + "description": "Text describing recipe setup", + "type": "string" + }, + "status": { + "description": "Version status", + "enum": [ + "UPLOAD_PENDING", + "UPLOAD_COMPLETE" + ], + "type": "string" + } + }, + "type": "object" + }, + "RequestStatus": { + "description": "Request status information", + "properties": { + "requestId": { + "description": "Request ID", + "type": "string" + }, + "serverId": { + "description": "Server ID", + "type": "string" + }, + "statusCode": { + "description": "Describes response status reported by the server.", + "enum": [ + "UNKNOWN", + "SUCCESS", + "UNAUTHORIZED", + "PAYMENT_REQUIRED", + "FORBIDDEN", + "TIMEOUT", + "EXISTS", + "NOT_FOUND", + "INTERNAL_ERROR", + "INVALID_REQUEST", + "INVALID_REQUEST_VERSION", + "INVALID_REQUEST_DATA", + "METHOD_NOT_ALLOWED", + "CONFLICT", + "UNPROCESSABLE_ENTITY", + "TOO_MANY_REQUESTS", + "INSUFFICIENT_STORAGE", + "SERVICE_UNAVAILABLE" + ], + "type": "string" + }, + "statusDescription": { + "description": "Status description", + "type": "string" + } + }, + "type": "object" + }, + "Response": { + "properties": { + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "UpdateArtifactVersionConfigs": { + "description": "Request to publish an artifact", + "properties": { + "policy": { + "items": { + "enum": [ + "GOV_READY", + "FedRAMP" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "UpdateReleaseTypeRequest": { + "description": "Request to update release type of an artifact version", + "properties": { + "releaseType": { + "description": "Release type enum for the artifact version in the product lifecycle.", + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "type": "string" + }, + "version": { + "description": "Artifact version", + "type": "string" + } + }, + "required": [ + "version" + ], + "type": "object" + }, + "WorkflowStatusResponse": { + "description": "Response containing workflow status information", + "properties": { + "cloneStatus": { + "$ref": "#/components/schemas/CloneStatus", + "description": "Progress of cloning artifact version files" + }, + "duration": { + "description": "Wall-clock execution duration as an ISO-8601 duration (e.g. PT1H30M5S, PT0.001S); Omitted while IN_PROGRESS.", + "type": "string" + }, + "endTime": { + "description": "UTC instant when the workflow reached a closed state; omitted while IN_PROGRESS.", + "format": "date-time", + "type": "string" + }, + "message": { + "description": "Human-readable message about the workflow status", + "maxLength": 255, + "type": "string" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + }, + "startTime": { + "description": "UTC instant when the workflow execution started.", + "format": "date-time", + "type": "string" + }, + "status": { + "description": "Current status of the workflow", + "enum": [ + "IN_PROGRESS", + "COMPLETED", + "FAILED", + "CANCELED", + "TERMINATED", + "CONTINUED_AS_NEW", + "TIMED_OUT", + "UNKNOWN" + ], + "type": "string" + }, + "workflowType": { + "description": "Workflow type.", + "enum": [ + "CLONE", + "CUSTOMER_MANAGED_KEY" + ], + "type": "string" + } + }, + "required": [ + "message", + "requestStatus", + "status" + ], + "type": "object" + }, + "WorkflowStatusUrlResponse": { + "description": "Response containing workflow status URL and ID", + "properties": { + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + }, + "statusUrl": { + "description": "URL to check the workflow status", + "type": "string" + }, + "workflowId": { + "description": "ID of the workflow", + "type": "string" + } + }, + "type": "object" + }, + "AIFoundationModel": { + "type": "object", + "description": "Get AI Playground Response", + "properties": { + "artifactName": { + "type": "string", + "description": "Unique name of the model" + }, + "attributes": { + "type": "string", + "description": "Metadata json string" + }, + "createdDate": { + "type": "string", + "description": "Creation date in ISO-8601 format" + }, + "namespace": { + "type": "string", + "description": "org/team of the model" + }, + "nvcfFunctionId": { + "type": "string", + "description": "NVCF function id for the model playground" + }, + "openAPISpec": { + "type": "string", + "description": "OpenAPI specification for this model" + }, + "updatedDate": { + "type": "string", + "description": "Updated date in ISO-8601 format" + } + } + }, + "ArtifactDeploymentParameters": { + "type": "object", + "description": "Artifact Deployment Parameters object", + "properties": { + "container": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "x-description": "Deployment Artifact Parameters object" + }, + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParameters", + "x-description": "Deployment CPU Parameters object" + }, + "csp": { + "type": "string", + "description": "Cloud Service Provider name" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParameters", + "x-description": "Deployment GPU Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParameters", + "x-description": "Deployment Memory Parameters object" + }, + "model": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "x-description": "Deployment Artifact Parameters object" + }, + "resource": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "x-description": "Deployment Artifact Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParameters", + "x-description": "Deployment Storage Parameters object" + } + } + }, + "ArtifactDownloadAllRequest": { + "type": "object", + "description": "Request to download all files of an artifact", + "properties": { + "artifactType": { + "type": "string", + "description": "Type of artifact" + }, + "name": { + "type": "string", + "description": "Name of the artifact" + }, + "version": { + "type": "string", + "description": "Artifact version" + } + } + }, + "ArtifactDownloadRequest": { + "type": "object", + "description": "Request to download a single file of an artifact", + "properties": { + "artifactType": { + "type": "string", + "description": "Type of artifact" + }, + "filePath": { + "type": "string", + "description": "The file path of the artifact" + }, + "name": { + "type": "string", + "description": "Name of the artifact" + }, + "version": { + "type": "string", + "description": "Artifact version" + } + } + }, + "ArtifactEvent": { + "type": "object", + "description": "This event in the topic means that some change happened to the artifact", + "properties": { + "artifactType": { + "type": "string", + "description": "Artifact type" + }, + "eventType": { + "type": "string", + "description": "Artifact event type" + }, + "name": { + "type": "string", + "description": "Artifact name" + }, + "namespace": { + "type": "string", + "description": "Artifact namespace" + } + } + }, + "ArtifactOwnerDetails": { + "type": "object", + "properties": { + "createdDate": { + "type": "string", + "description": "Version pushed date in ISO-8601 format" + }, + "creatorUserEmail": { + "type": "string", + "description": "Email address of account used to create" + }, + "orgAlternateContact": { + "type": "string", + "description": "Email address of alternate contact for organization the image \n was pushed to" + }, + "orgOwnersEmails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Email addresses of all owners of organization the image was p\n ushed to" + }, + "pushedByUserEmail": { + "type": "string", + "description": "Email address of account used to create the Version" + }, + "repositoryName": { + "type": "string", + "description": "The repository name" + }, + "updatedDate": { + "type": "string", + "description": "Version update date in ISO-8601 format" + }, + "version": { + "type": "string", + "description": "Version" + } + } + }, + "ArtifactVersionCreateRequest": { + "type": "object", + "description": "Request to create a new artifact version", + "properties": { + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "Attribute key/value pairs" + }, + "description": { + "type": "string", + "description": "Description of the artifact version" + }, + "id": { + "type": "string", + "description": "Unique ID of the version" + } + } + }, + "Asset": { + "type": "object", + "description": "Asset object", + "properties": { + "artifactName": { + "type": "string", + "description": "Artifact name that asset belongs to" + }, + "artifactType": { + "type": "string", + "description": "Artifact type" + }, + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "Attribute key/value pairs" + }, + "cdnProvider": { + "type": "string", + "description": "Asset content delivery network provider t\n ype" + }, + "createdDate": { + "type": "string", + "description": "Creation date in ISO-8601 format" + }, + "fileName": { + "type": "string", + "description": "Asset file name" + }, + "hostedAt": { + "type": "array", + "items": { + "type": "string" + }, + "description": "URLs where the asset is hosted" + }, + "mimeType": { + "type": "string", + "description": "Asset mime type" + }, + "name": { + "type": "string", + "description": "Unique name of the asset" + }, + "orgName": { + "type": "string", + "description": "Name of the org that the collection belongs to" + }, + "originUrl": { + "type": "string", + "description": "Asset origin URL" + }, + "ownerName": { + "type": "string", + "description": "Name of the user who owns this version" + }, + "sizeInBytes": { + "type": "integer", + "format": "int64", + "description": "Size in bytes" + }, + "status": { + "type": "string", + "description": "Asset status type" + }, + "storageProvider": { + "type": "string", + "description": "Asset storage provider type" + }, + "teamName": { + "type": "string", + "description": "Name of the team that the collection belongs to" + }, + "updatedDate": { + "type": "string", + "description": "Updated date in ISO-8601 format" + }, + "uploadUrl": { + "type": "string", + "description": "Asset upload URL" + } + } + }, + "AssetResponse": { + "type": "object", + "description": "Response to asset request", + "properties": { + "asset": { + "$ref": "#/components/schemas/Asset", + "x-description": "Asset object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "AssetSimplified": { + "type": "object", + "description": "Asset object", + "properties": { + "name": { + "type": "string", + "description": "Unique name of the asset" + }, + "orgName": { + "type": "string", + "description": "Name of the org that the asset belongs to" + }, + "teamName": { + "type": "string", + "description": "Name of the team that the asset belongs to" + } + } + }, + "AssetStorageEvent": { + "type": "object", + "description": "This event in the topic means that some change happened to the asset st\n orage object", + "properties": { + "asset": { + "$ref": "#/components/schemas/Asset", + "x-description": "Asset object" + }, + "eventType": { + "type": "string", + "description": "Asset storage event type" + }, + "timestamp": { + "type": "string", + "description": "Timestamp in ISO-8601 format" + } + } + }, + "AssetUpdateRequest": { + "type": "object", + "description": "Request to update an asset", + "properties": { + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "Attribute key/value pairs" + }, + "fileName": { + "type": "string", + "description": "Asset file name" + }, + "mimeType": { + "type": "string", + "description": "MIME type" + }, + "originUrl": { + "type": "string", + "description": "Asset origin URL" + }, + "owner": { + "type": "string", + "description": "Owner of asset" + }, + "sizeInBytes": { + "type": "integer", + "format": "int64", + "description": "Size in bytes" + } + } + }, + "BlobMetadata": { + "type": "object", + "description": "Blob metadata - its size, dek-metadata (if applicable)", + "properties": { + "blobSize": { + "type": "integer", + "format": "int64", + "description": "BLOB size" + }, + "dekMetadata": { + "type": "string", + "description": "DEK metadata of the blob" + } + } + }, + "CatalogArtifactMetadata": { + "type": "object", + "properties": { + "accessType": { + "type": "string" + }, + "canGuestPull": { + "type": "boolean", + "description": "Guest users can download from the Catalog registry" + }, + "canPublicList": { + "type": "boolean", + "description": "Publicly listed/searchable in the Catalog registry" + }, + "isPublic": { + "type": "boolean", + "description": "Publicly available in the Catalog registry" + }, + "licenseTerms": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CatalogLicenseMetadata" + }, + "description": "License information for the model" + }, + "productNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Product names" + }, + "releaseType": { + "type": "string", + "description": "Release type enum for the artifact version in the \n product lifecycle." + } + } + }, + "CatalogArtifactVersionMetadata": { + "type": "object", + "properties": { + "accessType": { + "type": "string" + }, + "canGuestPull": { + "type": "boolean", + "description": "Guest users can download from the Catalog registry" + }, + "canPublicList": { + "type": "boolean", + "description": "Publicly listed/searchable in the Catalog registry" + }, + "isPublic": { + "type": "boolean", + "description": "Publicly available in the Catalog registry" + }, + "productNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Product names" + }, + "releaseType": { + "type": "string", + "description": "Release type enum for the artifact version in the \n product lifecycle." + } + } + }, + "CatalogLicenseMetadata": { + "type": "object", + "description": "License information for the artifact", + "properties": { + "licenseId": { + "type": "string", + "description": "License ID" + }, + "licenseVersion": { + "type": "string", + "description": "License version ID" + }, + "needsAcceptance": { + "type": "boolean", + "description": "Indicator if user needs to accept this license" + } + } + }, + "CollectionSimplified": { + "type": "object", + "description": "Collection object", + "properties": { + "name": { + "type": "string", + "description": "Unique name of the collection" + }, + "orgName": { + "type": "string", + "description": "Name of the org that the collection belongs to" + }, + "teamName": { + "type": "string", + "description": "Name of the team that the collection belongs to" + } + } + }, + "DeploymentParametersMetaListResponse": { + "type": "object", + "description": "Response to list deployment parameters metadata request", + "properties": { + "csp": { + "type": "string", + "description": "Cloud Service Provider name" + }, + "deploymentParametersMetas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeploymentParametersMeta" + } + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "x-description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "HelmApiErrorResponse": { + "type": "object", + "description": "Helm API error response", + "properties": { + "error": { + "type": "string" + } + } + }, + "HelmChartDependency": { + "type": "object", + "description": "Helm chart dependency object", + "properties": { + "name": { + "type": "string", + "description": "The name of the chart (example: nginx)" + }, + "repository": { + "type": "string", + "description": "The repository URL (example: https://example.com/charts)" + }, + "version": { + "type": "string", + "description": "The version of the chart (example: 1.2.3)" + } + } + }, + "HelmChartMaintainer": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "The maintainer's email (optional for each maintainer)" + }, + "name": { + "type": "string", + "description": "The maintainer's name (required for each maintainer)" + }, + "url": { + "type": "string", + "description": "A URL for the maintainer (optional for each maintainer)" + } + } + }, + "HelmChartVersion": { + "type": "object", + "description": "Helm chart version object", + "properties": { + "apiVersion": { + "type": "string", + "description": "The chart API version (required)" + }, + "appVersion": { + "type": "string", + "description": "The version of the app that this contains (optional). This nee\n dn't be SemVer." + }, + "dependencies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HelmChartDependency" + }, + "description": "A list of the chart requirements (optional)" + }, + "deprecated": { + "type": "boolean", + "description": "Whether this chart is deprecated (optional, boolean)" + }, + "description": { + "type": "string", + "description": "A single-sentence description of this project (optional)" + }, + "home": { + "type": "string", + "description": "The URL of this project's home page (optional)" + }, + "icon": { + "type": "string", + "description": "A URL to an SVG or PNG image to be used as an icon (optional)." + }, + "keywords": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of keywords about this project (optional)" + }, + "kubeVersion": { + "type": "string", + "description": "A SemVer range of compatible Kubernetes versions (optional)" + }, + "maintainers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HelmChartMaintainer" + } + }, + "name": { + "type": "string", + "description": "The name of the chart (required)" + }, + "sources": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of URLs to source code for this project (optional)" + }, + "type": { + "type": "string", + "description": "It is the type of chart (optional)" + }, + "version": { + "type": "string", + "description": "A SemVer 2 version (required)" + } + } + }, + "HelmChartVersionCreateResponse": { + "type": "object", + "description": "Helm chart version creation response", + "properties": { + "saved": { + "type": "boolean" + } + } + }, + "ModelCreateResponse": { + "type": "object", + "description": "DEPRECATED - use ModelResponse schema", + "properties": { + "model": { + "$ref": "#/components/schemas/Model", + "x-description": "Model object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "ModelVersionCreateResponse": { + "type": "object", + "description": "DEPRECATED - use ModelVersionResponse", + "properties": { + "model": { + "$ref": "#/components/schemas/Model", + "x-description": "Model object" + }, + "modelVersion": { + "$ref": "#/components/schemas/ModelVersion", + "x-description": "Model version object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "MultipartUploadIDSchema": { + "type": "object", + "description": "Schema for base64 encoded stringified Upload ID that is relayed during \n multipart upload of artifacts", + "properties": { + "dekMeta": { + "type": "string", + "description": "DEK metadata for encrypted enabled orgs" + }, + "sha256": { + "type": "string", + "description": "Base64 encoded sha256 hash of the entire file" + }, + "uploadID": { + "type": "string", + "description": "CSP upload ID" + } + } + }, + "VersionsOwnersListResponse": { + "type": "object", + "description": "Response to list versions owners", + "properties": { + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "x-description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + }, + "versionsOwnersList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactOwnerDetails" + } + } + } + } + }, + "securitySchemes": { + "authn": { + "flows": { + "clientCredentials": { + "scopes": {}, + "tokenUrl": "authn.nvidia.com/token" + } + }, + "type": "oauth2" + }, + "ngc-ssa": { + "flows": { + "clientCredentials": { + "scopes": { + "addArtifactToCollectionFromAnotherOrgOrTeam": "{scope}", + "cloneArtifact": "{scope}", + "createArtifact": "{scope}", + "createArtifactVersion": "{scope}", + "createCollection": "{scope}", + "createGpuByPci": "{scope}", + "createModel": "{scope}", + "createModelVersion": "{scope}", + "createNimMetadata": "{scope}", + "createRecipe": "{scope}", + "createRecipeVersion": "{scope}", + "deleteArtifact": "{scope}", + "deleteArtifactVersion": "{scope}", + "deleteArtifacts": "{scope}", + "deleteGpuByPci": "{scope}", + "downloadArtifactVersionFile": "{scope}", + "downloadArtifactVersionFileFilterByOrgEnablement": "{scope}", + "getArtifact": "{scope}", + "getArtifactVersion": "{scope}", + "getArtifactVersionOwners": "{scope}", + "getCollection": "{scope}", + "getModel": "{scope}", + "getModelVersion": "{scope}", + "getModelVersionFilterByOrgEnablement": "{scope}", + "getPublicFlags": "{scope}", + "getRecipe": "{scope}", + "getRecipeVersion": "{scope}", + "getRecipeVersionFilterByOrgEnablement": "{scope}", + "helmProxy": "{scope}", + "kas": "{scope}", + "listArtifactVersionFiles": "{scope}", + "listArtifactVersionFilesFilterByOrgEnablement": "{scope}", + "listArtifactVersions": "{scope}", + "listArtifacts": "{scope}", + "listCollectionArtifacts": "{scope}", + "listModelVersionFiles": "{scope}", + "listModelVersionFilesFilterByOrgEnablement": "{scope}", + "listModelVersions": "{scope}", + "listModels": "{scope}", + "listRecipeVersionFiles": "{scope}", + "listRecipeVersionFilesFilterByOrgEnablement": "{scope}", + "listRecipeVersions": "{scope}", + "listRecipes": "{scope}", + "notifyScanResult": "{scope}", + "patchCollectionArtifacts": "{scope}", + "publishArtifact": "{scope}", + "publishCollection": "{scope}", + "purgeArtifact": "{scope}", + "readGpuByPci": "{scope}", + "recreateArtifactVersionZip": "{scope}", + "signArtifactVersion": "{scope}", + "syncReleaseTypeLabels": "{scope}", + "undoPublishArtifact": "{scope}", + "undoPublishCollection": "{scope}", + "updateArtifact": "{scope}", + "updateArtifactVersion": "{scope}", + "updateCollection": "{scope}", + "updateGpuByPci": "{scope}", + "updateModel": "{scope}", + "updateModelVersion": "{scope}", + "updateRecipe": "{scope}", + "updateRecipeVersion": "{scope}", + "writeArtifacts": "{scope}" + }, + "tokenUrl": "https://osyjw74z3274aq96bfvexmu2fpcahruj9udchmlgqbs.ssa.nvidia.com/token" + } + }, + "type": "oauth2" + }, + "ssa": { + "description": "A bearer token in the format of a JWS and conforms to the specifications for JWT included in RFC7519. SSA attempts to support the applicable best current practices outlined in RFC8725", + "flows": { + "clientCredentials": { + "scopes": { + "cloneArtifact": "{scope}", + "getPublicFlags": "{scope}", + "helmProxy": "{scope}", + "kas": "{scope}", + "publishArtifact": "{scope}", + "publishCollection": "{scope}", + "recreateArtifactVersionZip": "{scope}", + "undoPublishArtifact": "{scope}", + "undoPublishCollection": "{scope}" + }, + "tokenUrl": "https://osyjw74z3274aq96bfvexmu2fpcahruj9udchmlgqbs.ssa.nvidia.com/token" + } + }, + "type": "oauth2" + } + } + }, + "info": { + "contact": { + "name": "NVIDIA", + "url": "https://www.nvidia.com/" + }, + "termsOfService": "https://www.nvidia.com/en-us/legal_info", + "title": "Models API", + "version": "0.0.1-SNAPSHOT" + }, + "openapi": "3.1.0", + "paths": { + "/health": { + "get": { + "description": "Used to check the health status of the web service only", + "operationId": "status", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HealthResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Web Service Health Status", + "tags": [ + "Health" + ], + "x-ssa-scopes": [] + } + }, + "/health/**": { + "get": { + "description": "Get Health Information about this service", + "operationId": "getHealth", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/KaizenHealthStatus" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get Health Information", + "tags": [ + "Health" + ], + "x-ssa-scopes": [] + } + }, + "/health/all": { + "get": { + "description": "Used to get health status of all services", + "operationId": "statusDetails", + "parameters": [ + { + "description": "boolean value to indicating to show details or not", + "in": "query", + "name": "showDetails", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "secret value that validates the call in order to show details", + "in": "query", + "name": "secret", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HealthResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "All Service Health Status", + "tags": [ + "Health" + ], + "x-ssa-scopes": [] + } + }, + "/v2/artifact-registry/org/{org_name}/encryption-keys": { + "get": { + "description": "List encryption keys in org", + "operationId": "listKeysInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/KeyListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List encryption keys in org", + "tags": [ + "Encryption Keys" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/artifact-registry/org/{org_name}/encryption-keys/{key_id}": { + "delete": { + "description": "Revoke encryption key and disassociate from all artifacts in org", + "operationId": "deleteKeyFromOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Key ID", + "in": "path", + "name": "key_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkflowStatusUrlResponse" + } + } + }, + "description": "Accepted" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Revoke encryption key in org", + "tags": [ + "Encryption Keys" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "description": "List artifacts for encryption key in org", + "operationId": "listArtifactsForKeyInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Key ID", + "in": "path", + "name": "key_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "query", + "name": "artifact-type", + "required": false, + "schema": { + "default": "MODEL", + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/KeyArtifactListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List artifacts for encryption key in org", + "tags": [ + "Encryption Keys" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/artifact-registry/org/{org_name}/team/{team_name}/encryption-keys": { + "get": { + "description": "List encryption keys in org/team", + "operationId": "listKeysInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/KeyListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List encryption keys in org/team", + "tags": [ + "Encryption Keys" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/artifact-registry/org/{org_name}/team/{team_name}/encryption-keys/{key_id}": { + "delete": { + "description": "Revoke encryption key and disassociate from all artifacts in org/team", + "operationId": "deleteKeyFromTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Key ID", + "in": "path", + "name": "key_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkflowStatusUrlResponse" + } + } + }, + "description": "Accepted" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Revoke encryption key in org/team", + "tags": [ + "Encryption Keys" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "description": "List artifacts for encryption key in org/team", + "operationId": "listArtifactsForKeyInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Key ID", + "in": "path", + "name": "key_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "query", + "name": "artifactType", + "required": false, + "schema": { + "default": "MODEL", + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/KeyArtifactListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List artifacts for encryption key in org/team", + "tags": [ + "Encryption Keys" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/artifact-registry/org/{org}/team/{team}/workflows/{workflow_id}": { + "get": { + "description": "Returns the current status (pending, running, completed, or failed) of an artifact-registry Temporal workflow execution within the specified organization and team.", + "operationId": "getWorkflowStatusForTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Workflow identifier", + "in": "path", + "name": "workflow_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/WorkflowStatusResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "cloneArtifact" + ] + } + ], + "summary": "Get team-scoped workflow status", + "tags": [ + "Workflows" + ], + "x-ssa-scopes": [ + "kas", + "cloneArtifact" + ] + } + }, + "/v2/artifact-registry/org/{org}/workflows/{workflow_id}": { + "get": { + "description": "Returns the current status (pending, running, completed, or failed) of an artifact-registry Temporal workflow execution within the specified organization.", + "operationId": "getWorkflowStatus", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Workflow identifier", + "in": "path", + "name": "workflow_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/WorkflowStatusResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "cloneArtifact" + ] + } + ], + "summary": "Get workflow status", + "tags": [ + "Workflows" + ], + "x-ssa-scopes": [ + "kas", + "cloneArtifact" + ] + } + }, + "/v2/collections": { + "get": { + "description": "List public collections", + "operationId": "listPublicCollections", + "parameters": [ + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List public collections", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [] + } + }, + "/v2/collections/{org_name}/{collection_name}": { + "get": { + "description": "Get collection details in org as guest", + "operationId": "getCollectionInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get collection in org as guest", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [] + } + }, + "/v2/collections/{org_name}/{collection_name}/artifacts/{artifact_type}": { + "get": { + "description": "List collection artifacts the user can access in the specified org as guest", + "operationId": "listCollectionArtifactsInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Order by", + "in": "query", + "name": "order-by", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List collection artifacts in org as guest", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [] + } + }, + "/v2/collections/{org_name}/{team_name}/{collection_name}": { + "get": { + "description": "Get collection details in team as guest", + "operationId": "getCollectionInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get collection in team as guest", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [] + } + }, + "/v2/collections/{org_name}/{team_name}/{collection_name}/artifacts/{artifact_type}": { + "get": { + "description": "List collection artifacts the user can access in the specified org and team as guest", + "operationId": "listCollectionArtifactsInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Order by", + "in": "query", + "name": "order-by", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List collection artifacts in org and team as guest", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [] + } + }, + "/v2/csps": { + "get": { + "description": "List cloud service providers", + "operationId": "listCloudServiceProviders", + "parameters": [ + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "maximum": 5000, + "minimum": 1, + "type": "integer" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "maximum": 10000, + "minimum": 0, + "type": "integer" + } + }, + { + "description": "Include disabled", + "in": "query", + "name": "include-disabled", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudServiceProviderListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List cloud service providers", + "tags": [ + "Cloud service providers" + ], + "x-ssa-scopes": [] + }, + "post": { + "description": "Create cloud service provider", + "operationId": "createCloudServiceProvider", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudServiceProviderCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudServiceProvider" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create cloud service provider", + "tags": [ + "Cloud service providers" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/csps/{artifact_type}/org/{org_name}/team/{team_name}/{artifact_name}/versions/{version_id}/deployments/{csp_name}": { + "post": { + "description": "Create public artifact version deployment url in team", + "operationId": "createPublicArtifactDeploymentUrlInTeam", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlResponse" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create public artifact version deployment url in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v2/csps/{artifact_type}/org/{org_name}/team/{team_name}/{artifact_name}/versions/{version_id}/files/**/deployments/{csp_name}": { + "post": { + "description": "Create public artifact version file deployment url in team", + "operationId": "createPublicArtifactVersionFileDeploymentUrlInTeam", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlResponse" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create public artifact version file deployment url in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v2/csps/{artifact_type}/org/{org_name}/{artifact_name}/versions/{version_id}/deployments/{csp_name}": { + "post": { + "description": "Create public artifact version deployment url in org", + "operationId": "createPublicArtifactDeploymentUrlInOrg", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlResponse" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create public artifact version deployment url in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v2/csps/{artifact_type}/org/{org_name}/{artifact_name}/versions/{version_id}/files/**/deployments/{csp_name}": { + "post": { + "description": "Create public artifact version file deployment url in org", + "operationId": "createPublicArtifactVersionFileDeploymentUrlInOrg", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlResponse" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create public artifact version file deployment url in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v2/csps/{artifact_type}/{org_name}/{artifact_name}/deployments/params": { + "get": { + "description": "List public artifact deployment parameters in org", + "operationId": "listPublicArtifactDeploymentParametersInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List public artifact deployment parameters in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v2/csps/{artifact_type}/{org_name}/{artifact_name}/deployments/{csp_name}/params": { + "get": { + "description": "Get public artifact deployment parameters details in org", + "operationId": "getPublicArtifactDeploymentParametersInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get public artifact deployment parameters details in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v2/csps/{artifact_type}/{org_name}/{team_name}/{artifact_name}/deployments/params": { + "get": { + "description": "List public artifact deployment parameters in team", + "operationId": "listPublicArtifactDeploymentParametersInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List public artifact deployment parameters in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v2/csps/{artifact_type}/{org_name}/{team_name}/{artifact_name}/deployments/{csp_name}/params": { + "get": { + "description": "Get public artifact deployment parameters details in team", + "operationId": "getPublicArtifactDeploymentParametersInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get public artifact deployment parameters details in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v2/csps/{csp_name}": { + "delete": { + "description": "Delete cloud service provider", + "operationId": "deleteCloudServiceProvider", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Delete cloud service provider", + "tags": [ + "Cloud service providers" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "description": "Get cloud service provider details", + "operationId": "getCloudServiceProviderDetails", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudServiceProvider" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get cloud service provider details", + "tags": [ + "Cloud service providers" + ], + "x-ssa-scopes": [] + }, + "patch": { + "description": "Update cloud service provider", + "operationId": "updateCloudServiceProvider", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudServiceProviderUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudServiceProvider" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Update cloud service provider", + "tags": [ + "Cloud service providers" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/csps/{csp_name}/deployments/params": { + "delete": { + "description": "Delete cloud service provider deployment parameters", + "operationId": "deleteCloudServiceProviderDeploymentParameters", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Delete cloud service provider deployment parameters", + "tags": [ + "Cloud service provider deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "description": "Get cloud service provider deployment parameters details", + "operationId": "getCloudServiceProviderDeploymentParametersDetails", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get cloud service provider deployment parameters details", + "tags": [ + "Cloud service provider deployment parameters" + ], + "x-ssa-scopes": [] + }, + "patch": { + "description": "Update cloud service provider deployment parameters", + "operationId": "updateCloudServiceProviderDeploymentParameters", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Update cloud service provider deployment parameters", + "tags": [ + "Cloud service provider deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "post": { + "description": "Create cloud service provider deployment parameters", + "operationId": "createCloudServiceProviderDeploymentParameters", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create cloud service provider deployment parameters", + "tags": [ + "Cloud service provider deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/csps/{csp_name}/deployments/params/meta": { + "delete": { + "description": "Delete cloud service provider deployment parameters meta", + "operationId": "deleteCloudServiceProviderDeploymentParametersMeta", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Delete cloud service provider deployment parameters meta", + "tags": [ + "Deployment parameters meta" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "description": "Get cloud service provider deployment parameters meta details", + "operationId": "getCloudServiceProviderDeploymentParametersMetaDetails", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersMeta" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get cloud service provider deployment parameters meta details", + "tags": [ + "Deployment parameters meta" + ], + "x-ssa-scopes": [] + }, + "patch": { + "description": "Update cloud service provider deployment parameters meta", + "operationId": "updateCloudServiceProviderDeploymentParametersMeta", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersMetaUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersMeta" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Update cloud service provider deployment parameters meta", + "tags": [ + "Deployment parameters meta" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "post": { + "description": "Create cloud service provider deployment parameters meta", + "operationId": "createCloudServiceProviderDeploymentParametersMeta", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersMetaCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersMeta" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create cloud service provider deployment parameters meta", + "tags": [ + "Deployment parameters meta" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/deploy/csps": { + "get": { + "description": "List cloud service providers", + "operationId": "listCloudServiceProviders_1", + "parameters": [ + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "maximum": 5000, + "minimum": 1, + "type": "integer" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "maximum": 10000, + "minimum": 0, + "type": "integer" + } + }, + { + "description": "Include disabled", + "in": "query", + "name": "include-disabled", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudServiceProviderListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List cloud service providers", + "tags": [ + "Cloud service providers" + ], + "x-ssa-scopes": [] + } + }, + "/v2/deploy/csps/{artifact_type}/{org_name}/{artifact_name}/deployments/params": { + "get": { + "description": "List public artifact deployment parameters in org as guest", + "operationId": "listPublicArtifactDeploymentParametersInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List public artifact deployment parameters in org as guest", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v2/deploy/csps/{artifact_type}/{org_name}/{artifact_name}/deployments/{csp_name}/params": { + "get": { + "description": "Get public artifact deployment parameters details in org as guest", + "operationId": "getPublicArtifactDeploymentParametersInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get public artifact deployment parameters details in org as guest", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v2/deploy/csps/{artifact_type}/{org_name}/{team_name}/{artifact_name}/deployments/params": { + "get": { + "description": "List public artifact deployment parameters in team as guest", + "operationId": "listPublicArtifactDeploymentParametersInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List public artifact deployment parameters in team as guest", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v2/deploy/csps/{artifact_type}/{org_name}/{team_name}/{artifact_name}/deployments/{csp_name}/params": { + "get": { + "description": "Get public artifact deployment parameters details in team as guest", + "operationId": "getPublicArtifactDeploymentParametersInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get public artifact deployment parameters details in team as guest", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v2/deploy/csps/{csp_name}": { + "get": { + "description": "Get cloud service provider details", + "operationId": "getCloudServiceProviderDetails_1", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudServiceProvider" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get cloud service provider details", + "tags": [ + "Cloud service providers" + ], + "x-ssa-scopes": [] + } + }, + "/v2/gpus": { + "get": { + "description": "Get all GPU by PCI records", + "operationId": "getGpus", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/GpuByPciResponse" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "readGpuByPci" + ] + } + ], + "summary": "Get all GPUs", + "tags": [ + "GpuByPci" + ], + "x-ssa-scopes": [ + "kas", + "readGpuByPci" + ] + } + }, + "/v2/gpus/pci-device-id/{pci_device_id}": { + "delete": { + "description": "Delete a GPU record using only PCI Device ID (pciVendorId and pciSubsystemDeviceId default to 'unknown')", + "operationId": "deleteGpuByPciDeviceId", + "parameters": [ + { + "description": "PCI Device ID", + "in": "path", + "name": "pci_device_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "deleteGpuByPci" + ] + } + ], + "summary": "Delete GPU by PCI Device ID only", + "tags": [ + "GpuByPci" + ], + "x-ssa-scopes": [ + "deleteGpuByPci", + "kas" + ] + }, + "get": { + "description": "Get all GPU records matching the given PCI Device ID", + "operationId": "getGpuByPciDeviceId", + "parameters": [ + { + "description": "PCI Device ID", + "in": "path", + "name": "pci_device_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/GpuByPciResponse" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "readGpuByPci" + ] + } + ], + "summary": "Get GPU by PCI Device ID", + "tags": [ + "GpuByPci" + ], + "x-ssa-scopes": [ + "kas", + "readGpuByPci" + ] + }, + "patch": { + "description": "Partially update a GPU record using only PCI Device ID (pciVendorId and pciSubsystemDeviceId default to 'unknown'). Only provided fields will be updated.", + "operationId": "updateGpuByPciDeviceId", + "parameters": [ + { + "description": "PCI Device ID", + "in": "path", + "name": "pci_device_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GpuByPciUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GpuByPciResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateGpuByPci" + ] + } + ], + "summary": "Partially update GPU by PCI Device ID only", + "tags": [ + "GpuByPci" + ], + "x-ssa-scopes": [ + "kas", + "updateGpuByPci" + ] + }, + "post": { + "description": "Create a new GPU record using only PCI Device ID (pciVendorId and pciSubsystemDeviceId default to 'unknown')", + "operationId": "createGpuByPciDeviceId", + "parameters": [ + { + "description": "PCI Device ID", + "in": "path", + "name": "pci_device_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GpuByPciCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GpuByPciResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createGpuByPci" + ] + } + ], + "summary": "Create GPU by PCI Device ID only", + "tags": [ + "GpuByPci" + ], + "x-ssa-scopes": [ + "kas", + "createGpuByPci" + ] + } + }, + "/v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id}": { + "get": { + "description": "Get all GPUs by PCI records matching the given PCI Device ID and Vendor ID", + "operationId": "getGpuByPciDeviceIdVendorId", + "parameters": [ + { + "description": "PCI Device ID", + "in": "path", + "name": "pci_device_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + }, + { + "description": "PCI Vendor ID", + "in": "path", + "name": "pci_vendor_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/GpuByPciResponse" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "readGpuByPci" + ] + } + ], + "summary": "Get GPUs by PCI Device ID and Vendor ID", + "tags": [ + "GpuByPci" + ], + "x-ssa-scopes": [ + "kas", + "readGpuByPci" + ] + } + }, + "/v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id}/pci-subsystem-device-id/{pci_subsystem_device_id}": { + "delete": { + "description": "Delete a GPU record matching the full PCI composite key", + "operationId": "deleteGpuByPciFullKey", + "parameters": [ + { + "description": "PCI Device ID", + "in": "path", + "name": "pci_device_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + }, + { + "description": "PCI Vendor ID", + "in": "path", + "name": "pci_vendor_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + }, + { + "description": "PCI Subsystem Device ID", + "in": "path", + "name": "pci_subsystem_device_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "deleteGpuByPci" + ] + } + ], + "summary": "Delete GPU by PCI Device ID, Vendor ID, and Subsystem Device ID", + "tags": [ + "GpuByPci" + ], + "x-ssa-scopes": [ + "deleteGpuByPci", + "kas" + ] + }, + "get": { + "description": "Get a single GPU record matching the full PCI composite key", + "operationId": "getGpuByPciDeviceIdVendorIdSubsystemDeviceId", + "parameters": [ + { + "description": "PCI Device ID", + "in": "path", + "name": "pci_device_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + }, + { + "description": "PCI Vendor ID", + "in": "path", + "name": "pci_vendor_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + }, + { + "description": "PCI Subsystem Device ID", + "in": "path", + "name": "pci_subsystem_device_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GpuByPciResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "readGpuByPci" + ] + } + ], + "summary": "Get GPU by PCI Device ID, Vendor ID, and Subsystem Device ID", + "tags": [ + "GpuByPci" + ], + "x-ssa-scopes": [ + "kas", + "readGpuByPci" + ] + }, + "patch": { + "description": "Partially update a GPU record matching the full PCI composite key. Only provided fields will be updated.", + "operationId": "updateGpuByPciFullKey", + "parameters": [ + { + "description": "PCI Device ID", + "in": "path", + "name": "pci_device_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + }, + { + "description": "PCI Vendor ID", + "in": "path", + "name": "pci_vendor_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + }, + { + "description": "PCI Subsystem Device ID", + "in": "path", + "name": "pci_subsystem_device_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GpuByPciUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GpuByPciResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateGpuByPci" + ] + } + ], + "summary": "Partially update GPU by PCI Device ID, Vendor ID, and Subsystem Device ID", + "tags": [ + "GpuByPci" + ], + "x-ssa-scopes": [ + "kas", + "updateGpuByPci" + ] + }, + "post": { + "description": "Create a new GPU record using the full PCI composite key", + "operationId": "createGpuByPciFullKey", + "parameters": [ + { + "description": "PCI Device ID", + "in": "path", + "name": "pci_device_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + }, + { + "description": "PCI Vendor ID", + "in": "path", + "name": "pci_vendor_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + }, + { + "description": "PCI Subsystem Device ID", + "in": "path", + "name": "pci_subsystem_device_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GpuByPciCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GpuByPciResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createGpuByPci" + ] + } + ], + "summary": "Create GPU by PCI Device ID, Vendor ID, and Subsystem Device ID", + "tags": [ + "GpuByPci" + ], + "x-ssa-scopes": [ + "kas", + "createGpuByPci" + ] + } + }, + "/v2/helm-charts/{org_name}/{artifact_name}/versions": { + "get": { + "description": "List chart versions in org as guest", + "operationId": "listHelmChartVersionsInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List chart versions in org as guest", + "tags": [ + "Helm Charts" + ], + "x-ssa-scopes": [] + } + }, + "/v2/helm-charts/{org_name}/{artifact_name}/versions/{version_id}": { + "get": { + "description": "Get chart version in org as guest", + "operationId": "getHelmChartVersionInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get chart version in org as guest", + "tags": [ + "Helm Charts" + ], + "x-ssa-scopes": [] + } + }, + "/v2/helm-charts/{org_name}/{team_name}/{artifact_name}/versions": { + "get": { + "description": "List chart versions in team as guest", + "operationId": "listHelmChartVersionsInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List chart versions in team as guest", + "tags": [ + "Helm Charts" + ], + "x-ssa-scopes": [] + } + }, + "/v2/helm-charts/{org_name}/{team_name}/{artifact_name}/versions/{version_id}": { + "get": { + "description": "Get chart version in team as guest", + "operationId": "getHelmChartVersionInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get chart version in team as guest", + "tags": [ + "Helm Charts" + ], + "x-ssa-scopes": [] + } + }, + "/v2/malware-scan-notification": { + "post": { + "description": "Update artifact's malware scan result with MalwareScanNotification", + "operationId": "notifyScanResult", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MalwareScanNotification" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotifyMalwareScanResultResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "notifyScanResult" + ] + } + ], + "summary": "Update artifact's malware scan result with MalwareScanNotification", + "tags": [ + "MalwareScan" + ], + "x-ssa-scopes": [ + "notifyScanResult", + "kas" + ] + } + }, + "/v2/models": { + "get": { + "description": "This operation lists public models.", + "operationId": "listPublicModels", + "parameters": [ + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List public models", + "tags": [ + "Models" + ], + "x-ssa-scopes": [] + } + }, + "/v2/models/{org_name}/{model_name}": { + "get": { + "description": "This operation gets info of a model in the org as guest.", + "operationId": "getModelInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get model in org as guest", + "tags": [ + "Models" + ], + "x-ssa-scopes": [] + } + }, + "/v2/models/{org_name}/{model_name}/versions": { + "get": { + "description": "List model versions in org as guest", + "operationId": "listModelVersionsInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List model versions in org as guest", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [] + } + }, + "/v2/models/{org_name}/{model_name}/versions/{version_id}": { + "get": { + "description": "Get model version in org as guest", + "operationId": "getModelVersionInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get model version in org as guest", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [] + } + }, + "/v2/models/{org_name}/{model_name}/versions/{version_id}/files": { + "get": { + "description": "List files of the model version in org as guest", + "operationId": "listModeFilesInOrgAsGuest_2", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List model files in org as guest", + "tags": [ + "Model Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v2/models/{org_name}/{team_name}/{model_name}": { + "get": { + "description": "This operation gets info of a model in the org/team as guest.", + "operationId": "getModelInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get model in team as guest", + "tags": [ + "Models" + ], + "x-ssa-scopes": [] + } + }, + "/v2/models/{org_name}/{team_name}/{model_name}/versions": { + "get": { + "description": "List model versions in team as guest", + "operationId": "listModelVersionsInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List model versions in team as guest", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [] + } + }, + "/v2/models/{org_name}/{team_name}/{model_name}/versions/{version_id}": { + "get": { + "description": "Get model version in team as guest", + "operationId": "getModelVersionInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get model version in team as guest", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [] + } + }, + "/v2/models/{org_name}/{team_name}/{model_name}/versions/{version_id}/files": { + "get": { + "description": "List files of the model version in team as guest", + "operationId": "listModeFilesInTeamAsGuest_2", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List model files in team as guest", + "tags": [ + "Model Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v2/nim/{team}/{nim_name}/{tag}/metadata": { + "post": { + "description": "Registers NIM profile metadata for the given team, NIM name, and tag. This is a placeholder that validates the supplied profiles and echoes the provided fields back to the caller.\nSSA: requires the following scope `createNimMetadata`\n", + "operationId": "createNimMetadata", + "parameters": [ + { + "description": "Team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "pattern": "^[a-zA-Z0-9._-]+$", + "type": "string" + } + }, + { + "description": "NIM name", + "in": "path", + "name": "nim_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "pattern": "^[a-zA-Z0-9._-]+$", + "type": "string" + } + }, + { + "description": "NIM tag", + "in": "path", + "name": "tag", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "pattern": "^[a-zA-Z0-9._-]+$", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NimManifestMetadataRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NimManifestMetadataResponse" + } + } + }, + "description": "Created" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createNimMetadata" + ] + } + ], + "summary": "Create NIM metadata", + "tags": [ + "NIM Metadata" + ], + "x-ssa-scopes": [ + "createNimMetadata", + "kas" + ] + } + }, + "/v2/org/{org_name}/collections": { + "get": { + "description": "List collections the user can access in the specified org", + "operationId": "listCollectionsInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Order by", + "in": "query", + "name": "order-by", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List collections in org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "post": { + "description": "Create collection in org", + "operationId": "createCollectionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createCollection" + ] + } + ], + "summary": "Create collection in org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas", + "createCollection" + ] + } + }, + "/v2/org/{org_name}/collections/{collection_name}": { + "delete": { + "description": "Delete collection in the specified org", + "operationId": "deleteCollectionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Delete collection in org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "description": "Get collection details in org", + "operationId": "getCollectionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getCollection" + ] + } + ], + "summary": "Get collection in org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "getCollection", + "kas" + ] + }, + "patch": { + "description": "Update collection details in org", + "operationId": "updateCollectionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateCollection" + ] + } + ], + "summary": "Update collection in org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "updateCollection", + "kas" + ] + } + }, + "/v2/org/{org_name}/collections/{collection_name}/artifacts": { + "patch": { + "description": "Patch collection in the specified org", + "operationId": "patchCollectionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionPatchRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "patchCollectionArtifacts" + ] + } + ], + "summary": "Patch collection in org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "patchCollectionArtifacts", + "kas" + ] + } + }, + "/v2/org/{org_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/team/{artifact_team_name}/{artifact_type}/{artifact_name}": { + "delete": { + "description": "Remove artifact from the specified collection in the specified org from another org", + "operationId": "removeArtifactFromCollectionInOrgFromAnotherOrgAndTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact organization name", + "in": "path", + "name": "artifact_org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact team name", + "in": "path", + "name": "artifact_team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Remove artifact from collection in org from another org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "description": "Add artifact to the specified collection in the specified org from another org and team", + "operationId": "addArtifactToCollectionInOrgFromAnotherOrgAndTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact organization name", + "in": "path", + "name": "artifact_org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact team name", + "in": "path", + "name": "artifact_team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "addArtifactToCollectionFromAnotherOrgOrTeam" + ] + } + ], + "summary": "Add artifact to collection in org from another org and team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "addArtifactToCollectionFromAnotherOrgOrTeam", + "kas" + ] + } + }, + "/v2/org/{org_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/{artifact_type}/{artifact_name}": { + "delete": { + "description": "Remove artifact from the specified collection in the specified org from another org", + "operationId": "removeArtifactFromCollectionInOrgFromAnotherOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact organization name", + "in": "path", + "name": "artifact_org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Remove artifact from collection in org from another org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "description": "Add artifact to the specified collection in the specified org from another org", + "operationId": "addArtifactToCollectionInOrgFromAnotherOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact organization name", + "in": "path", + "name": "artifact_org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "addArtifactToCollectionFromAnotherOrgOrTeam" + ] + } + ], + "summary": "Add artifact to collection in org from another org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "addArtifactToCollectionFromAnotherOrgOrTeam", + "kas" + ] + } + }, + "/v2/org/{org_name}/collections/{collection_name}/artifacts/{artifact_type}": { + "get": { + "description": "List collection artifacts the user can access in the specified org", + "operationId": "listCollectionArtifactsInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Order by", + "in": "query", + "name": "order-by", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listCollectionArtifacts" + ] + } + ], + "summary": "List collection artifacts in org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas", + "listCollectionArtifacts" + ] + } + }, + "/v2/org/{org_name}/collections/{collection_name}/share": { + "delete": { + "description": "Undo publishing of collection to public", + "operationId": "undoPublishCollection_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "undoPublishCollection" + ] + } + ], + "summary": "Undo publishing of collection to public", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "undoPublishCollection" + ] + }, + "put": { + "deprecated": true, + "description": "Publish collection to public", + "operationId": "publishCollection_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Indicates if guest users can download this collection", + "in": "query", + "name": "guest-can-download", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "description": "Indicates if collection is listed publicly", + "in": "query", + "name": "public-can-list", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishCollection" + ] + } + ], + "summary": "Publish collection to public", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishCollection" + ] + } + }, + "/v2/org/{org_name}/collections/{collection_name}/share/product": { + "put": { + "description": "Publish collection to product", + "operationId": "publishCollectionFromRequest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionPublishRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishCollection" + ] + } + ], + "summary": "Publish collection to product", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishCollection" + ] + } + }, + "/v2/org/{org_name}/collections/{collection_name}/shares/org": { + "delete": { + "deprecated": true, + "description": "Revoke shared org collection with the org", + "operationId": "revokeShareCollectionInOrgWithOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Revoke shared org collection with the org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "deprecated": true, + "description": "Share org collection with the org", + "operationId": "shareCollectionInOrgWithOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Share org collection with the org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/collections/{collection_name}/shares/team/{target_team}": { + "delete": { + "deprecated": true, + "description": "Revoke shared org collection with the specified team", + "operationId": "revokeShareCollectionInOrgWithTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Target team name", + "in": "path", + "name": "target_team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Revoke shared org collection with the specified team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "deprecated": true, + "description": "Share org collection with the specified team", + "operationId": "shareCollectionInOrgWithTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Target team name", + "in": "path", + "name": "target_team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Share org collection with the specified team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/collections/{collection_name}/{artifact_type}/{artifact_name}": { + "delete": { + "description": "Remove artifact from the specified collection in the specified org", + "operationId": "removeArtifactFromCollectionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Remove artifact from collection in org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "description": "Add artifact to the specified collection in the specified org", + "operationId": "addArtifactToCollectionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Add artifact to collection in org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/files/commit": { + "post": { + "description": "Commit artifact files metadata to database given request", + "operationId": "commitArtifactFiles", + "parameters": [ + { + "description": "Org Name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Upload pending flag - if set to true, leaves the artifact version in UPLOAD PENDING state without marking it complete", + "in": "query", + "name": "upload-pending", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Set version to latest", + "in": "query", + "name": "set-latest", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactFilesCommitRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Commit artifact files metadata to database", + "tags": [ + "ArtifactChecksum" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/helm-charts/{artifact_name}/versions": { + "get": { + "description": "List chart versions in org", + "operationId": "listHelmChartVersionsInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listArtifactVersions" + ] + } + ], + "summary": "List chart versions in org", + "tags": [ + "Helm Charts" + ], + "x-ssa-scopes": [ + "kas", + "listArtifactVersions" + ] + } + }, + "/v2/org/{org_name}/helm-charts/{artifact_name}/versions/{version_id}": { + "get": { + "description": "Get chart version in org", + "operationId": "getHelmChartVersionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getArtifactVersion" + ] + } + ], + "summary": "Get chart version in org", + "tags": [ + "Helm Charts" + ], + "x-ssa-scopes": [ + "getArtifactVersion", + "kas" + ] + }, + "patch": { + "description": "Update chart version information in org e.g. upload status", + "operationId": "updateHelmChartVersionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateArtifactVersion" + ] + } + ], + "summary": "Update chart version in org", + "tags": [ + "Helm Charts" + ], + "x-ssa-scopes": [ + "updateArtifactVersion", + "kas" + ] + } + }, + "/v2/org/{org_name}/models": { + "get": { + "description": "This operation lists models the user can access in the org.", + "operationId": "listModelsInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "deprecated": true, + "description": "Application name", + "in": "query", + "name": "app-name", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "deprecated": true, + "description": "[Deprecated] Page reference, Use page-number instead", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listModels" + ] + } + ], + "summary": "List models in org", + "tags": [ + "Models" + ], + "x-ssa-scopes": [ + "kas", + "listModels" + ] + }, + "post": { + "description": "This operation creates a model in the org.", + "operationId": "createModelInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createModel" + ] + } + ], + "summary": "Create model in org", + "tags": [ + "Models" + ], + "x-ssa-scopes": [ + "createModel", + "kas" + ] + } + }, + "/v2/org/{org_name}/models/{artifact_name}/versions/{version_id}/stash": { + "patch": { + "description": "Stash artifact version information in org during upload paused state", + "operationId": "stashArtifactVersionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateModelVersion" + ] + } + ], + "summary": "Stash artifact version in org", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "updateModelVersion", + "kas" + ] + } + }, + "/v2/org/{org_name}/models/{model_name}": { + "get": { + "description": "This operation gets info of a model in the org.", + "operationId": "getModelInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getModel" + ] + } + ], + "summary": "Get model details in org", + "tags": [ + "Models" + ], + "x-ssa-scopes": [ + "getModel", + "kas" + ] + }, + "patch": { + "description": "This operation updates details of a model in the org.", + "operationId": "updateModelInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateModel" + ] + } + ], + "summary": "Update model in org", + "tags": [ + "Models" + ], + "x-ssa-scopes": [ + "updateModel", + "kas" + ] + }, + "delete": { + "tags": [ + "Models" + ], + "summary": "Delete model in org", + "description": "This operation deletes a model in the org (SDK evidence: ngcsdk registry/api/models.py remove_model; not declared in the published definition).", + "operationId": "deleteModelInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + } + } + }, + "x-stackql-sdk-evidence": "ngcsdk registry/api" + } + }, + "/v2/org/{org_name}/models/{model_name}/encryption-key": { + "delete": { + "description": "Disassociate encryption key from model in org and mark it for offline deletion", + "operationId": "disassociateKeyFromModelInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkflowStatusUrlResponse" + } + } + }, + "description": "Accepted" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Disassociate encryption key from model in org", + "tags": [ + "Models" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/models/{model_name}/versions": { + "get": { + "description": "List model versions in org", + "operationId": "listModelVersionsInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listModelVersions" + ] + } + ], + "summary": "List model versions in org", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "listModelVersions", + "kas" + ] + }, + "post": { + "description": "Create a new and empty model version in org. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org", + "operationId": "createModelVersionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createModelVersion" + ] + } + ], + "summary": "Create model version in org", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "kas", + "createModelVersion" + ] + } + }, + "/v2/org/{org_name}/models/{model_name}/versions/{version_id}": { + "get": { + "description": "Get model version in org", + "operationId": "getModelVersionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getModelVersion", + "getModelVersionFilterByOrgEnablement" + ] + } + ], + "summary": "Get model version in org", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "getModelVersionFilterByOrgEnablement", + "getModelVersion", + "kas" + ] + }, + "patch": { + "description": "Update model version information in org e.g. upload status", + "operationId": "updateModelVersionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Create zip of version content", + "in": "query", + "name": "create-zip", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Set version to latest", + "in": "query", + "name": "set-latest", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateModelVersion" + ] + } + ], + "summary": "Update model version in org", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "updateModelVersion", + "kas" + ] + } + }, + "/v2/org/{org_name}/models/{model_name}/versions/{version_id}/files": { + "get": { + "description": "List files of the model version in org", + "operationId": "listModeFilesInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + }, + { + "ssa": [ + "listModelVersionFilesFilterByOrgEnablement" + ] + }, + { + "ssa": [ + "listModelVersionFiles" + ] + } + ], + "summary": "List model files in org", + "tags": [ + "Model Version Files" + ], + "x-ssa-scopes": [ + "listModelVersionFiles", + "listModelVersionFilesFilterByOrgEnablement", + "kas" + ] + } + }, + "/v2/org/{org_name}/recipes": { + "get": { + "description": "List recipes the user can access in the specified org", + "operationId": "listRecipesInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Application name", + "in": "query", + "name": "app-name", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listRecipes" + ] + } + ], + "summary": "List recipes in org", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "listRecipes", + "kas" + ] + }, + "post": { + "description": "Create recipe in org", + "operationId": "createRecipeInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createRecipe" + ] + } + ], + "summary": "Create recipe in org", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "createRecipe", + "kas" + ] + } + }, + "/v2/org/{org_name}/recipes/{recipe_name}": { + "get": { + "description": "Get recipe in org", + "operationId": "getRecipeInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getRecipe" + ] + } + ], + "summary": "Get recipe in org", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "getRecipe", + "kas" + ] + }, + "patch": { + "description": "Update recipe details in org", + "operationId": "updateRecipeInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateRecipe" + ] + } + ], + "summary": "Update recipe in org", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "updateRecipe", + "kas" + ] + } + }, + "/v2/org/{org_name}/recipes/{recipe_name}/versions": { + "get": { + "description": "List recipe versions in org", + "operationId": "listRecipeVersionsInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listRecipeVersions" + ] + } + ], + "summary": "List recipe versions in org", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "listRecipeVersions", + "kas" + ] + }, + "post": { + "description": "Create recipe version in org. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org", + "operationId": "createRecipeVersionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createRecipeVersion" + ] + } + ], + "summary": "Create recipe version in org", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "createRecipeVersion", + "kas" + ] + } + }, + "/v2/org/{org_name}/recipes/{recipe_name}/versions/{version_id}": { + "get": { + "description": "Get recipe version in org", + "operationId": "getRecipeVersionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getRecipeVersion", + "getRecipeVersionFilterByOrgEnablement" + ] + } + ], + "summary": "Get recipe version in org", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "getRecipeVersion", + "getRecipeVersionFilterByOrgEnablement", + "kas" + ] + }, + "patch": { + "description": "Update recipe version information in org e.g. upload status", + "operationId": "updateRecipeVersionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Create zip of version content", + "in": "query", + "name": "create-zip", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Set version to latest", + "in": "query", + "name": "set-latest", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateRecipeVersion" + ] + } + ], + "summary": "Update recipe version in org", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "updateRecipeVersion", + "kas" + ] + } + }, + "/v2/org/{org_name}/recipes/{recipe_name}/versions/{version_id}/files": { + "get": { + "description": "List recipe files in org", + "operationId": "listRecipeFilesInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "listRecipeVersionFilesFilterByOrgEnablement" + ] + }, + { + "ssa": [ + "kas" + ] + }, + { + "ssa": [ + "listRecipeVersionFiles" + ] + } + ], + "summary": "List recipe files in org", + "tags": [ + "Resource Version Files endpoints" + ], + "x-ssa-scopes": [ + "listRecipeVersionFiles", + "listRecipeVersionFilesFilterByOrgEnablement", + "kas" + ] + } + }, + "/v2/org/{org_name}/repositories/{container_name}/associated-models": { + "get": { + "description": "List associated model versions by container", + "operationId": "listModelVersionsAssociatedByContainer", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Container name", + "in": "path", + "name": "container_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listModelVersions" + ] + } + ], + "summary": "List associated model versions by container", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "listModelVersions", + "kas" + ] + } + }, + "/v2/org/{org_name}/repositories/{container_name}/tags/{container_tag}/associated-models": { + "get": { + "description": "List associated model versions by container", + "operationId": "listModelVersionsAssociatedByContainer_2", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Container name", + "in": "path", + "name": "container_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Container tag", + "in": "path", + "name": "container_tag", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listModelVersions" + ] + } + ], + "summary": "List associated model versions by container", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "listModelVersions", + "kas" + ] + } + }, + "/v2/org/{org_name}/resources": { + "get": { + "description": "List recipes the user can access in the specified org", + "operationId": "listRecipesInOrg_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Application name", + "in": "query", + "name": "app-name", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listRecipes" + ] + } + ], + "summary": "List recipes in org", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "listRecipes", + "kas" + ] + }, + "post": { + "description": "Create recipe in org", + "operationId": "createRecipeInOrg_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createRecipe" + ] + } + ], + "summary": "Create recipe in org", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "createRecipe", + "kas" + ] + } + }, + "/v2/org/{org_name}/resources/{recipe_name}": { + "get": { + "description": "Get recipe in org", + "operationId": "getRecipeInOrg_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getRecipe" + ] + } + ], + "summary": "Get recipe in org", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "getRecipe", + "kas" + ] + }, + "patch": { + "description": "Update recipe details in org", + "operationId": "updateRecipeInOrg_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateRecipe" + ] + } + ], + "summary": "Update recipe in org", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "updateRecipe", + "kas" + ] + }, + "delete": { + "tags": [ + "Resources" + ], + "summary": "Delete resource in org", + "description": "This operation deletes a resource in the org (SDK evidence: ngcsdk registry/api/resources.py remove; not declared in the published definition).", + "operationId": "deleteResourceInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + } + } + }, + "x-stackql-sdk-evidence": "ngcsdk registry/api" + } + }, + "/v2/org/{org_name}/resources/{recipe_name}/versions": { + "get": { + "description": "List recipe versions in org", + "operationId": "listRecipeVersionsInOrg_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listRecipeVersions" + ] + } + ], + "summary": "List recipe versions in org", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "listRecipeVersions", + "kas" + ] + }, + "post": { + "description": "Create recipe version in org. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org", + "operationId": "createRecipeVersionInOrg_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createRecipeVersion" + ] + } + ], + "summary": "Create recipe version in org", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "createRecipeVersion", + "kas" + ] + } + }, + "/v2/org/{org_name}/resources/{recipe_name}/versions/{version_id}": { + "get": { + "description": "Get recipe version in org", + "operationId": "getRecipeVersionInOrg_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getRecipeVersion", + "getRecipeVersionFilterByOrgEnablement" + ] + } + ], + "summary": "Get recipe version in org", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "getRecipeVersion", + "getRecipeVersionFilterByOrgEnablement", + "kas" + ] + }, + "patch": { + "description": "Update recipe version information in org e.g. upload status", + "operationId": "updateRecipeVersionInOrg_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Create zip of version content", + "in": "query", + "name": "create-zip", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Set version to latest", + "in": "query", + "name": "set-latest", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateRecipeVersion" + ] + } + ], + "summary": "Update recipe version in org", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "updateRecipeVersion", + "kas" + ] + } + }, + "/v2/org/{org_name}/resources/{recipe_name}/versions/{version_id}/files": { + "get": { + "description": "List recipe files in org", + "operationId": "listRecipeFilesInOrg_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "listRecipeVersionFilesFilterByOrgEnablement" + ] + }, + { + "ssa": [ + "kas" + ] + }, + { + "ssa": [ + "listRecipeVersionFiles" + ] + } + ], + "summary": "List recipe files in org", + "tags": [ + "Resource Version Files endpoints" + ], + "x-ssa-scopes": [ + "listRecipeVersionFiles", + "listRecipeVersionFilesFilterByOrgEnablement", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/collections": { + "get": { + "description": "List collections the user can access in the specified org and team", + "operationId": "listCollectionsInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Order by", + "in": "query", + "name": "order-by", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List collections in team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "post": { + "description": "Create collection in org and team", + "operationId": "createCollectionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createCollection" + ] + } + ], + "summary": "Create collection in org and team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas", + "createCollection" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/collections/{collection_name}": { + "delete": { + "description": "Delete collection in the specified org and team", + "operationId": "deleteCollectionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Delete collection in org and team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "description": "Get collection details in team", + "operationId": "getCollectionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getCollection" + ] + } + ], + "summary": "Get collection in team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "getCollection", + "kas" + ] + }, + "patch": { + "description": "Update collection details in team", + "operationId": "updateCollectionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateCollection" + ] + } + ], + "summary": "Update collection in team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "updateCollection", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/artifacts": { + "patch": { + "description": "Patch collection in the specified org and team", + "operationId": "patchCollectionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionPatchRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "patchCollectionArtifacts" + ] + } + ], + "summary": "Patch collection in org and team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "patchCollectionArtifacts", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/team/{artifact_team_name}/{artifact_type}/{artifact_name}": { + "delete": { + "description": "Remove artifact from the specified collection in the specified org and team from another org and team", + "operationId": "removeArtifactFromCollectionInTeamFromAnotherOrgAndTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact organization name", + "in": "path", + "name": "artifact_org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact team name", + "in": "path", + "name": "artifact_team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Remove artifact from collection in org and team from another org and team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "description": "Add artifact to the specified collection in the specified org and team from another org and team", + "operationId": "addArtifactToCollectionInTeamFromAnotherOrgAndTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact organization name", + "in": "path", + "name": "artifact_org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact team name", + "in": "path", + "name": "artifact_team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "addArtifactToCollectionFromAnotherOrgOrTeam" + ] + } + ], + "summary": "Add artifact to collection in org and team from another org and team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "addArtifactToCollectionFromAnotherOrgOrTeam", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/{artifact_type}/{artifact_name}": { + "delete": { + "description": "Remove artifact from the specified collection in the specified org and team from another org", + "operationId": "removeArtifactFromCollectionInTeamFromAnotherOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact organization name", + "in": "path", + "name": "artifact_org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Remove artifact from collection in org and team from another org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "description": "Add artifact to the specified collection in the specified org and team from another org", + "operationId": "addArtifactToCollectionInTeamFromAnotherOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact organization name", + "in": "path", + "name": "artifact_org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "addArtifactToCollectionFromAnotherOrgOrTeam" + ] + } + ], + "summary": "Add artifact to collection in org and team from another org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "addArtifactToCollectionFromAnotherOrgOrTeam", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/artifacts/{artifact_type}": { + "get": { + "description": "List collection artifacts the user can access in the specified org and team", + "operationId": "listCollectionArtifactsInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Order by", + "in": "query", + "name": "order-by", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listCollectionArtifacts" + ] + } + ], + "summary": "List collection artifacts in org and team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas", + "listCollectionArtifacts" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/share": { + "delete": { + "description": "Undo publishing of collection to public", + "operationId": "undoPublishCollection", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "undoPublishCollection" + ] + } + ], + "summary": "Undo publishing of collection to public", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "undoPublishCollection" + ] + }, + "put": { + "description": "Publish collection to public", + "operationId": "publishCollection", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Indicates if guest users can download this collection", + "in": "query", + "name": "guest-can-download", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "description": "Indicates if collection is listed publicly", + "in": "query", + "name": "public-can-list", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishCollection" + ] + } + ], + "summary": "Publish collection to public", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishCollection" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/share/product": { + "put": { + "description": "Publish collection to product", + "operationId": "publishCollectionFromRequest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionPublishRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishCollection" + ] + } + ], + "summary": "Publish collection to product", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishCollection" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/shares/org": { + "delete": { + "deprecated": true, + "description": "Revoke shared team collection with the org", + "operationId": "revokeShareCollectionInTeamWithOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Revoke shared team collection with the org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "deprecated": true, + "description": "Share team collection with the org", + "operationId": "shareCollectionInTeamWithOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Share team collection with the org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/shares/team/{target_team}": { + "delete": { + "deprecated": true, + "description": "Revoke shared team collection with the specified team", + "operationId": "revokeShareCollectionInTeamWithTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Target team name", + "in": "path", + "name": "target_team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Revoke shared team collection with the specified team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "deprecated": true, + "description": "Share team collection with the specified team", + "operationId": "shareCollectionInTeamWithTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Target team name", + "in": "path", + "name": "target_team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Share team collection with the specified team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/collections/{collection_name}/{artifact_type}/{artifact_name}": { + "delete": { + "description": "Remove artifact from the specified collection in the specified org and team", + "operationId": "removeArtifactFromCollectionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Remove artifact from collection in org and team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "description": "Add artifact to the specified collection in the specified org and team", + "operationId": "addArtifactToCollectionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Add artifact to collection in org and team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/files/commit": { + "post": { + "description": "Commit artifact files metadata to database given request", + "operationId": "commitArtifactFiles_1", + "parameters": [ + { + "description": "Org Name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team Name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Upload pending flag - if set to true, leaves the artifact version in UPLOAD PENDING state without marking it complete", + "in": "query", + "name": "upload-pending", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Set version to latest", + "in": "query", + "name": "set-latest", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactFilesCommitRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Commit artifact files metadata to database", + "tags": [ + "ArtifactChecksum" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/helm-charts/{artifact_name}/versions": { + "get": { + "description": "List chart versions in team", + "operationId": "listHelmChartVersionsInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listArtifactVersions" + ] + } + ], + "summary": "List chart versions in team", + "tags": [ + "Helm Charts" + ], + "x-ssa-scopes": [ + "kas", + "listArtifactVersions" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/helm-charts/{artifact_name}/versions/{version_id}": { + "get": { + "description": "Get chart version in team", + "operationId": "getHelmChartVersionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getArtifactVersion" + ] + } + ], + "summary": "Get chart version in team", + "tags": [ + "Helm Charts" + ], + "x-ssa-scopes": [ + "getArtifactVersion", + "kas" + ] + }, + "patch": { + "description": "Update chart version information in team e.g. upload status", + "operationId": "updateHelmChartVersionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateArtifactVersion" + ] + } + ], + "summary": "Update chart version in team", + "tags": [ + "Helm Charts" + ], + "x-ssa-scopes": [ + "updateArtifactVersion", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/models": { + "get": { + "description": "This operation lists models the user can access in the org/team.", + "operationId": "listModelsInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "deprecated": true, + "description": "Application name", + "in": "query", + "name": "app-name", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "deprecated": true, + "description": "[Deprecated] Page reference, Use page-number instead", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listModels" + ] + } + ], + "summary": "List models in team", + "tags": [ + "Models" + ], + "x-ssa-scopes": [ + "kas", + "listModels" + ] + }, + "post": { + "description": "This operation creates a model in the org/team.", + "operationId": "createModelInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createModel" + ] + } + ], + "summary": "Create model in team", + "tags": [ + "Models" + ], + "x-ssa-scopes": [ + "createModel", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/models/{artifact_name}/versions/{version_id}/stash": { + "patch": { + "description": "Stash artifact version information in team in model version upload paused state", + "operationId": "stashArtifactVersionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateModelVersion" + ] + } + ], + "summary": "Stash artifact version in team", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "updateModelVersion", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/models/{model_name}": { + "get": { + "description": "This operation gets info of a model in the org/team.", + "operationId": "getModelInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getModel" + ] + } + ], + "summary": "Get model in team", + "tags": [ + "Models" + ], + "x-ssa-scopes": [ + "getModel", + "kas" + ] + }, + "patch": { + "description": "This operation updates details of a model in the org/team.", + "operationId": "updateModelInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateModel" + ] + } + ], + "summary": "Update model in team", + "tags": [ + "Models" + ], + "x-ssa-scopes": [ + "updateModel", + "kas" + ] + }, + "delete": { + "tags": [ + "Models" + ], + "summary": "Delete model in org/team", + "description": "This operation deletes a model in the org/team (SDK evidence: ngcsdk registry/api/models.py remove_model; not declared in the published definition).", + "operationId": "deleteModelInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + } + } + }, + "x-stackql-sdk-evidence": "ngcsdk registry/api" + } + }, + "/v2/org/{org_name}/team/{team_name}/models/{model_name}/encryption-key": { + "delete": { + "description": "Disassociate encryption key from model in team and mark it for offline deletion", + "operationId": "disassociateKeyFromModelInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkflowStatusUrlResponse" + } + } + }, + "description": "Accepted" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Disassociate encryption key from model in team", + "tags": [ + "Models" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/models/{model_name}/versions": { + "get": { + "description": "List model versions in team", + "operationId": "listModelVersionsInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listModelVersions" + ] + } + ], + "summary": "List model versions in team", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "listModelVersions", + "kas" + ] + }, + "post": { + "description": "Create model version in team. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org", + "operationId": "createModelVersionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createModelVersion" + ] + } + ], + "summary": "Create model version in team.", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "kas", + "createModelVersion" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/models/{model_name}/versions/{version_id}": { + "get": { + "description": "Get model version in team", + "operationId": "getModelVersionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getModelVersion", + "getModelVersionFilterByOrgEnablement" + ] + } + ], + "summary": "Get model version in team", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "getModelVersionFilterByOrgEnablement", + "getModelVersion", + "kas" + ] + }, + "patch": { + "description": "Update model version information in team e.g. upload status", + "operationId": "updateModelVersionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Create zip of version content", + "in": "query", + "name": "create-zip", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Set version to latest", + "in": "query", + "name": "set-latest", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateModelVersion" + ] + } + ], + "summary": "Update model version in team", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "updateModelVersion", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/models/{model_name}/versions/{version_id}/apps/{app_name}": { + "delete": { + "deprecated": true, + "description": "Delete model app association", + "operationId": "deleteModelAppAssociation", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + }, + { + "description": "App Name", + "in": "path", + "name": "app_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Delete model app association", + "tags": [ + "Apps" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "deprecated": true, + "description": "Update model app association", + "operationId": "updateModelAppAssociation", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + }, + { + "description": "App Name", + "in": "path", + "name": "app_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Update model app association", + "tags": [ + "Apps" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/models/{model_name}/versions/{version_id}/files": { + "get": { + "description": "List files of the model version in team", + "operationId": "listModeFilesInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + }, + { + "ssa": [ + "listModelVersionFilesFilterByOrgEnablement" + ] + }, + { + "ssa": [ + "listModelVersionFiles" + ] + } + ], + "summary": "List model files in team", + "tags": [ + "Model Version Files" + ], + "x-ssa-scopes": [ + "listModelVersionFiles", + "listModelVersionFilesFilterByOrgEnablement", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/recipes": { + "get": { + "description": "List recipes the user can access in the specified org and team", + "operationId": "listRecipesInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Application name", + "in": "query", + "name": "app-name", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listRecipes" + ] + } + ], + "summary": "List recipes in team", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "listRecipes", + "kas" + ] + }, + "post": { + "description": "Create recipe in team", + "operationId": "createRecipeInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createRecipe" + ] + } + ], + "summary": "Create recipe in team", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "createRecipe", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/recipes/{recipe_name}": { + "get": { + "description": "Get recipe details in team", + "operationId": "getRecipeInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getRecipe" + ] + } + ], + "summary": "Get recipe in team", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "getRecipe", + "kas" + ] + }, + "patch": { + "description": "Update recipe details in team", + "operationId": "updateRecipeInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateRecipe" + ] + } + ], + "summary": "Update recipe in team", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "updateRecipe", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/recipes/{recipe_name}/versions": { + "get": { + "description": "List recipe versions in team", + "operationId": "listRecipeVersionsInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listRecipeVersions" + ] + } + ], + "summary": "List recipe versions in team", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "listRecipeVersions", + "kas" + ] + }, + "post": { + "description": "Create recipe version in team. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org", + "operationId": "createRecipeVersionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createRecipeVersion" + ] + } + ], + "summary": "Create recipe version in team", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "createRecipeVersion", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/recipes/{recipe_name}/versions/{version_id}": { + "get": { + "description": "Get recipe version in team", + "operationId": "getRecipeVersionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getRecipeVersion", + "getRecipeVersionFilterByOrgEnablement" + ] + } + ], + "summary": "Get recipe version in team", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "getRecipeVersion", + "getRecipeVersionFilterByOrgEnablement", + "kas" + ] + }, + "patch": { + "description": "Update recipe version information in team e.g. upload status", + "operationId": "updateRecipeVersionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Create zip of version content", + "in": "query", + "name": "create-zip", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Set version to latest", + "in": "query", + "name": "set-latest", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateRecipeVersion" + ] + } + ], + "summary": "Update recipe version in team", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "updateRecipeVersion", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/recipes/{recipe_name}/versions/{version_id}/files": { + "get": { + "description": "List recipe files in team", + "operationId": "listRecipeFilesInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "listRecipeVersionFilesFilterByOrgEnablement" + ] + }, + { + "ssa": [ + "kas" + ] + }, + { + "ssa": [ + "listRecipeVersionFiles" + ] + } + ], + "summary": "List recipe files in team", + "tags": [ + "Resource Version Files endpoints" + ], + "x-ssa-scopes": [ + "listRecipeVersionFiles", + "listRecipeVersionFilesFilterByOrgEnablement", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/repositories/{container_name}/associated-models": { + "get": { + "description": "List associated model versions by container", + "operationId": "listModelVersionsAssociatedByContainer_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Container name", + "in": "path", + "name": "container_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listModelVersions" + ] + } + ], + "summary": "List associated model versions by container", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "listModelVersions", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/repositories/{container_name}/tags/{container_tag}/associated-models": { + "get": { + "description": "List associated model versions by container", + "operationId": "listModelVersionsAssociatedByContainer_3", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Container name", + "in": "path", + "name": "container_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Container tag", + "in": "path", + "name": "container_tag", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listModelVersions" + ] + } + ], + "summary": "List associated model versions by container", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "listModelVersions", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/resources": { + "get": { + "description": "List recipes the user can access in the specified org and team", + "operationId": "listRecipesInTeam_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Application name", + "in": "query", + "name": "app-name", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listRecipes" + ] + } + ], + "summary": "List recipes in team", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "listRecipes", + "kas" + ] + }, + "post": { + "description": "Create recipe in team", + "operationId": "createRecipeInTeam_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createRecipe" + ] + } + ], + "summary": "Create recipe in team", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "createRecipe", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/resources/{recipe_name}": { + "get": { + "description": "Get recipe details in team", + "operationId": "getRecipeInTeam_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getRecipe" + ] + } + ], + "summary": "Get recipe in team", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "getRecipe", + "kas" + ] + }, + "patch": { + "description": "Update recipe details in team", + "operationId": "updateRecipeInTeam_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateRecipe" + ] + } + ], + "summary": "Update recipe in team", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "updateRecipe", + "kas" + ] + }, + "delete": { + "tags": [ + "Resources" + ], + "summary": "Delete resource in org/team", + "description": "This operation deletes a resource in the org/team (SDK evidence: ngcsdk registry/api/resources.py remove; not declared in the published definition).", + "operationId": "deleteResourceInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + } + } + }, + "x-stackql-sdk-evidence": "ngcsdk registry/api" + } + }, + "/v2/org/{org_name}/team/{team_name}/resources/{recipe_name}/versions": { + "get": { + "description": "List recipe versions in team", + "operationId": "listRecipeVersionsInTeam_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listRecipeVersions" + ] + } + ], + "summary": "List recipe versions in team", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "listRecipeVersions", + "kas" + ] + }, + "post": { + "description": "Create recipe version in team. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org", + "operationId": "createRecipeVersionInTeam_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createRecipeVersion" + ] + } + ], + "summary": "Create recipe version in team", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "createRecipeVersion", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/resources/{recipe_name}/versions/{version_id}": { + "get": { + "description": "Get recipe version in team", + "operationId": "getRecipeVersionInTeam_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getRecipeVersion", + "getRecipeVersionFilterByOrgEnablement" + ] + } + ], + "summary": "Get recipe version in team", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "getRecipeVersion", + "getRecipeVersionFilterByOrgEnablement", + "kas" + ] + }, + "patch": { + "description": "Update recipe version information in team e.g. upload status", + "operationId": "updateRecipeVersionInTeam_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Create zip of version content", + "in": "query", + "name": "create-zip", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Set version to latest", + "in": "query", + "name": "set-latest", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateRecipeVersion" + ] + } + ], + "summary": "Update recipe version in team", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "updateRecipeVersion", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/resources/{recipe_name}/versions/{version_id}/files": { + "get": { + "description": "List recipe files in team", + "operationId": "listRecipeFilesInTeam_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "listRecipeVersionFilesFilterByOrgEnablement" + ] + }, + { + "ssa": [ + "kas" + ] + }, + { + "ssa": [ + "listRecipeVersionFiles" + ] + } + ], + "summary": "List recipe files in team", + "tags": [ + "Resource Version Files endpoints" + ], + "x-ssa-scopes": [ + "listRecipeVersionFiles", + "listRecipeVersionFilesFilterByOrgEnablement", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}": { + "get": { + "description": "List artifacts the user can access in the specified org and team", + "operationId": "listArtifactsInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listArtifacts" + ] + } + ], + "summary": "List artifacts in team", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "listArtifacts", + "kas" + ] + }, + "post": { + "description": "Create artifact in team", + "operationId": "createArtifactInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createArtifact" + ] + } + ], + "summary": "Create artifact in team", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "createArtifact", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}": { + "delete": { + "description": "Delete artifact in team", + "operationId": "deleteArtifactInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "deleteArtifact" + ] + } + ], + "summary": "Delete artifact in team", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "deleteArtifact", + "kas" + ] + }, + "get": { + "description": "Get artifact details in team", + "operationId": "getArtifactInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getArtifact" + ] + } + ], + "summary": "Get artifact in team", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "getArtifact", + "kas" + ] + }, + "patch": { + "description": "Update artifact details in team", + "operationId": "updateArtifactInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateArtifact" + ] + } + ], + "summary": "Update artifact in team", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "updateArtifact", + "kas" + ] + }, + "put": { + "description": "Replace artifact details in team", + "operationId": "replaceArtifactInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateArtifact" + ] + } + ], + "summary": "Replace artifact in team", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "updateArtifact", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/catalog/flags": { + "get": { + "description": "Get the Catalog Public flags for artifact in team", + "operationId": "getPublicFlagsInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactCatalogFlags" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "getPublicFlags" + ] + } + ], + "summary": "Get Catalog flags", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "getPublicFlags" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/collections": { + "get": { + "description": "List artifact collections the user can access in the specified org and team", + "operationId": "listArtifactCollectionsInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Order by", + "in": "query", + "name": "order-by", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List artifact collections in org and team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/collections/sync-release-type-labels": { + "post": { + "description": "Sync release type labels for all collections containing this artifact. Internal API for service-to-service communication.", + "operationId": "syncCollectionReleaseTypeLabelsForArtifact_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "syncReleaseTypeLabels" + ] + } + ], + "summary": "Sync collection release type labels for artifact", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas", + "syncReleaseTypeLabels" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/deployments/params": { + "get": { + "description": "List artifact deployment parameters in team", + "operationId": "listArtifactDeploymentParametersInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List artifact deployment parameters in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/parameters": { + "post": { + "description": "Create artifact deployment parameters in team", + "operationId": "createArtifactDeploymentParametersInTeam_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "No auto labels", + "in": "query", + "name": "no-auto-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Merge CSP parameters in response", + "in": "query", + "name": "merge-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create artifact deployment parameters in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params": { + "delete": { + "description": "Delete artifact deployment parameters in team", + "operationId": "deleteArtifactDeploymentParametersInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Delete artifact deployment parameters in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "description": "Get artifact deployment parameters details in team", + "operationId": "getArtifactDeploymentParametersInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Get artifact deployment parameters details in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "patch": { + "description": "Update artifact deployment parameters in team", + "operationId": "updateArtifactDeploymentParametersInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Merge CSP parameters in response", + "in": "query", + "name": "merge-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Update artifact deployment parameters in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "post": { + "description": "Create artifact deployment parameters in team", + "operationId": "createArtifactDeploymentParametersInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "No auto labels", + "in": "query", + "name": "no-auto-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Merge CSP parameters in response", + "in": "query", + "name": "merge-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create artifact deployment parameters in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/files": { + "post": { + "description": "Check if file exists based on checksum provided in request", + "operationId": "checkArtifactFilesExistByChecksum_1", + "parameters": [ + { + "description": "Org Name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team Name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact Type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact Name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactFilesChecksumExistsRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactFilesChecksumExistsResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Check if file exists based on checksum", + "tags": [ + "ArtifactChecksum" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/license/acceptance": { + "get": { + "description": "Check if user needs to accept license. Checks against uam", + "operationId": "getOrgArtifactLicenseAcceptance_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Check if user needs to accept license", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "post": { + "description": "Record license acceptance for an org artifact.", + "operationId": "acceptArtifactLicense_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AcceptArtifactLicenseRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Accept artifact license", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/release-type": { + "put": { + "description": "Updates the release type (for example GA, EA, beta) of an artifact version within the specified organization and optional team.", + "operationId": "updateReleaseLabel_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateReleaseTypeRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "publishArtifact" + ] + } + ], + "summary": "Update artifact version release type", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishArtifact", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/share": { + "delete": { + "description": "Undo publishing of artifact to public", + "operationId": "undoPublishArtifact_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "undoPublishArtifact" + ] + } + ], + "summary": "Undo publishing of artifact to public", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "undoPublishArtifact" + ] + }, + "put": { + "description": "Publish artifact to public", + "operationId": "publishArtifact_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Indicates if guest users can download this artifact", + "in": "query", + "name": "guest-can-download", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "description": "Indicates if artifact is listed publicly", + "in": "query", + "name": "public-can-list", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishArtifact" + ] + } + ], + "summary": "Publish artifact to public", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishArtifact" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/share/product": { + "delete": { + "description": "Undo publishing of product artifacts", + "operationId": "undoPublishProduct_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "undoPublishArtifact" + ] + } + ], + "summary": "Undo publishing of product artifacts", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "undoPublishArtifact" + ] + }, + "put": { + "description": "Publish artifact to product", + "operationId": "publishArtifactFromRequest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactPublishRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishArtifact" + ] + } + ], + "summary": "Publish artifact to product", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishArtifact" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/terms-of-service": { + "put": { + "description": "Update artifact terms of service", + "operationId": "updateTermsOfService_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactPublishRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishArtifact", + "kas" + ] + } + ], + "summary": "Update artifact terms of service", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishArtifact", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}": { + "delete": { + "description": "Delete a artifact version in team", + "operationId": "deleteArtifactVersionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "deleteArtifactVersion" + ] + } + ], + "summary": "Delete a artifact version in team", + "tags": [ + "Artifact Versions" + ], + "x-ssa-scopes": [ + "deleteArtifactVersion", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/configs": { + "patch": { + "description": "Update artifact version with configs like policy badge", + "operationId": "updateTagLevelPublishConfigs_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateArtifactVersionConfigs" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishArtifact" + ] + } + ], + "summary": "Publish artifact version with configs like policy badge", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishArtifact" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/deployments/{csp_name}": { + "post": { + "description": "Create artifact version deployment url in team", + "operationId": "createArtifactDeploymentUrlInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlResponse" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create artifact version deployment url in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files": { + "get": { + "description": "List files of the artifact version in team", + "operationId": "listArtifactFilesInTeam", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "listArtifactVersionFiles" + ] + }, + { + "ssa": [ + "listArtifactVersionFilesFilterByOrgEnablement" + ] + }, + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List artifact files in team", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [ + "listArtifactVersionFiles", + "kas", + "listArtifactVersionFilesFilterByOrgEnablement" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/**": { + "delete": { + "description": "Delete artifact file in team", + "operationId": "deleteArtifactFileInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Delete artifact file in team", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "deprecated": true, + "description": "Download the specified file of the artifact version in team", + "operationId": "downloadArtifactFileInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "downloadArtifactVersionFile" + ] + } + ], + "summary": "Download artifact file in team", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [ + "kas", + "downloadArtifactVersionFile" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/**/deployments/{csp_name}": { + "post": { + "description": "Create artifact version file deployment url in team", + "operationId": "createArtifactVersionFileDeploymentUrlInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlResponse" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create artifact version file deployment url in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/**/zip/download": { + "get": { + "deprecated": true, + "description": "Download the specified file of the artifact version in team as zip", + "operationId": "downloadArtifactFileInTeamAsZip", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "binary", + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Download artifact file in team as zip", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/signature": { + "get": { + "description": "Request to retrieve a pre-signed Download URL for the signature of an artifact version", + "operationId": "getArtifactVersionSignature_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Get redirect URL", + "in": "query", + "name": "redirect", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "tags": [ + "ArtifactSigning" + ], + "x-ssa-scopes": [] + }, + "put": { + "description": "Request to sign artifact version", + "operationId": "signArtifactVersion_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactDownloadResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "signArtifactVersion" + ] + } + ], + "tags": [ + "ArtifactSigning" + ], + "x-ssa-scopes": [ + "signArtifactVersion", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/zip": { + "get": { + "deprecated": true, + "description": "Download all files of a team artifact in a zip", + "operationId": "downloadAllFilesInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Download all files of a team artifact in a zip", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}": { + "get": { + "description": "List artifacts the user can access in the specified org", + "operationId": "listArtifactsInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listArtifacts" + ] + } + ], + "summary": "List artifacts in org", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "listArtifacts", + "kas" + ] + }, + "post": { + "description": "Create artifact in org", + "operationId": "createArtifactInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createArtifact" + ] + } + ], + "summary": "Create artifact in org", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "createArtifact", + "kas" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}": { + "delete": { + "description": "Delete artifact in org", + "operationId": "deleteArtifactInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "deleteArtifact" + ] + } + ], + "summary": "Delete artifact in org", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "deleteArtifact", + "kas" + ] + }, + "get": { + "description": "Get artifact details in org", + "operationId": "getArtifactInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getArtifact" + ] + } + ], + "summary": "Get artifact in org", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "getArtifact", + "kas" + ] + }, + "patch": { + "description": "Update artifact details in org", + "operationId": "updateArtifactInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateArtifact" + ] + } + ], + "summary": "Update artifact in org", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "updateArtifact", + "kas" + ] + }, + "put": { + "description": "Replace artifact details in org", + "operationId": "replaceArtifactInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateArtifact" + ] + } + ], + "summary": "Replace artifact in org", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "updateArtifact", + "kas" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/catalog/flags": { + "get": { + "description": "Get the Catalog Public flags for artifact in org", + "operationId": "getPublicFlagsInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactCatalogFlags" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "getPublicFlags" + ] + } + ], + "summary": "Get Catalog flags", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "getPublicFlags" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/collections": { + "get": { + "description": "List artifact collections the user can access in the specified org", + "operationId": "listArtifactCollectionsInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Order by", + "in": "query", + "name": "order-by", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List artifact collections in org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/collections/sync-release-type-labels": { + "post": { + "description": "Sync release type labels for all collections containing this artifact. Internal API for service-to-service communication.", + "operationId": "syncCollectionReleaseTypeLabelsForArtifact", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "syncReleaseTypeLabels" + ] + } + ], + "summary": "Sync collection release type labels for artifact", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas", + "syncReleaseTypeLabels" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/deployments/params": { + "get": { + "description": "List artifact deployment parameters in org", + "operationId": "listArtifactDeploymentParametersInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List artifact deployment parameters in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params": { + "delete": { + "description": "Delete artifact deployment parameters in org", + "operationId": "deleteArtifactDeploymentParametersInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Delete artifact deployment parameters in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "description": "Get artifact deployment parameters details in org", + "operationId": "getArtifactDeploymentParametersInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Get artifact deployment parameters details in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "patch": { + "description": "Update artifact deployment parameters in org", + "operationId": "updateArtifactDeploymentParametersInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Merge CSP parameters in response", + "in": "query", + "name": "merge-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Update artifact deployment parameters in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "post": { + "description": "Create artifact deployment parameters in org", + "operationId": "createArtifactDeploymentParametersInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "No auto labels", + "in": "query", + "name": "no-auto-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Merge CSP parameters in response", + "in": "query", + "name": "merge-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create artifact deployment parameters in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/files": { + "post": { + "description": "Check if file exists based on checksum provided in request", + "operationId": "checkArtifactFilesExistByChecksum", + "parameters": [ + { + "description": "Org Name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact Type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact Name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactFilesChecksumExistsRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactFilesChecksumExistsResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Check if file exists based on checksum", + "tags": [ + "ArtifactChecksum" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/license/acceptance": { + "get": { + "description": "Check if user needs to accept license. Checks against uam", + "operationId": "getOrgArtifactLicenseAcceptance", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Check if user needs to accept license", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "post": { + "description": "Record license acceptance for an org artifact.", + "operationId": "acceptArtifactLicense", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AcceptArtifactLicenseRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Accept artifact license", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/release-type": { + "put": { + "description": "Updates the release type (for example GA, EA, beta) of an artifact version within the specified organization and optional team.", + "operationId": "updateReleaseLabel", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateReleaseTypeRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "publishArtifact" + ] + } + ], + "summary": "Update artifact version release type", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishArtifact", + "kas" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/share": { + "delete": { + "description": "Undo publishing of artifact to public", + "operationId": "undoPublishArtifact", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "undoPublishArtifact" + ] + } + ], + "summary": "Undo publishing of artifact to public", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "undoPublishArtifact" + ] + }, + "put": { + "description": "Publish artifact to public", + "operationId": "publishArtifact", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Indicates if guest users can download this artifact", + "in": "query", + "name": "guest-can-download", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "description": "Indicates if artifact is listed publicly", + "in": "query", + "name": "public-can-list", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishArtifact" + ] + } + ], + "summary": "Publish artifact to public", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishArtifact" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/share/product": { + "delete": { + "description": "Undo publishing of product artifacts", + "operationId": "undoPublishProduct", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "undoPublishArtifact" + ] + } + ], + "summary": "Undo publishing of product artifacts", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "undoPublishArtifact" + ] + }, + "put": { + "description": "Publish artifact to product", + "operationId": "publishArtifactFromRequest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactPublishRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishArtifact" + ] + } + ], + "summary": "Publish artifact to product", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishArtifact" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/terms-of-service": { + "put": { + "description": "Update artifact terms of service", + "operationId": "updateTermsOfService", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactPublishRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishArtifact", + "kas" + ] + } + ], + "summary": "Update artifact terms of service", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishArtifact", + "kas" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}": { + "delete": { + "description": "Delete a artifact version in org", + "operationId": "deleteArtifactVersionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "deleteArtifactVersion" + ] + } + ], + "summary": "Delete a artifact version in org", + "tags": [ + "Artifact Versions" + ], + "x-ssa-scopes": [ + "deleteArtifactVersion", + "kas" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/configs": { + "patch": { + "description": "Update artifact version with configs like policy badge", + "operationId": "updateTagLevelPublishConfigs", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateArtifactVersionConfigs" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishArtifact" + ] + } + ], + "summary": "Publish artifact version with configs like policy badge", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishArtifact" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/deployments/{csp_name}": { + "post": { + "description": "Create artifact version deployment url in org", + "operationId": "createArtifactDeploymentUrlInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlResponse" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create artifact version deployment url in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files": { + "get": { + "description": "List files of the artifact version in org", + "operationId": "listArtifactFilesInOrg", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "listArtifactVersionFiles" + ] + }, + { + "ssa": [ + "listArtifactVersionFilesFilterByOrgEnablement" + ] + }, + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List artifact files in org", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [ + "listArtifactVersionFiles", + "kas", + "listArtifactVersionFilesFilterByOrgEnablement" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/**": { + "delete": { + "description": "Delete artifact file in org", + "operationId": "deleteArtifactFileInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Delete artifact file in org", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "deprecated": true, + "description": "Download the specified file of the artifact version in org", + "operationId": "downloadArtifactFileInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "downloadArtifactVersionFile" + ] + } + ], + "summary": "Download artifact file in org", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [ + "kas", + "downloadArtifactVersionFile" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/**/deployments/{csp_name}": { + "post": { + "description": "Create artifact version file deployment url in org", + "operationId": "createArtifactVerionFileDeploymentUrlInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlResponse" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create artifact version file deployment url in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files/*/zip/download": { + "get": { + "deprecated": true, + "description": "Download the specified file of the artifact version in org as zip", + "operationId": "downloadArtifactFileInOrgAsZip", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "binary", + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Download artifact file in org as zip", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/signature": { + "get": { + "description": "Request to retrieve a pre-signed Download URL for the signature of an artifact version", + "operationId": "getArtifactVersionSignature", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Get redirect URL", + "in": "query", + "name": "redirect", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "tags": [ + "ArtifactSigning" + ], + "x-ssa-scopes": [] + }, + "put": { + "description": "Request to sign artifact version", + "operationId": "signArtifactVersion", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactDownloadResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "signArtifactVersion" + ] + } + ], + "tags": [ + "ArtifactSigning" + ], + "x-ssa-scopes": [ + "signArtifactVersion", + "kas" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/zip": { + "get": { + "deprecated": true, + "description": "Download all files of an org artifact in a zip", + "operationId": "downloadAllFilesInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Download all files of an org artifact in a zip", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/malware-scan": { + "post": { + "description": "Initiates malwares can for the artifact", + "operationId": "initiateMalwareScan_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Contact email", + "in": "query", + "name": "contact-email", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 320, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Nspect identifier", + "in": "query", + "name": "nspect-id", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 64, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Initiates malwares can for the artifact", + "tags": [ + "MalwareScan" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/playground": { + "post": { + "deprecated": true, + "description": "Create AI Playground for model", + "operationId": "createModelAIPlayground_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "writeArtifacts" + ] + } + ], + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "writeArtifacts", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/playground/{artifact_name}": { + "delete": { + "deprecated": true, + "description": "Delete AI Playground for model", + "operationId": "deleteModelAIPlayground_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "deleteArtifacts" + ] + } + ], + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "deleteArtifacts", + "kas" + ] + }, + "get": { + "deprecated": true, + "description": "Get AI Playground for model", + "operationId": "getModelAIPlayground_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getArtifact" + ] + } + ], + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "getArtifact", + "kas" + ] + }, + "put": { + "deprecated": true, + "description": "Update AI Playground for model", + "operationId": "updateModelAIPlayground_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "writeArtifacts" + ] + } + ], + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "writeArtifacts", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/spec": { + "post": { + "description": "Create AI Playground for artifactType", + "operationId": "createModelArtifactsSpec_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "writeArtifacts" + ] + } + ], + "summary": "Create AI Playground for artifactType", + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "writeArtifacts", + "kas" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/purge": { + "delete": { + "description": "Purge Search DB for deleted artifacts", + "operationId": "purgeDeletedArtifact_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "purgeArtifact" + ] + } + ], + "summary": "Purge Search DB", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "kas", + "purgeArtifact" + ] + } + }, + "/v2/org/{org_name}/team/{team_name}/{artifact_type}/{artifact_name}/spec": { + "delete": { + "description": "Delete AI Playground for artifactType", + "operationId": "deleteModelArtifactsSpec_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "deleteArtifacts" + ] + } + ], + "summary": "Delete AI Playground for artifactType", + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "deleteArtifacts", + "kas" + ] + }, + "get": { + "description": "Get AI Playground for artifactType", + "operationId": "getModelArtifactsSpec_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getArtifact" + ] + } + ], + "summary": "Get AI Playground for artifactType", + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "getArtifact", + "kas" + ] + }, + "put": { + "description": "Update AI Playground for artifactType", + "operationId": "updateModelArtifactsSpec_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "writeArtifacts" + ] + } + ], + "summary": "Update AI Playground for artifactType", + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "writeArtifacts", + "kas" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/versions/{version_id}/malware-scan": { + "post": { + "description": "Initiates malwares can for the artifact", + "operationId": "initiateMalwareScan", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Contact email", + "in": "query", + "name": "contact-email", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 320, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Nspect identifier", + "in": "query", + "name": "nspect-id", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 64, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Initiates malwares can for the artifact", + "tags": [ + "MalwareScan" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/playground": { + "post": { + "deprecated": true, + "description": "Create AI Playground for model", + "operationId": "createModelAIPlayground", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "writeArtifacts" + ] + } + ], + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "writeArtifacts", + "kas" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/playground/{artifact_name}": { + "delete": { + "deprecated": true, + "description": "Delete AI Playground for model", + "operationId": "deleteModelAIPlayground", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "deleteArtifacts" + ] + } + ], + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "deleteArtifacts", + "kas" + ] + }, + "get": { + "deprecated": true, + "description": "Get AI Playground for model", + "operationId": "getModelAIPlayground", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getArtifact" + ] + } + ], + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "getArtifact", + "kas" + ] + }, + "put": { + "deprecated": true, + "description": "Update AI Playground for model", + "operationId": "updateModelAIPlayground", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "writeArtifacts" + ] + } + ], + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "writeArtifacts", + "kas" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/spec": { + "post": { + "description": "Create AI Playground for artifactType", + "operationId": "createModelArtifactsSpec", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "writeArtifacts" + ] + } + ], + "summary": "Create AI Playground for artifactType", + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "writeArtifacts", + "kas" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/purge": { + "delete": { + "description": "Purge Search DB for deleted artifacts", + "operationId": "purgeDeletedArtifact", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "purgeArtifact" + ] + } + ], + "summary": "Purge Search DB", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "kas", + "purgeArtifact" + ] + } + }, + "/v2/org/{org_name}/{artifact_type}/{artifact_name}/spec": { + "delete": { + "description": "Delete AI Playground for artifactType", + "operationId": "deleteModelArtifactsSpec", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "deleteArtifacts" + ] + } + ], + "summary": "Delete AI Playground for artifactType", + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "deleteArtifacts", + "kas" + ] + }, + "get": { + "description": "Get AI Playground for artifactType", + "operationId": "getModelArtifactsSpec", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getArtifact" + ] + } + ], + "summary": "Get AI Playground for artifactType", + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "getArtifact", + "kas" + ] + }, + "put": { + "description": "Update AI Playground for artifactType", + "operationId": "updateModelArtifactsSpec", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "writeArtifacts" + ] + } + ], + "summary": "Update AI Playground for artifactType", + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "writeArtifacts", + "kas" + ] + } + }, + "/v2/org/{org}/files/clone": { + "put": { + "description": "Synchronously copies the files of a source artifact version into a target artifact version within the organization (and optional team).", + "operationId": "cloneArtifactVersionFiles", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloneArtifactVersionFilesRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "cloneArtifact" + ] + } + ], + "summary": "Clone Artifact files", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "kas", + "cloneArtifact" + ] + } + }, + "/v2/org/{org}/files/clone/status": { + "put": { + "description": "Returns the current status (pending, running, completed, or failed) of an asynchronous artifact file clone workflow.", + "operationId": "cloneArtifactVersionFilesStatus", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloneArtifactVersionFilesRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloneArtifactFilesStatusResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "cloneArtifact" + ] + } + ], + "summary": "Clone Artifact files Status", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "kas", + "cloneArtifact" + ] + } + }, + "/v2/org/{org}/files/multipart": { + "delete": { + "description": "Cancels an in-progress multipart upload and releases any partially uploaded parts associated with the upload session.", + "operationId": "abortFileUpload", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MultipartUploadAbortRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Abort a multipart upload for an artifact file.", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "post": { + "description": "Starts a multipart upload session for a file belonging to an artifact version and returns the pre-signed URLs needed to upload each part.", + "operationId": "fileUpload", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MultipartUploadCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MultipartUploadCreateResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Initiate a multipart upload for an artifact file.", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "description": "Finalizes a previously initiated multipart upload by assembling the uploaded parts into the target artifact file and validating checksums.", + "operationId": "completeFileUpload", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MultipartUploadCompleteRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Complete a multipart upload for an artifact file.", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org}/team/{team}/files/clone": { + "put": { + "description": "Synchronously copies the files of a source artifact version into a target artifact version within the organization (and optional team).", + "operationId": "cloneArtifactVersionFiles_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloneArtifactVersionFilesRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "cloneArtifact" + ] + } + ], + "summary": "Clone Artifact files", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "kas", + "cloneArtifact" + ] + } + }, + "/v2/org/{org}/team/{team}/files/clone/status": { + "put": { + "description": "Returns the current status (pending, running, completed, or failed) of an asynchronous artifact file clone workflow.", + "operationId": "cloneArtifactVersionFilesStatus_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloneArtifactVersionFilesRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloneArtifactFilesStatusResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "cloneArtifact" + ] + } + ], + "summary": "Clone Artifact files Status", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "kas", + "cloneArtifact" + ] + } + }, + "/v2/org/{org}/team/{team}/files/multipart": { + "delete": { + "description": "Cancels an in-progress multipart upload and releases any partially uploaded parts associated with the upload session.", + "operationId": "abortFileUpload_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MultipartUploadAbortRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Abort a multipart upload for an artifact file.", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "post": { + "description": "Starts a multipart upload session for a file belonging to an artifact version and returns the pre-signed URLs needed to upload each part.", + "operationId": "fileUpload_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MultipartUploadCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MultipartUploadCreateResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Initiate a multipart upload for an artifact file.", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "description": "Finalizes a previously initiated multipart upload by assembling the uploaded parts into the target artifact file and validating checksums.", + "operationId": "completeFileUpload_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MultipartUploadCompleteRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Complete a multipart upload for an artifact file.", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v2/org/{org}/team/{team}/{type}/{name}/versions/{version}/async-clone": { + "put": { + "description": "Starts an asynchronous Temporal workflow to clone the files of a source artifact version into the target artifact version and returns a URL to poll for workflow status.", + "operationId": "cloneArtifactVersionFilesAsync_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "type", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Target artifact name", + "in": "path", + "name": "name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Target version ID", + "in": "path", + "name": "version", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AsyncCloneArtifactVersionFilesRequest" + } + } + }, + "required": true + }, + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkflowStatusUrlResponse" + } + } + }, + "description": "Accepted" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "cloneArtifact" + ] + } + ], + "summary": "Clone Artifact files asynchronously", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "cloneArtifact" + ] + } + }, + "/v2/org/{org}/team/{team}/{type}/{name}/{version}/files": { + "get": { + "description": "Returns pre-signed download URLs for every file of a given artifact version, enabling authenticated clients to download the complete contents of the version.", + "operationId": "downloadAllArtifactFiles_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "type", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "File path", + "in": "query", + "name": "path", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactDownloadAllResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "downloadArtifactVersionFile", + "downloadArtifactVersionFileFilterByOrgEnablement" + ] + } + ], + "summary": "Provide a list of presigned urls for the download of all files belonging to an artifact version", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "downloadArtifactVersionFileFilterByOrgEnablement", + "kas", + "downloadArtifactVersionFile" + ] + } + }, + "/v2/org/{org}/{type}/{name}/versions/{version}/async-clone": { + "put": { + "description": "Starts an asynchronous Temporal workflow to clone the files of a source artifact version into the target artifact version and returns a URL to poll for workflow status.", + "operationId": "cloneArtifactVersionFilesAsync", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "type", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Target artifact name", + "in": "path", + "name": "name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Target version ID", + "in": "path", + "name": "version", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AsyncCloneArtifactVersionFilesRequest" + } + } + }, + "required": true + }, + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkflowStatusUrlResponse" + } + } + }, + "description": "Accepted" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "cloneArtifact" + ] + } + ], + "summary": "Clone Artifact files asynchronously", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "cloneArtifact" + ] + } + }, + "/v2/org/{org}/{type}/{name}/{version}/files": { + "get": { + "description": "Returns pre-signed download URLs for every file of a given artifact version, enabling authenticated clients to download the complete contents of the version.", + "operationId": "downloadAllArtifactFiles", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "type", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "File path", + "in": "query", + "name": "path", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactDownloadAllResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "downloadArtifactVersionFile", + "downloadArtifactVersionFileFilterByOrgEnablement" + ] + } + ], + "summary": "Provide a list of presigned urls for the download of all files belonging to an artifact version", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "downloadArtifactVersionFileFilterByOrgEnablement", + "kas", + "downloadArtifactVersionFile" + ] + } + }, + "/v2/recipes": { + "get": { + "description": "List public recipes", + "operationId": "listPublicRecipes", + "parameters": [ + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List public recipes", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [] + } + }, + "/v2/recipes/{org_name}/{recipe_name}": { + "get": { + "description": "Get recipe details in org as guest", + "operationId": "getRecipeInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get recipe in org as guest", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [] + } + }, + "/v2/recipes/{org_name}/{recipe_name}/versions": { + "get": { + "description": "List recipe versions in org as guest", + "operationId": "listRecipeVersionsInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List recipe versions in org as guest", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [] + } + }, + "/v2/recipes/{org_name}/{recipe_name}/versions/{version_id}": { + "get": { + "description": "Get recipe version in org as guest", + "operationId": "getRecipeVersionInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get recipe version in org as guest", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [] + } + }, + "/v2/recipes/{org_name}/{recipe_name}/versions/{version_id}/files": { + "get": { + "description": "List files of the recipe version in org as guest", + "operationId": "listModeFilesInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List recipe files in org as guest", + "tags": [ + "Resource Version Files endpoints" + ], + "x-ssa-scopes": [] + } + }, + "/v2/recipes/{org_name}/{team_name}/{recipe_name}": { + "get": { + "description": "Get recipe details in team as guest", + "operationId": "getRecipeInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get recipe in team as guest", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [] + } + }, + "/v2/recipes/{org_name}/{team_name}/{recipe_name}/versions": { + "get": { + "description": "List recipe versions in team as guest", + "operationId": "listRecipeVersionsInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List recipe versions in team as guest", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [] + } + }, + "/v2/recipes/{org_name}/{team_name}/{recipe_name}/versions/{version_id}": { + "get": { + "description": "Get recipe version in team as guest", + "operationId": "getRecipeVersionInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get recipe version in team as guest", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [] + } + }, + "/v2/recipes/{org_name}/{team_name}/{recipe_name}/versions/{version_id}/files": { + "get": { + "description": "List files of the recipe version in team as guest", + "operationId": "listModeFilesInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List recipe files in team as guest", + "tags": [ + "Resource Version Files endpoints" + ], + "x-ssa-scopes": [] + } + }, + "/v2/resources": { + "get": { + "description": "List public recipes", + "operationId": "listPublicRecipes_1", + "parameters": [ + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List public recipes", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [] + } + }, + "/v2/resources/{org_name}/{recipe_name}": { + "get": { + "description": "Get recipe details in org as guest", + "operationId": "getRecipeInOrgAsGuest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get recipe in org as guest", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [] + } + }, + "/v2/resources/{org_name}/{recipe_name}/versions": { + "get": { + "description": "List recipe versions in org as guest", + "operationId": "listRecipeVersionsInOrgAsGuest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List recipe versions in org as guest", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [] + } + }, + "/v2/resources/{org_name}/{recipe_name}/versions/{version_id}": { + "get": { + "description": "Get recipe version in org as guest", + "operationId": "getRecipeVersionInOrgAsGuest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get recipe version in org as guest", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [] + } + }, + "/v2/resources/{org_name}/{recipe_name}/versions/{version_id}/files": { + "get": { + "description": "List files of the recipe version in org as guest", + "operationId": "listModeFilesInOrgAsGuest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List recipe files in org as guest", + "tags": [ + "Resource Version Files endpoints" + ], + "x-ssa-scopes": [] + } + }, + "/v2/resources/{org_name}/{team_name}/{recipe_name}": { + "get": { + "description": "Get recipe details in team as guest", + "operationId": "getRecipeInTeamAsGuest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get recipe in team as guest", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [] + } + }, + "/v2/resources/{org_name}/{team_name}/{recipe_name}/versions": { + "get": { + "description": "List recipe versions in team as guest", + "operationId": "listRecipeVersionsInTeamAsGuest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List recipe versions in team as guest", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [] + } + }, + "/v2/resources/{org_name}/{team_name}/{recipe_name}/versions/{version_id}": { + "get": { + "description": "Get recipe version in team as guest", + "operationId": "getRecipeVersionInTeamAsGuest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get recipe version in team as guest", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [] + } + }, + "/v2/resources/{org_name}/{team_name}/{recipe_name}/versions/{version_id}/files": { + "get": { + "description": "List files of the recipe version in team as guest", + "operationId": "listModeFilesInTeamAsGuest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List recipe files in team as guest", + "tags": [ + "Resource Version Files endpoints" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}": { + "get": { + "description": "List public artifacts", + "operationId": "listPublicArtifacts", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List public artifacts", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/org/{org_name}/team/{team_name}/{artifact_name}/collections": { + "get": { + "description": "List artifact collections the user can access in the specified org and team as guest", + "operationId": "listArtifactCollectionsInTeamAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Order by", + "in": "query", + "name": "order-by", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List artifact collections in org and team as guest", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/org/{org_name}/{artifact_name}/collections": { + "get": { + "description": "List artifact collections the user can access in the specified org as guest", + "operationId": "listArtifactCollectionsInOrgAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Order by", + "in": "query", + "name": "order-by", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List artifact collections in org as guest", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/{org_name}/{artifact_name}": { + "get": { + "description": "Get artifact details in org as guest", + "operationId": "getArtifactInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get artifact in org as guest", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/{org_name}/{artifact_name}/latest-version/zip": { + "get": { + "deprecated": true, + "description": "Download all files of an org artifact's latest version in a zip as guest", + "operationId": "downloadAllFilesOfLatestVersionInOrgAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Download all files of an org artifact's latest version in a zip as guest", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/files": { + "get": { + "description": "List files of the artifact version in org as guest", + "operationId": "listArtifactFilesInOrgAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List artifact files in org as guest", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/files/**": { + "get": { + "deprecated": true, + "description": "Download the specified file of the artifact version in org as guest", + "operationId": "downloadArtifactFileInOrgAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Download artifact file in org as guest", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/files/**/zip/download": { + "get": { + "deprecated": true, + "description": "Download the specified file of the artifact version in org as guest as zip", + "operationId": "downloadArtifactFileInOrgAsGuestAsZip", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "binary", + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Download artifact file in org as guest as zip", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/signature": { + "get": { + "description": "Request to retrieve a pre-signed Download URL for the signature of an artifact version as a guest.", + "operationId": "getArtifactVersionSignatureAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Get redirect URL", + "in": "query", + "name": "redirect", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "tags": [ + "ArtifactSigning" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/zip": { + "get": { + "deprecated": true, + "description": "Download all files of an org artifact in a zip as guest", + "operationId": "downloadAllFilesInOrgAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Download all files of an org artifact in a zip as guest", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/zip/download": { + "get": { + "deprecated": true, + "description": "Direct download all files of a org artifact in a zip as guest", + "operationId": "directDownloadAllFilesInOrgAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "binary", + "type": "string" + } + }, + "application/zip": { + "schema": { + "format": "binary", + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Direct download all files of a org artifact in a zip as guest", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}": { + "get": { + "description": "Get artifact details in team as guest", + "operationId": "getChartInTeamAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get artifact in team as guest", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/latest-version/zip": { + "get": { + "deprecated": true, + "description": "Download all files of a team artifact's latest version in a zip as guest", + "operationId": "downloadAllFilesInTeamAsGuest_1", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Download all files of a team artifact's latest version in a zip as guest", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/files": { + "get": { + "description": "List files of the artifact version in team as guest", + "operationId": "listArtifactFilesInTeamAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List artifact files in team as guest", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/files/**": { + "get": { + "deprecated": true, + "description": "Download the specified file of the artifact version in team as guest", + "operationId": "downloadArtifactFileInTeamAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Download artifact file in team as guest", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/files/**/zip/download": { + "get": { + "deprecated": true, + "description": "Download the specified file of the artifact version in team as guest as zip", + "operationId": "downloadArtifactFileInTeamAsGuestAsZip", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "binary", + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Download artifact file in team as guest as zip", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/signature": { + "get": { + "description": "Request to retrieve a pre-signed Download URL for the signature of an artifact version as a guest.", + "operationId": "getArtifactVersionSignatureAsGuest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Get redirect URL", + "in": "query", + "name": "redirect", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "tags": [ + "ArtifactSigning" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/zip": { + "get": { + "deprecated": true, + "description": "Download all files of a team artifact in a zip as guest", + "operationId": "downloadAllFilesInTeamAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Download all files of a team artifact in a zip as guest", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/zip/download": { + "get": { + "deprecated": true, + "description": "Direct download all files of a team artifact in a zip as guest", + "operationId": "directDownloadAllFilesInTeamAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "binary", + "type": "string" + } + }, + "application/zip": { + "schema": { + "format": "binary", + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Direct download all files of a team artifact in a zip as guest", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/{org_name}/{artifact_name}/playground": { + "get": { + "deprecated": true, + "description": "Get AI Playground for public model", + "operationId": "getPublicModelAIPlayground", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/{org_name}/{artifact_name}/spec": { + "get": { + "description": "Get AI Playground for public artifactType", + "operationId": "getPublicModelArtifactsSpec", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get AI Playground for public artifactType", + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/playground": { + "get": { + "deprecated": true, + "description": "Get AI Playground for public model", + "operationId": "getPublicModelAIPlayground_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/spec": { + "get": { + "description": "Get AI Playground for public artifactType", + "operationId": "getPublicModelArtifactsSpec_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact_type", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifact_name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get AI Playground for public artifactType", + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{type}/org/{org}/team/{team}/{name}/{version}/files": { + "get": { + "description": "Returns pre-signed download URLs for every file of a public artifact version, allowing unauthenticated guest clients to download the version's contents.", + "operationId": "downloadAllArtifactFilesAsGuest_1", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "type", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "File path", + "in": "query", + "name": "path", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Get redirect URL", + "in": "query", + "name": "redirect", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "As a guest provide a list of presigned urls for the download of all files belonging to a public artifact version", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [] + } + }, + "/v2/{type}/org/{org}/{name}/{version}/files": { + "get": { + "description": "Returns pre-signed download URLs for every file of a public artifact version, allowing unauthenticated guest clients to download the version's contents.", + "operationId": "downloadAllArtifactFilesAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "type", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "File path", + "in": "query", + "name": "path", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Get redirect URL", + "in": "query", + "name": "redirect", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "As a guest provide a list of presigned urls for the download of all files belonging to a public artifact version", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [] + } + } + }, + "servers": [ + { + "url": "https://api.ngc.nvidia.com" + } + ], + "tags": [ + { + "description": "Artifact file checksum verification and commit endpoints", + "name": "ArtifactChecksum" + }, + { + "description": "Artifact-level overrides for cloud deployment parameters", + "name": "Artifact deployment parameters" + }, + { + "description": "Artifact signing and signature verification", + "name": "ArtifactSigning" + }, + { + "description": "Publish artifacts to the NGC catalog", + "name": "Publish" + }, + { + "description": "Artifact (resource, model, helm chart) Version endpoints", + "name": "Artifact Versions" + }, + { + "description": "App-to-artifact associations", + "name": "Apps" + }, + { + "description": "NIM profile metadata registration (placeholder)", + "name": "NIM Metadata" + }, + { + "description": "Metadata describing cloud deployment parameter schemas", + "name": "Deployment parameters meta" + }, + { + "description": "AI Playground demo metadata endpoints", + "name": "AIPlayground" + }, + { + "description": "Collections endpoints", + "name": "Collections" + }, + { + "description": "Model endpoints", + "name": "Models" + }, + { + "description": "Default CSP-level cloud deployment parameters", + "name": "Cloud service provider deployment parameters" + }, + { + "description": "Service health checks", + "name": "Health" + }, + { + "description": "Model endpoints", + "name": "Model Version Files" + }, + { + "description": "Artifact (resource, model, helm chart) endpoints", + "name": "Artifacts" + }, + { + "description": "Resources endpoints, previously known as 'recipes'", + "name": "Resources" + }, + { + "description": "Malware scan status for artifact files", + "name": "MalwareScan" + }, + { + "description": "Asynchronous artifact-registry workflow status endpoints", + "name": "Workflows" + }, + { + "description": "GPU metadata lookup by PCI identifier", + "name": "GpuByPci" + }, + { + "description": "Helm chart version management", + "name": "Helm Charts" + }, + { + "description": "Cloud service provider registry entries", + "name": "Cloud service providers" + }, + { + "description": "Artifact (resource, model, helm chart) Version File endpoints", + "name": "Artifact Version Files" + }, + { + "description": "Customer-managed encryption keys for artifact storage", + "name": "Encryption Keys" + }, + { + "description": "Resource and Model File endpoints", + "name": "Artifact File" + }, + { + "description": "Resource Versions endpoints, previously known as 'recipes'", + "name": "Resource Versions" + }, + { + "description": "Resource Version File endpoints, previously known as 'recipes'", + "name": "Resource Version Files endpoints" + }, + { + "description": "Model endpoints", + "name": "Model Version" + }, + { + "description": "NSPECT-LOEJ-50BP", + "name": "nspect_id" + } + ] +} diff --git a/provider-dev/downloaded/cleaned/nvcf_openapi.json b/provider-dev/downloaded/cleaned/nvcf_openapi.json new file mode 100644 index 0000000..fb99db7 --- /dev/null +++ b/provider-dev/downloaded/cleaned/nvcf_openapi.json @@ -0,0 +1,6190 @@ +{ + "components": { + "schemas": { + "AddRegistryCredentialRequest": { + "description": "Request body to add a registry credential to an account", + "properties": { + "artifactTypes": { + "description": "Artifact types that can be retrieved using this credential", + "items": { + "enum": [ + "CONTAINER", + "HELM", + "MODEL", + "RESOURCE" + ], + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "description": { + "description": "Optional registry credential description", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "registryHostname": { + "description": "Registry hostname", + "format": "UTF-8", + "maxLength": 255, + "minLength": 1, + "pattern": "(?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{1,63}(?<!-)\\.)+[a-zA-Z0-9]{2,63}$)", + "type": "string" + }, + "secret": { + "$ref": "#/components/schemas/SecretDto", + "description": "Registry credential - secret value must be base64 encoded string in username:password format" + }, + "tags": { + "description": "Optional set of tags", + "items": { + "pattern": "[a-zA-Z0-9\\-_:=]+", + "type": "string" + }, + "maxItems": 64, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + } + }, + "required": [ + "artifactTypes", + "registryHostname", + "secret" + ], + "type": "object" + }, + "ArtifactDto": { + "description": "Data Transfer Object(DTO) representing an artifact", + "properties": { + "name": { + "description": "Artifact name", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "uri": { + "description": "Artifact URI", + "format": "uri", + "type": "string" + }, + "version": { + "description": "Artifact version", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "name", + "uri", + "version" + ], + "type": "object" + }, + "AssetDto": { + "description": "Data Transfer Object(DTO) representing an asset", + "properties": { + "assetId": { + "description": "Asset id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "contentType": { + "description": "Content-type specified when creating the asset", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "createdAt": { + "description": "Timestamp specified when creating the asset", + "format": "date-time", + "maxLength": 30, + "minLength": 8, + "type": [ + "string", + "null" + ] + }, + "description": { + "description": "Description specified when creating the asset", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "AssetResponse": { + "properties": { + "asset": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "required": [ + "asset" + ], + "type": "object" + }, + "AuthorizedPartiesByFunctionDto": { + "description": "Data Transfer Object(DTO) representing a function with authorized accounts", + "properties": { + "authorizedParties": { + "description": "Authorized parties allowed to invoke the function", + "items": { + "$ref": "#/components/schemas/AuthorizedPartyDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + }, + "id": { + "description": "Function id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "ncaId": { + "description": "NVIDIA Cloud Account Id", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "versionId": { + "description": "Function version id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "ncaId" + ], + "type": "object" + }, + "AuthorizedPartiesRequest": { + "description": "Request to associated authorized parties for a specific version or allversions of a function", + "properties": { + "authorizedParties": { + "description": "Parties authorized to invoke function", + "items": { + "$ref": "#/components/schemas/AuthorizedPartyDto" + }, + "maxItems": 2147483647, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "authorizedParties" + ], + "type": "object" + }, + "AuthorizedPartiesResponse": { + "description": "Parties authorized to invoke function", + "properties": { + "function": { + "$ref": "#/components/schemas/AuthorizedPartiesByFunctionDto", + "description": "Function with authorized parties and other details" + } + }, + "required": [ + "function" + ], + "type": "object" + }, + "AuthorizedPartyDto": { + "description": "Data Transfer Object(DTO) representing an authorized party.", + "properties": { + "clientId": { + "description": "Client Id -- 'sub' claim in the JWT. This field should not be\n specified anymore.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "ncaId": { + "description": "NVIDIA Cloud Account authorized to invoke the function", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ncaId" + ], + "type": "object" + }, + "AutoscalingConfigurationDto": { + "description": "Data Transfer Object(DTO) representing autoscaling configuration", + "properties": { + "scaleDownDetails": { + "$ref": "#/components/schemas/ScalingDetails", + "description": "Configuration for scaling down" + }, + "scaleUpDetails": { + "$ref": "#/components/schemas/ScalingDetails", + "description": "Configuration for scaling up" + } + }, + "type": "object" + }, + "BasicFunctionDto": { + "description": "Basic Data Transfer Object (DTO) representing a function", + "properties": { + "functionId": { + "description": "Unique function id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "functionVersionId": { + "description": "Unique function version id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "functionId" + ], + "type": "object" + }, + "Cluster": { + "properties": { + "id": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "k8sVersion": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "name": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "ClusterGroup": { + "properties": { + "authorizedNcaIds": { + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + }, + "clusters": { + "items": { + "$ref": "#/components/schemas/Cluster" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + }, + "gpus": { + "items": { + "$ref": "#/components/schemas/Gpu" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + }, + "id": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "name": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "ncaId": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "ClusterGroupsResponse": { + "properties": { + "clusterGroups": { + "items": { + "$ref": "#/components/schemas/ClusterGroup" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ContainerEnvironmentEntryDto": { + "description": "Data Transfer Object(DTO) representing a container environment entry", + "properties": { + "key": { + "description": "Container environment key", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "value": { + "description": "Container environment value", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "key", + "value" + ], + "type": "object" + }, + "CreateAssetRequest": { + "description": "Request payload to create an asset-id and the corresponding pre-signed URL to upload an asset of specified content-type to AWS S3 bucket.", + "properties": { + "contentType": { + "description": "Content type of the asset such image/png, image/jpeg, etc.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "description": { + "description": "Asset description", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "contentType", + "description" + ], + "type": "object" + }, + "CreateAssetResponse": { + "description": "Response body containing asset-id and the corresponding pre-signed URL to upload an asset of specified content-type to AWS S3 bucket.", + "properties": { + "assetId": { + "description": "Unique id of the asset to be uploaded to AWS S3 bucket", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "contentType": { + "description": "Content type of the asset such image/png, image/jpeg, etc.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "description": { + "description": "Asset description to be used when uploading the asset", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "uploadUrl": { + "description": "Pre-signed upload URL to upload asset", + "format": "url", + "type": "string" + } + }, + "required": [ + "assetId", + "contentType", + "description", + "uploadUrl" + ], + "type": "object" + }, + "CreateFunctionRequest": { + "description": "Request payload to create function.", + "properties": { + "apiBodyFormat": { + "description": "Invocation request body format", + "enum": [ + "PREDICT_V2", + "CUSTOM" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "containerArgs": { + "description": "Args to be passed when launching the container", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "containerEnvironment": { + "description": "Environment settings for launching the container", + "items": { + "$ref": "#/components/schemas/ContainerEnvironmentEntryDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + }, + "containerImage": { + "description": "Optional custom container image", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "description": { + "description": "Optional function/version description", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "functionType": { + "description": "Optional function type, used to indicate a STREAMING function. Defaults to DEFAULT.", + "enum": [ + "DEFAULT", + "STREAMING", + "LLM" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "health": { + "$ref": "#/components/schemas/HealthDto", + "description": "Function health" + }, + "healthUri": { + "deprecated": true, + "description": "Health endpoint for the container or the helmChart", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "helmChart": { + "description": "Optional Helm Chart", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "helmChartServiceName": { + "description": "Helm Chart Service Name is required when helmChart property is specified\n", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "inferencePort": { + "description": "Optional port number where the inference listener is running. Defaults to 8000\n for Triton.\n", + "format": "int32", + "maximum": 2147483647, + "minimum": -2147483648, + "type": [ + "integer", + "null" + ] + }, + "inferenceUrl": { + "description": "Entrypoint for invoking the container to process a request", + "format": "uri", + "type": "string" + }, + "llmInvocationConfig": { + "$ref": "#/components/schemas/LlmInvocationConfigDto", + "description": "Optional function-level LLM invocation configuration. Only valid for LLM-type functions." + }, + "models": { + "description": "Optional list of models", + "items": { + "$ref": "#/components/schemas/FunctionModelDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + }, + "name": { + "description": "Function name must start with lowercase/uppercase/digit and can only contain lowercase, uppercase, digit, hyphen, and underscore characters", + "format": "UTF-8", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-z0-9A-Z][a-z0-9A-Z\\-_]*$", + "type": "string" + }, + "rateLimit": { + "$ref": "#/components/schemas/RateLimitDto", + "description": "Optional rate limit config" + }, + "resources": { + "description": "Optional set of resources", + "items": { + "$ref": "#/components/schemas/ArtifactDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "secrets": { + "description": "Optional secrets", + "items": { + "$ref": "#/components/schemas/SecretDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "tags": { + "description": "Optional set of tags - could be empty. Provided by user", + "items": { + "pattern": "[a-zA-Z0-9\\-_:=]+", + "type": "string" + }, + "maxItems": 64, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "telemetries": { + "$ref": "#/components/schemas/TelemetriesDto", + "description": "Optional telemetry configuration for logs, metrics, and traces." + } + }, + "required": [ + "inferenceUrl", + "name" + ], + "type": "object" + }, + "CreateFunctionResponse": { + "description": "Response body for create function request.", + "properties": { + "function": { + "$ref": "#/components/schemas/FunctionDto", + "description": "Details of the newly created function" + } + }, + "required": [ + "function" + ], + "type": "object" + }, + "DeploymentHealthDto": { + "description": "Data Transfer Object(DTO) representing deployment error", + "properties": { + "backend": { + "description": "Backend/CSP where the GPU powered instance will be launched", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "error": { + "description": "Deployment error", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "gpu": { + "description": "GPU Type as per SDD", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "icmsRequestId": { + "description": "ICMS Request ID", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "instanceType": { + "description": "Instance type", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "backend", + "error", + "gpu", + "icmsRequestId" + ], + "type": "object" + }, + "DeploymentResponse": { + "description": "Function Deployment Response", + "properties": { + "deployment": { + "$ref": "#/components/schemas/FunctionDeploymentDto", + "description": "Deployment details" + } + }, + "required": [ + "deployment" + ], + "type": "object" + }, + "FunctionDeploymentDto": { + "description": "Function deployment response", + "properties": { + "createdAt": { + "description": "Function deployment creation timestamp", + "format": "date-time", + "maxLength": 30, + "minLength": 8, + "type": "string" + }, + "deploymentId": { + "description": "Last deployment id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "deploymentSpecifications": { + "description": "Function deployment details", + "items": { + "$ref": "#/components/schemas/GpuSpecificationDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + }, + "functionId": { + "description": "Function id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "functionName": { + "description": "Function name", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "functionStatus": { + "description": "Function status", + "enum": [ + "ACTIVE", + "DEPLOYING", + "ERROR", + "INACTIVE", + "DELETED", + "DEGRADED", + "DEGRADING" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "functionVersionId": { + "description": "Function version id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "healthInfo": { + "description": "Health info for a deployment specification is included only if there are any\n issues/errors.\n", + "items": { + "$ref": "#/components/schemas/DeploymentHealthDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + }, + "lastUpdatedAt": { + "description": "Function deployment modification timestamp", + "format": "date-time", + "maxLength": 30, + "minLength": 8, + "type": "string" + }, + "ncaId": { + "description": "NVIDIA Cloud Account Id", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "createdAt", + "deploymentId", + "deploymentSpecifications", + "functionId", + "functionName", + "functionStatus", + "functionVersionId", + "lastUpdatedAt", + "ncaId" + ], + "type": "object" + }, + "FunctionDeploymentRequest": { + "description": "Request to deploy a function", + "properties": { + "deploymentSpecifications": { + "description": "GPU specs with GPU, instance-type, clusters etc. details", + "items": { + "$ref": "#/components/schemas/GpuSpecificationDto" + }, + "maxItems": 2147483647, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "deploymentSpecifications" + ], + "type": "object" + }, + "FunctionDto": { + "description": "Data Transfer Object (DTO) representing a function", + "properties": { + "activeInstances": { + "description": "List of active instances for this function.", + "items": { + "$ref": "#/components/schemas/InstanceDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + }, + "apiBodyFormat": { + "description": "Invocation request body format", + "enum": [ + "PREDICT_V2", + "CUSTOM" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "containerArgs": { + "description": "Args used to launch the container", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "containerEnvironment": { + "description": "Environment settings used to launch the container", + "items": { + "$ref": "#/components/schemas/ContainerEnvironmentEntryDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + }, + "containerImage": { + "description": "Optional custom container", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "createdAt": { + "description": "Function creation timestamp", + "format": "date-time", + "maxLength": 30, + "minLength": 8, + "type": "string" + }, + "description": { + "description": "Function/version description", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "functionType": { + "description": "Used to indicate a STREAMING function. Defaults to DEFAULT.", + "enum": [ + "DEFAULT", + "STREAMING", + "LLM" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "health": { + "$ref": "#/components/schemas/HealthDto", + "description": "Function health configuration" + }, + "healthUri": { + "deprecated": true, + "description": "Health endpoint for the container or helmChart. Deprecated, use health.uri instead.", + "format": "uri", + "type": "string" + }, + "helmChart": { + "description": "Optional Helm Chart", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "helmChartServiceName": { + "description": "Helm Chart Service Name specified only when helmChart property is specified\n", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "id": { + "description": "Unique function id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "inferencePort": { + "description": "Optional port number where the inference listener is running - defaults to 8000 for Triton", + "format": "int32", + "maximum": 2147483647, + "minimum": -2147483648, + "type": [ + "integer", + "null" + ] + }, + "inferenceUrl": { + "description": "Entrypoint for invoking the container to process requests", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "llmInvocationConfig": { + "$ref": "#/components/schemas/LlmInvocationConfigDto", + "description": "Optional function-level LLM invocation configuration." + }, + "models": { + "description": "Optional list of models", + "items": { + "$ref": "#/components/schemas/FunctionModelDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + }, + "name": { + "description": "Function name", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "ncaId": { + "description": "NVIDIA Cloud Account Id", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "ownedByDifferentAccount": { + "description": "Indicates whether the function is owned by another account. If the account\n that is being used to lookup functions happens to be authorized to invoke/list\n this function which is owned by a different account, then this field is set\n to true and ncaId will contain the id of the account that owns the function.\n Otherwise, this field is not set as it defaults to false.\n", + "type": [ + "boolean", + "null" + ] + }, + "rateLimit": { + "$ref": "#/components/schemas/RateLimitDto", + "description": "Optional rate limit policy" + }, + "resources": { + "description": "Optional set of resources.", + "items": { + "$ref": "#/components/schemas/ArtifactDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "secrets": { + "description": "Optional secret names", + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "status": { + "description": "Function status", + "enum": [ + "ACTIVE", + "DEPLOYING", + "ERROR", + "INACTIVE", + "DELETED", + "DEGRADED", + "DEGRADING" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "tags": { + "description": "Optional set of tags. Maximum allowed number of tags per function is 64. Maximum length of each tag is 128 chars.", + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "telemetries": { + "$ref": "#/components/schemas/TelemetriesDto", + "description": "Optional telemetry configuration for the function" + }, + "versionId": { + "description": "Unique function version id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + "required": [ + "createdAt", + "functionType", + "healthUri", + "id", + "name", + "ncaId", + "status", + "versionId" + ], + "type": "object" + }, + "FunctionModelDto": { + "description": "Model associated with a function, including optional LLM routing metadata", + "properties": { + "llmConfig": { + "$ref": "#/components/schemas/LlmConfigDto", + "description": "LLM-specific configuration for this model. Only relevant for LLM-type functions." + }, + "name": { + "description": "Model name", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "uri": { + "description": "Model URI. Optional for LLM-type functions.", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "version": { + "description": "Model version. Optional for LLM-type functions.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "FunctionResponse": { + "description": "Response body with function details", + "properties": { + "function": { + "$ref": "#/components/schemas/FunctionDto", + "description": "Function details" + } + }, + "required": [ + "function" + ], + "type": "object" + }, + "GetPositionInQueueResponse": { + "description": "Request position in queue for invocation request", + "properties": { + "functionId": { + "description": "Function id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "functionVersionId": { + "description": "Function version id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "positionInQueue": { + "description": "Position of request in queue", + "format": "int32", + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + }, + "required": [ + "functionId", + "functionVersionId" + ], + "type": "object" + }, + "GetQueuesResponse": { + "description": "Request queue details of all the functions with same id in an account", + "properties": { + "functionId": { + "description": "Function id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "queues": { + "description": "Details of all the queues associated with same named functions", + "items": { + "$ref": "#/components/schemas/QueueDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "functionId", + "queues" + ], + "type": "object" + }, + "Gpu": { + "properties": { + "instanceTypes": { + "items": { + "$ref": "#/components/schemas/InstanceType" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + }, + "name": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "GpuSpecificationDto": { + "description": "Data Transfer Object(DTO) representing GPU specification.", + "properties": { + "attributes": { + "description": "Specific cluster attributes/capabilities to deploy functions. For example,\nHIPPA Compliant, Confidential Compute Compliant, etc.\n", + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "autoscalingConfiguration": { + "$ref": "#/components/schemas/AutoscalingConfigurationDto", + "description": "Customizable autoscaling configuration" + }, + "availabilityZones": { + "description": "List of availability-zones(or clusters) in the cluster group", + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + }, + "backend": { + "description": "Use clusters instead of this property. Legacy property typically used when deploying a function to GFN.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "clusters": { + "description": "Specific clusters powered by the selected instance-type to deploy function.\n", + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "configuration": { + "additionalProperties": true, + "description": "Typically used when the function is based on Helm Charts to substitute\n placeholders in values yaml.\n", + "type": "object" + }, + "cpuArch": { + "description": "CPU Architecture details", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "driverVersion": { + "description": "GPU driver version", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "gpu": { + "description": "GPU name from the cluster", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "gpuMemory": { + "description": "Amount of GPU memory", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "gpuSpecificationId": { + "description": "GPU specification id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": [ + "string", + "null" + ] + }, + "helmValidationPolicy": { + "$ref": "#/components/schemas/HelmValidationPolicyDto", + "description": "Helm validation policy" + }, + "instanceType": { + "description": "Instance type, based on GPU, assigned to a Worker", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "maxInstances": { + "description": "Maximum number of instances for the deployment", + "format": "int32", + "maximum": 2147483647, + "minimum": 0, + "type": "integer" + }, + "maxRequestConcurrency": { + "description": "Max request concurrency between 1 (default) and 16384.", + "format": "int32", + "maximum": 16384, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "minInstances": { + "description": "Minimum number of instances for the deployment", + "format": "int32", + "maximum": 2147483647, + "minimum": 0, + "type": "integer" + }, + "os": { + "description": "Operating System details", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "regions": { + "description": "List of regions allowed to deploy. The instance or worker node will be in one of\nthe specified geographical regions.\n", + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "storage": { + "description": "Amount of available storage, e.g. 80G", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "systemMemory": { + "description": "Amount of RAM", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "gpu", + "instanceType", + "maxInstances", + "minInstances" + ], + "type": "object" + }, + "Health": { + "properties": { + "description": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "details": { + "additionalProperties": {}, + "type": "object" + }, + "status": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "HealthDto": { + "description": "Data Transfer Object(DTO) representing a function's health configuration", + "properties": { + "expectedStatusCode": { + "description": "Expected return status code considered as successful.", + "format": "int32", + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + }, + "port": { + "description": "Port number where the health listener is running", + "format": "int32", + "maximum": 2147483647, + "minimum": 0, + "type": "integer" + }, + "protocol": { + "description": "HTTP/gPRC protocol type for health endpoint", + "enum": [ + "HTTP", + "gRPC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "timeout": { + "description": "ISO 8601 duration string in PnDTnHnMn.nS format", + "example": "PT10S", + "format": "duration", + "type": "string" + }, + "uri": { + "description": "Health endpoint for the container or the helmChart", + "format": "uri", + "type": "string" + } + }, + "required": [ + "expectedStatusCode", + "port", + "protocol", + "timeout", + "uri" + ], + "type": "object" + }, + "HelmValidationPolicyDto": { + "description": "Data Transfer Object(DTO) representing Helm validation policy", + "properties": { + "extraKubernetesTypes": { + "description": "An API Group in Kubernetes is a collection of related functionality.\nWhen present, must contain at least one entry; each entry must be a valid\nKubernetesType (group, version, kind).\n", + "items": { + "$ref": "#/components/schemas/KubernetesType" + }, + "maxItems": 2147483647, + "minItems": 1, + "type": [ + "array", + "null" + ] + }, + "name": { + "description": "Helm validation policy name.", + "enum": [ + "Default", + "Unrestricted" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "InfoResponse": { + "properties": { + "commit": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "service": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "version": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "InstanceDto": { + "description": "Data Transfer Object(DTO) representing an instance", + "properties": { + "backend": { + "description": "Backend where the instance is running", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "functionId": { + "description": "Function executing on the instance", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "functionVersionId": { + "description": "Function version executing on the instance", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "gpu": { + "description": "GPU name powering the instance", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "icmsRequestId": { + "description": "ICMS request-id used to launch this instance", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "instanceCreatedAt": { + "description": "Instance creation timestamp", + "format": "date-time", + "maxLength": 30, + "minLength": 8, + "type": "string" + }, + "instanceId": { + "description": "Unique id of the instance", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "instanceStatus": { + "description": "Instance status", + "enum": [ + "ACTIVE", + "STARTING", + "RUNNING", + "ERRORED", + "PREEMPTED", + "DELETED", + "TERMINATED" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "instanceType": { + "description": "GPU instance-type powering the instance", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "instanceUpdatedAt": { + "description": "Instance's last updated timestamp", + "format": "date-time", + "maxLength": 30, + "minLength": 8, + "type": "string" + }, + "location": { + "description": "Location such as zone name or region where the instance is running", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "ncaId": { + "description": "NVIDIA Cloud Account Id that owns the function running on the instance", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "InstanceType": { + "properties": { + "default": { + "type": "boolean" + }, + "description": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "name": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "InvocationTokenRequest": { + "description": "Request body for issuing a function invocation token", + "properties": { + "clientId": { + "description": "ClientId for client to pass in to track who will eventually use the token", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "clientId" + ], + "type": "object" + }, + "InvocationTokenResponse": { + "description": "Function invocation token response", + "properties": { + "access_token": { + "description": "Token issued by Notary Service", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "expires_in": { + "description": "Token expiration time in seconds", + "format": "int32", + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + }, + "type": "object" + }, + "KubernetesType": { + "properties": { + "group": { + "description": "Name of API Group", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "kind": { + "description": "API Group resource or Kind", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "version": { + "description": "Version of API Group", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "group", + "kind", + "version" + ], + "type": "object" + }, + "ListAssetsResponse": { + "description": "Response body containing list of assets of the current nca id", + "properties": { + "assets": { + "description": "List of assets uploaded for the nca id", + "items": { + "$ref": "#/components/schemas/AssetDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "assets" + ], + "type": "object" + }, + "ListAuthorizedPartiesResponse": { + "description": "Parties authorized to invoke function", + "properties": { + "functions": { + "description": "Functions with authorized parties and other details", + "items": { + "$ref": "#/components/schemas/AuthorizedPartiesByFunctionDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "functions" + ], + "type": "object" + }, + "ListFunctionIdsResponse": { + "description": "Response body containing list of function ids in an account", + "properties": { + "functionIds": { + "description": "List of function ids", + "items": { + "format": "uuid", + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "functionIds" + ], + "type": "object" + }, + "ListFunctionsResponse": { + "description": "Response body containing list of functions", + "properties": { + "functions": { + "description": "List of functions", + "items": { + "$ref": "#/components/schemas/FunctionDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "functions" + ], + "type": "object" + }, + "ListRegistryCredentialDetailsResponse": { + "description": "Response body containing list of registry credentials", + "properties": { + "registryCredentials": { + "description": "List of registry credentials", + "items": { + "$ref": "#/components/schemas/RegistryCredentialDetailsDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "registryCredentials" + ], + "type": "object" + }, + "ListTelemetryResponse": { + "description": "Response containing a list of telemetry configurations.", + "properties": { + "telemetries": { + "description": "List of telemetry configurations.", + "items": { + "$ref": "#/components/schemas/TelemetryDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "LlmConfigDto": { + "description": "LLM-specific configuration for a model", + "properties": { + "routingMethod": { + "description": "Routing method for this model: a request router algorithm name, optionally followed by ';name=value' tuning parameters, for example pulsar;seed=stable-a. The API checks only the format. The request router checks the algorithm and parameters on each request.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "tokenRateLimit": { + "description": "Token-level rate limit for this model.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "tokenizer": { + "description": "Tokenizer identifier for this model.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "uris": { + "description": "OpenAI-compatible URIs supported by this model (e.g. /v1/chat/completions). Required for LLM models.", + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "uris" + ], + "type": "object" + }, + "LlmConfigUpdateDto": { + "description": "Partial update payload for LLM-specific model configuration fields.", + "properties": { + "routingMethod": { + "description": "Updated routing method for the model, in the same format as llmConfig.routingMethod on create. When omitted, the existing value is preserved.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "tokenRateLimit": { + "description": "Updated token-level rate limit for the model. When omitted, the existing value is preserved.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "tokenizer": { + "description": "Cannot be changed after creation. A request that sets it is rejected with 400.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "uris": { + "description": "Cannot be changed after creation. A request that sets it is rejected with 400.", + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + } + }, + "type": "object" + }, + "LlmInvocationConfigDto": { + "description": "Function-level LLM invocation configuration.", + "properties": { + "priority": { + "$ref": "#/components/schemas/PriorityDto", + "description": "Function-level request priority configuration." + } + }, + "type": "object" + }, + "ModelUpdateDto": { + "description": "Model-specific update request.", + "properties": { + "llmConfig": { + "$ref": "#/components/schemas/LlmConfigUpdateDto", + "description": "Optional updates to this model's LLM config fields." + }, + "modelName": { + "description": "Name of the model to update.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "modelName" + ], + "type": "object" + }, + "MultiFunctionsInvocationTokenRequest": { + "description": "Request body for issuing a function invocation token", + "properties": { + "clientId": { + "description": "ClientId for client to pass in to track who will eventually use the token", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "functions": { + "description": "Functions to invoke", + "items": { + "$ref": "#/components/schemas/BasicFunctionDto" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "clientId", + "functions" + ], + "type": "object" + }, + "PatchAuthorizedPartyRequest": { + "description": "Request payload to associate/disassociate authorized party with function\n", + "properties": { + "authorizedParty": { + "$ref": "#/components/schemas/AuthorizedPartyDto", + "description": "Authorized party" + } + }, + "required": [ + "authorizedParty" + ], + "type": "object" + }, + "PriorityDto": { + "description": "Function-level request priority. Lower value is higher priority, 0 is highest.", + "properties": { + "defaultPriority": { + "description": "Default priority.", + "format": "int64", + "maximum": 4294967295, + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "perAccountPriority": { + "additionalProperties": { + "format": "int64", + "type": "integer" + }, + "description": "Per-account priority overrides, keyed by account ID.", + "type": [ + "object", + "null" + ] + } + }, + "type": "object" + }, + "QueueDto": { + "description": "Data Transfer Object(DTO) representing a request queue for function version", + "properties": { + "functionName": { + "description": "Function name", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "functionStatus": { + "description": "Function status", + "enum": [ + "ACTIVE", + "DEPLOYING", + "ERROR", + "INACTIVE", + "DELETED", + "DEGRADED", + "DEGRADING" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "functionVersionId": { + "description": "Function version id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "queueDepth": { + "description": "Approximate number of messages in the request queue", + "format": "int32", + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + }, + "required": [ + "functionName", + "functionStatus", + "functionVersionId" + ], + "type": "object" + }, + "RateLimitDto": { + "description": "Data Transfer Object(DTO) representing Rate limit config", + "properties": { + "exemptedNcaIds": { + "description": "NCA ID Exemptions", + "items": { + "type": "string" + }, + "maxItems": 32, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "perNcaIdRate": { + "additionalProperties": { + "type": "string" + }, + "description": "Per NCA ID Rate", + "type": [ + "object", + "null" + ] + }, + "perUserRate": { + "description": "Per-user rate, intended for traffic authenticated with an invocation delegation token (InvocationToken). When set, this single rate is enforced individually against every unique caller identity, in addition to the NCA-tier limit.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "pattern": "^(?!.*-([SMHD]).*-\\1)[1-9]\\d*-[SMHD](,\\s*[1-9]\\d*-[SMHD])*$", + "type": [ + "string", + "null" + ] + }, + "rateLimit": { + "description": "Rate", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "pattern": "^(?!.*-([SMHD]).*-\\1)[1-9]\\d*-[SMHD](,\\s*[1-9]\\d*-[SMHD])*$", + "type": [ + "string", + "null" + ] + }, + "syncCheck": { + "description": "Sync check. Defaults to false", + "type": [ + "boolean", + "null" + ] + } + }, + "type": "object" + }, + "RecognizedRegistriesResponse": { + "description": "Response body for recognized registries endpoint", + "properties": { + "recognizedRegistries": { + "additionalProperties": { + "items": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "description": "Recognized registries", + "type": "object" + } + }, + "type": "object" + }, + "RegistryCredentialDetailsDto": { + "description": "DTO representing a registry credential", + "properties": { + "artifactTypes": { + "description": "Registry type", + "items": { + "enum": [ + "CONTAINER", + "HELM", + "MODEL", + "RESOURCE" + ], + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "createdAt": { + "description": "Timestamp for registry credential creation", + "format": "date-time", + "maxLength": 30, + "minLength": 8, + "type": "string" + }, + "description": { + "description": "Registry credential description", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "keyType": { + "description": "Optional registry credential key type", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "lastUpdatedAt": { + "description": "Timestamp for last registry credential update", + "format": "date-time", + "maxLength": 30, + "minLength": 8, + "type": "string" + }, + "ncaId": { + "description": "NVIDIA Cloud Account Id owning the Registry Credential", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "provisionedBy": { + "description": "Registry credential provisioned by system or user", + "enum": [ + "SYSTEM", + "USER" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "registryCredentialId": { + "description": "Registry Credential Id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "registryCredentialName": { + "description": "Registry Credential name", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "registryHostname": { + "description": "Registry hostname", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "registryName": { + "description": "Recognized registry name", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "tags": { + "description": "Optional set of tags", + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + } + }, + "required": [ + "artifactTypes", + "createdAt", + "lastUpdatedAt", + "ncaId", + "provisionedBy", + "registryCredentialId", + "registryCredentialName", + "registryHostname", + "registryName" + ], + "type": "object" + }, + "RegistryCredentialDetailsResponse": { + "description": "Response body for Registry Credential operations", + "properties": { + "registryCredential": { + "$ref": "#/components/schemas/RegistryCredentialDetailsDto", + "description": "Registry credential details" + } + }, + "required": [ + "registryCredential" + ], + "type": "object" + }, + "ScalingDetails": { + "properties": { + "factor": { + "description": "Scaling factor must be greater-than 1.0 for scale up and less-than 1.0 for scale down. This factor is used to multiply the currentinstance count when specified threshold is met.", + "format": "float", + "minimum": 0, + "type": "number" + }, + "metric": { + "description": "Scaling metric", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "stickiness": { + "$ref": "#/components/schemas/StickinessWindow", + "description": "Stickiness window configuration" + }, + "threshold": { + "description": "Scaling threshold (0-100) as a percentage of utilizationupon which the number of current instances are multiplied with thespecified factor.", + "format": "int32", + "maximum": 100, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "factor", + "threshold" + ], + "type": "object" + }, + "SecretDto": { + "description": "Data Transfer Object(DTO) representing secret name/value pair", + "properties": { + "name": { + "description": "Secret name", + "format": "UTF-8", + "maxLength": 48, + "minLength": 1, + "pattern": "^[a-z0-9A-Z][a-z0-9A-Z\\_\\.\\-]*$", + "type": "string" + }, + "value": { + "description": "Secret value must be a string or JSON object and 1 - 32768 chars long", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "object" + ] + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "StickinessWindow": { + "properties": { + "size": { + "description": "Window size must be less than or equal to PT1H and will berounded to the nearest minute", + "example": "PT30M", + "format": "duration", + "type": "string" + }, + "threshold": { + "description": "Window threshold must be less than size", + "example": "PT5M", + "format": "duration", + "type": "string" + } + }, + "required": [ + "size", + "threshold" + ], + "type": "object" + }, + "TelemetriesDto": { + "description": "Telemetry configuration for logs, metrics, and traces.", + "properties": { + "logsTelemetryId": { + "description": "UUID representing the logs telemetry.", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": [ + "string", + "null" + ] + }, + "metricsTelemetryId": { + "description": "UUID representing the metrics telemetry.", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": [ + "string", + "null" + ] + }, + "tracesTelemetryId": { + "description": "UUID representing the traces telemetry.", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "TelemetryDto": { + "description": "Data Transfer Object (DTO) for Telemetry configurations", + "properties": { + "createdAt": { + "description": "Telemetry creation timestamp", + "format": "date-time", + "maxLength": 30, + "minLength": 8, + "type": "string" + }, + "endpoint": { + "description": "URL for the telemetry endpoint", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "name": { + "description": "Telemetry name", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "protocol": { + "description": "Protocol used for communication", + "enum": [ + "HTTP", + "GRPC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "provider": { + "description": "Telemetry provider", + "enum": [ + "PROMETHEUS", + "GRAFANA_CLOUD", + "SPLUNK", + "DATADOG", + "SERVICENOW", + "KRATOS", + "KRATOS_THANOS", + "TIMESTREAM", + "VICTORIAMETRICS", + "AZURE_MONITOR", + "OTEL_COLLECTOR" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "telemetryId": { + "description": "Unique telemetry ID", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "types": { + "description": "Set of telemetry data types", + "items": { + "enum": [ + "LOGS", + "METRICS", + "TRACES" + ], + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "createdAt", + "endpoint", + "name", + "protocol", + "provider", + "telemetryId", + "types" + ], + "type": "object" + }, + "TelemetryRequest": { + "description": "Data Transfer Object (DTO) representing a telemetry request", + "properties": { + "endpoint": { + "description": "Telemetry endpoint URL", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "protocol": { + "description": "Protocol used for communication", + "enum": [ + "HTTP", + "GRPC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "provider": { + "description": "Telemetry provider", + "enum": [ + "PROMETHEUS", + "GRAFANA_CLOUD", + "SPLUNK", + "DATADOG", + "SERVICENOW", + "KRATOS", + "KRATOS_THANOS", + "TIMESTREAM", + "VICTORIAMETRICS", + "AZURE_MONITOR", + "OTEL_COLLECTOR" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "secret": { + "$ref": "#/components/schemas/SecretDto", + "description": "Single secret associated with the telemetry configuration" + }, + "types": { + "description": "Set of telemetry data types", + "items": { + "enum": [ + "LOGS", + "METRICS", + "TRACES" + ], + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "endpoint", + "protocol", + "provider", + "secret", + "types" + ], + "type": "object" + }, + "TelemetryResponse": { + "description": "Data Transfer Object (DTO) representing a telemetry response", + "properties": { + "telemetry": { + "$ref": "#/components/schemas/TelemetryDto", + "description": "Telemetry details" + } + }, + "type": "object" + }, + "UpdateFunctionDeploymentRequest": { + "description": "Request to update function deployment spec", + "properties": { + "deploymentSpecifications": { + "description": "Deployment specs with GPU, instance-type, etc. details for update request", + "items": { + "$ref": "#/components/schemas/UpdateGpuSpecificationDto" + }, + "maxItems": 2147483647, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "deploymentSpecifications" + ], + "type": "object" + }, + "UpdateFunctionRequest": { + "description": "Request payload to update mutable function configuration fields.", + "properties": { + "llmInvocationConfig": { + "$ref": "#/components/schemas/LlmInvocationConfigDto", + "description": "Optional function-level LLM invocation configuration. When omitted, the existing value is preserved." + }, + "modelUpdates": { + "description": "Optional list of model-specific updates.", + "items": { + "$ref": "#/components/schemas/ModelUpdateDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + }, + "rateLimit": { + "$ref": "#/components/schemas/RateLimitDto", + "description": "Optional full replacement for the function rate limit configuration. When omitted, the existing value is preserved. Use the delete rate-limit endpoint to clear it." + }, + "tags": { + "description": "Optional set of function tags. When omitted, the existing value is preserved.", + "items": { + "pattern": "[a-zA-Z0-9\\-_:=]+", + "type": "string" + }, + "maxItems": 64, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + } + }, + "type": "object" + }, + "UpdateFunctionSecretsRequest": { + "description": "Request payload to update secrets", + "properties": { + "secrets": { + "description": "Secrets", + "items": { + "$ref": "#/components/schemas/SecretDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "secrets" + ], + "type": "object" + }, + "UpdateGpuSpecificationDto": { + "description": "Data Transfer Object (DTO) representing GPU specification for Deployment Update case.", + "properties": { + "backend": { + "description": "Backend/CSP where the GPU powered instance has been launched. The original value\nwould not be updated and it should be the same as original. The field is required\nonly for validation.\n", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "clusters": { + "description": "Specific clusters within instance or worker node powered by the selected\ninstance-type to deploy function. The original value would not be updated and it\nshould be the same as original. The field is required only for validation.\n", + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "gpu": { + "description": "GPU name from the cluster. Deprecated: this is read-only field, should not be specified in update request.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "gpuSpecificationId": { + "description": "GPU specification id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": [ + "string", + "null" + ] + }, + "instanceType": { + "description": "Instance type, based on GPU, assigned to a Worker. Deprecated: this is read-only field, should not be specified in update request.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "maxInstances": { + "description": "Maximum number of instances for the deployment", + "format": "int32", + "maximum": 2147483647, + "minimum": 0, + "type": "integer" + }, + "maxRequestConcurrency": { + "description": "Max request concurrency between 1 (default) and 16384.", + "format": "int32", + "maximum": 16384, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "minInstances": { + "description": "Minimum number of instances for the deployment", + "format": "int32", + "maximum": 2147483647, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "maxInstances", + "minInstances" + ], + "type": "object" + }, + "UpdateGpuSpecificationRequest": { + "description": "Request to update single function deployment GPU Specification", + "properties": { + "autoscalingConfiguration": { + "$ref": "#/components/schemas/AutoscalingConfigurationDto", + "description": "Customizable Autoscaling configuration" + }, + "autoscalingConfigurationPolicy": { + "description": "Autoscaling configuration policy. CUSTOM_CONFIGURATION (default): use the provided autoscalingConfig. PLATFORM_CONFIGURATION: remove custom config and use platform defaults.", + "enum": [ + "CUSTOM_CONFIGURATION", + "PLATFORM_CONFIGURATION" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "maxInstances": { + "description": "Maximum number of instances for the deployment", + "format": "int32", + "maximum": 2147483647, + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "minInstances": { + "description": "Minimum number of instances for the deployment", + "format": "int32", + "maximum": 2147483647, + "minimum": 0, + "type": [ + "integer", + "null" + ] + } + }, + "type": "object" + }, + "UpdateGpuSpecificationResponse": { + "description": "Update GPU Specification Response", + "properties": { + "gpuSpecification": { + "$ref": "#/components/schemas/GpuSpecificationDto", + "description": "GPU Specification details" + } + }, + "required": [ + "gpuSpecification" + ], + "type": "object" + }, + "UpdateRegistryCredentialRequest": { + "description": "Request body to update registry credential", + "properties": { + "artifactTypeEnums": { + "description": "Optional artifact types to be added to the existing ones", + "items": { + "enum": [ + "CONTAINER", + "HELM", + "MODEL", + "RESOURCE" + ], + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "secret": { + "$ref": "#/components/schemas/SecretDto", + "description": "Registry credential - secret value must be base64 encoded string in username:password format" + } + }, + "type": "object" + }, + "UpdateTelemetrySecretRequest": { + "description": "Request payload to update secret", + "properties": { + "secret": { + "$ref": "#/components/schemas/SecretDto", + "description": "Telemetry secret" + } + }, + "required": [ + "secret" + ], + "type": "object" + } + } + }, + "info": { + "contact": { + "name": "NVIDIA", + "url": "https://www.nvidia.com/" + }, + "termsOfService": "https://www.nvidia.com/en-us/legal_info", + "title": "Cloud Functions", + "version": "2.261.2" + }, + "openapi": "3.1.0", + "paths": { + "/health": { + "get": { + "operationId": "getHealth", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Health" + } + } + }, + "description": "OK" + } + }, + "tags": [ + "health-controller" + ] + } + }, + "/info": { + "get": { + "operationId": "getInfo", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/InfoResponse" + } + } + }, + "description": "OK" + } + }, + "tags": [ + "info-controller" + ] + } + }, + "/v2/nvcf/assets": { + "get": { + "deprecated": true, + "description": "List assets owned by the current NVIDIA Cloud Account. Requires a bearer token with 'invoke_function' scope in the HTTP Authorization header. ", + "operationId": "getAssets", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListAssetsResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "List Assets", + "tags": [ + "Asset Management" + ] + }, + "post": { + "deprecated": true, + "description": "Creates a unique id representing an asset and a pre-signed URL to upload the asset artifact to AWS S3 bucket for the NVIDIA Cloud Account. Requires a bearer token with 'invoke_function' scope in the HTTP Authorization header. ", + "operationId": "createAsset", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateAssetRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateAssetResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Create Asset", + "tags": [ + "Asset Management" + ] + } + }, + "/v2/nvcf/assets/{asset_id}": { + "delete": { + "deprecated": true, + "description": "Deletes asset belonging to the current NVIDIA Cloud Account. Requires a bearer token with 'invoke_function' scope in the HTTP Authorization header. ", + "operationId": "deleteAsset", + "parameters": [ + { + "description": "Id of the asset to be deleted", + "in": "path", + "name": "asset_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "summary": "Delete Asset", + "tags": [ + "Asset Management" + ] + }, + "get": { + "deprecated": true, + "description": "Returns details for the specified asset-id belonging to the current NVIDIA Cloud Account. Requires a bearer token with 'invoke_function' scope in the HTTP Authorization header. ", + "operationId": "getAsset", + "parameters": [ + { + "description": "Asset id", + "in": "path", + "name": "asset_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssetResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Show Asset Details", + "tags": [ + "Asset Management" + ] + } + }, + "/v2/nvcf/authorizations/functions": { + "get": { + "description": "Lists all the function versions in an account that have been shared/authorized with/to other accounts. Response includes the nca-ids of the authorized accounts. If a function version is not shared/authorized, then it is not included in the response. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "getAuthorizedPartiesForAllFunctions", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListAuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "List Functions Authorized/Shared With Other Accounts", + "tags": [ + "Function Sharing" + ] + } + }, + "/v2/nvcf/authorizations/functions/{function_id}": { + "delete": { + "description": "Deletes authorizations at the function level. This impacts all versions of the function. If a function versions has its own set of authorizations, those are not deleted. If the specified function is public, then Account Admin cannot perform this operation. Note that the response does not include any authz accounts at version level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "deleteAuthorizedPartiesForAllVersions", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Delete All Authorizations At Function Level", + "tags": [ + "Function Sharing" + ] + }, + "get": { + "description": "Lists function versions of the specified function and their corresponding authorized accounts allowed to invoke the function version. Individual versions of a function can have their own authorized accounts. So, each object in the array can have different authorized accounts listed. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "getAuthorizedPartiesForAllVersions", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListAuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "List Function Versions with Authorized Accounts For Specified Function", + "tags": [ + "Function Sharing" + ] + }, + "post": { + "description": "Authorizes additional NVIDIA Cloud Accounts to invoke any version of the specified function. By default, a function belongs to the NVIDIA Cloud Account that created it, and the credentials used for function invocation must reference the same NVIDIA Cloud Account. Upon invocation of this endpoint, any existing authorized accounts will be overwritten by the newly specified authorized accounts. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "createAuthorizedPartiesForAllVersions", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Authorize Accounts To Invoke Function", + "tags": [ + "Function Sharing" + ] + } + }, + "/v2/nvcf/authorizations/functions/{function_id}/add": { + "patch": { + "description": "Adds the specified NVIDIA Cloud Account to the set of authorized accounts that are can invoke all the versions of the specified function. If the specified function does not have any existing inheritable authorized accounts, it results in a response with status 404. If the specified account is already in the set of existing inheritable authorized accounts, it results in a response with status code 409. If a function is public, then Account Admin cannot perform this operation. Note that response only includes authz accounts at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "addAuthorizedPartyForAllVersions", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PatchAuthorizedPartyRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Authorize Another Account To Invoke, List, and Check Queue Details of Function", + "tags": [ + "Function Sharing" + ] + } + }, + "/v2/nvcf/authorizations/functions/{function_id}/remove": { + "patch": { + "description": "Removes the specified NVIDIA Cloud Account from the set of authorized accounts that can invoke all the versions of the specified function. If the specified function does not have any existing inheritable authorized parties, it results in a response with status 404. Also, if the specified account is not in the existing set of inheritable authorized accounts, it results in a response with status 404. If the specified function is public, then Account Admin cannot perform this operation. Note that response only includes the remaining authorized accounts at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "removeAuthorizedPartyForAllVersions", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PatchAuthorizedPartyRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Unauthorize Account From Invoking, Listing, and Checking Queue Details of Function", + "tags": [ + "Function Sharing" + ] + } + }, + "/v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id}": { + "delete": { + "description": "Deletes all the authorized accounts that are directly associated with the specified function version. Authorized parties that are inherited by the function version are not deleted. If the specified function version is public, then Account Admin cannot perform this operation. Note that the response does not include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "deleteAuthorizedPartiesForSpecificVersion", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version", + "in": "path", + "name": "function_version_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Delete All Authorizations At Version Level", + "tags": [ + "Function Sharing" + ] + }, + "get": { + "description": "Gets NVIDIA Cloud Account IDs that are authorized to invoke specified function version. Response includes authorized accounts that were added specifically at the version level and the authorized accounts that were inherited from function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "getAuthorizedPartiesForSpecificVersion", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version", + "in": "path", + "name": "function_version_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Get Account Authorizations For Function Version", + "tags": [ + "Function Sharing" + ] + }, + "post": { + "description": "Authorizes additional NVIDIA Cloud Accounts to invoke a specific function version. By default, a function belongs to the NVIDIA Cloud Account that created it, and the credentials used for function invocation must reference the same NVIDIA Cloud Account. Upon invocation of this endpoint, any existing authorized accounts will be overwritten by the newly specified authorized accounts. Note that the response does NOT include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "createAuthorizedPartiesForSpecificVersion", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version id", + "in": "path", + "name": "function_version_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Authorize Accounts To Invoke/List Function Version", + "tags": [ + "Function Sharing" + ] + } + }, + "/v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id}/add": { + "patch": { + "description": "Adds the specified NVIDIA Cloud Account to the set of authorized accounts that can invoke the specified function version. If the specified function version does not have any existing inheritable authorized accounts, it results in a response with status 404. If the specified account is already in the set of existing authorized accounts that are directly associated with the function version, it results in a response wit status code 409. If a function is public, then Account Admin cannot perform this operation. Note that the response does not include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "addAuthorizedPartyForSpecificVersion", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version", + "in": "path", + "name": "function_version_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PatchAuthorizedPartyRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Authorize Another Account To Invoke, List, and Check Queue Details of Function Version", + "tags": [ + "Function Sharing" + ] + } + }, + "/v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id}/remove": { + "patch": { + "description": "Removes the specified NVIDIA Cloud Account from the set of authorized accounts that are directly associated with specified function version. If the specified function version does not have any of its own(not inherited) authorized accounts, it results in a response with status 404. Also, if the specified authorized account is not in the set of existing authorized parties that are directly associated with the specified function version, it results in a response with status code 404. If the specified function version is public, then Account Admin cannot perform this operation. Note that the response does not include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "removeAuthorizedPartyForSpecificVersion", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version", + "in": "path", + "name": "function_version_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PatchAuthorizedPartyRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Unauthorize Account From Invoking, Listing, and Checking Queue Details of Function Version", + "tags": [ + "Function Sharing" + ] + } + }, + "/v2/nvcf/clusterGroups": { + "get": { + "deprecated": true, + "description": "Lists Cluster Groups for the current account. The response includes cluster groups defined specifically in the current account and publicly available cluster groups such as GFN, OCI, etc. Requires a bearer token with 'list_cluster_groups' scope in HTTP Authorization header. ", + "operationId": "getClusterGroups", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClusterGroupsResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "List Cluster Groups", + "tags": [ + "Cluster Groups and GPUs" + ] + } + }, + "/v2/nvcf/deployments/functions/{function_id}/versions/{function_version_id}": { + "delete": { + "description": "Deletes the deployment associated with the specified function. Upon deletion, any active instances will be terminated, and the function's status will transition to 'INACTIVE'. To undeploy a function version gracefully, specify 'graceful=true' query parameter, allowing current tasks to complete before terminating the instances. If the specified function version is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. ", + "operationId": "deleteFunctionDeployment", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version id", + "in": "path", + "name": "function_version_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Query param to deactivate function for graceful shutdown", + "in": "query", + "name": "graceful", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FunctionResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Delete Function Deployment", + "tags": [ + "Function Deployment" + ] + }, + "get": { + "description": "Allows Account Admins to retrieve the deployment details of the specified function version. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. ", + "operationId": "getFunctionDeployment", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version id", + "in": "path", + "name": "function_version_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Get Function Deployment Details", + "tags": [ + "Function Deployment" + ] + }, + "post": { + "description": "Initiates deployment for the specified function version. Upon invocation of this endpoint, the function's status transitions to 'DEPLOYING'. If the specified function version is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. ", + "operationId": "createFunctionDeployment", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version id", + "in": "path", + "name": "function_version_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FunctionDeploymentRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Deploy Function", + "tags": [ + "Function Deployment" + ] + }, + "put": { + "deprecated": true, + "description": " Deprecated and will be removed soon. Use a single GPU specification update method instead. Updates the deployment specs of the specified function version. It's important to note that GPU type and backend configurations cannot be modified through this endpoint. If the specified function is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. ", + "operationId": "updateFunctionDeployment", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version id", + "in": "path", + "name": "function_version_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateFunctionDeploymentRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Update Function Deployment", + "tags": [ + "Function Deployment" + ] + } + }, + "/v2/nvcf/deployments/{deployment_id}": { + "get": { + "description": "Allows Account Admins to retrieve the deployment details of the specified deployment id. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. ", + "operationId": "getFunctionDeployment_1", + "parameters": [ + { + "description": "Deployment id", + "in": "path", + "name": "deployment_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Get Function Deployment Details", + "tags": [ + "Function Deployment" + ] + } + }, + "/v2/nvcf/deployments/{deployment_id}/gpu-specifications/{gpu_spec_id}": { + "patch": { + "description": " Updates the GPU specification of the specified function version's deployment. It's important to note that GPU type and backend configurations cannot be modified through this endpoint. If the specified function is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. ", + "operationId": "updateGpuSpecification", + "parameters": [ + { + "description": "Deployment id", + "in": "path", + "name": "deployment_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "GPU Specification id", + "in": "path", + "name": "gpu_spec_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateGpuSpecificationRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateGpuSpecificationResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Update the specified GPU specification under the specified deployment", + "tags": [ + "Function Deployment" + ] + } + }, + "/v2/nvcf/functions": { + "get": { + "description": "Lists all the functions associated with the authenticated NVIDIA Cloud Account. Requires a bearer token with 'list_functions' or 'list_functions_details' scope in the HTTP Authorization header.", + "operationId": "getFunctions", + "parameters": [ + { + "description": "Query param 'visibility' indicates the kind of functions to be included\n in the response.\n", + "in": "query", + "name": "visibility", + "required": false, + "schema": { + "default": [ + "authorized", + "private", + "public" + ], + "items": { + "enum": [ + "authorized", + "private", + "public" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListFunctionsResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "List Functions", + "tags": [ + "Function Management" + ] + }, + "post": { + "description": "Creates a new function within the authenticated NVIDIA Cloud Account. Requires a bearer token with 'register_function' scope in the HTTP Authorization header. ", + "operationId": "createFunction", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateFunctionRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateFunctionResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Create Function", + "tags": [ + "Function Management" + ] + } + }, + "/v2/nvcf/functions/ids": { + "get": { + "description": "Lists ids of all the functions in the authenticated NVIDIA Cloud Account. Requires a bearer token with 'list_functions' or 'list_functions_details' scopes in the HTTP Authorization header. ", + "operationId": "getFunctionIds", + "parameters": [ + { + "description": "Query param 'visibility' indicates the kind of functions to be included\n in the response.\n", + "in": "query", + "name": "visibility", + "required": false, + "schema": { + "default": [ + "authorized", + "private", + "public" + ], + "items": { + "enum": [ + "authorized", + "private", + "public" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListFunctionIdsResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "List Function Ids", + "tags": [ + "Function Management" + ] + } + }, + "/v2/nvcf/functions/{function_id}/versions": { + "get": { + "description": "Lists details of all the versions of the specified function in the authenticated NVIDIA Cloud Account. Requires a bearer token with 'list_functions' or 'list_functions_details' scopes in the HTTP Authorization header. ", + "operationId": "getFunctions_1", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListFunctionsResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "List Function Versions", + "tags": [ + "Function Management" + ] + }, + "post": { + "description": "Creates a version of the specified function within the authenticated NVIDIA Cloud Account. If the function is public, then Account Admin cannot create a version. Requires a bearer token with 'register_function' scope in the HTTP Authorization header. ", + "operationId": "createFunction_1", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateFunctionRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateFunctionResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Create Function Version", + "tags": [ + "Function Management" + ] + } + }, + "/v2/nvcf/functions/{function_id}/versions/{function_version_id}": { + "delete": { + "description": "Deletes the specified function version in the authenticated NVIDIA Cloud Account. Requires a bearer token with 'delete_function' scope in the HTTP Authorization header. If the function version is public, then Account Admin cannot delete the function. ", + "operationId": "deleteFunction", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Version id", + "in": "path", + "name": "function_version_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "summary": "Delete Function", + "tags": [ + "Function Management" + ] + }, + "get": { + "description": "Retrieves detailed information of the specified function version in the authenticated NVIDIA Cloud Account. Requires a bearer token with 'list_functions' or 'list_functions_details' scopes in the HTTP Authorization header. ", + "operationId": "getFunction", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Version id ", + "in": "path", + "name": "function_version_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Query param 'includeSecrets' indicates whether to include secret names\n for the function in the response.\n", + "in": "query", + "name": "includeSecrets", + "required": false, + "schema": { + "default": true, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FunctionResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Get Function Version Details", + "tags": [ + "Function Management" + ] + }, + "put": { + "description": "Updates mutable fields of the specified function version within the authenticated NVIDIA Cloud Account. The current request payload supports tags updates, rate limit updates, and model-specific LLM config updates. Requires a bearer token with 'update_function' scope in the HTTP Authorization header. ", + "operationId": "updateFunction", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Version id", + "in": "path", + "name": "function_version_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateFunctionRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FunctionResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Updates mutable fields of the specified function version.", + "tags": [ + "Function Management" + ] + } + }, + "/v2/nvcf/metadata/functions/{function_id}/versions/{function_version_id}": { + "put": { + "deprecated": true, + "description": "Deprecated: use PUT /v2/nvcf/functions/{functionId}/versions/{functionVersionId} to update tags, rate limit, model-specific LLM config, and other mutable function fields. This legacy endpoint updates the same mutable function version fields for the authenticated NVIDIA Cloud Account and requires a bearer token with 'update_function' scope in the HTTP Authorization header. ", + "operationId": "updateFunctionMetadata", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Version id", + "in": "path", + "name": "function_version_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateFunctionRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FunctionResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Update Function Metadata", + "tags": [ + "Function Management" + ] + } + }, + "/v2/nvcf/pexec/functions/{function_id}": { + "post": { + "deprecated": true, + "description": "Deprecated and will be removed soon. Please use the new NVCF Invocation API endpoint to invoke a function. Invokes the specified function that was successfully deployed. If the version is not specified, any active function versions will handle the request. If the version is specified in the URI, then the request is exclusively processed by the designated version of the function. By default, this endpoint will block for 5 seconds. If the request is not fulfilled before the timeout, it's status is considered in-progress or pending and the response includes HTTP status code 202 with an invocation request ID, indicating that the client should commence polling for the result using the invocation request ID. Access to this endpoint mandates inclusion of a bearer token with 'invoke_function' scope in the HTTP Authorization header. Additionally, this endpoint has the capability to provide updates on the progress of the request, contingent upon the workload's provision of such information. In-progress responses are returned in order. If no in-progress response is received during polling you will receive the most recent in-progress response. Only the first 256 unread in-progress messages are kept. ", + "operationId": "invokeFunction", + "parameters": [ + { + "in": "header", + "name": "NVCF-INPUT-ASSET-REFERENCES", + "required": false, + "schema": { + "items": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + } + }, + { + "in": "header", + "name": "NVCF-POLL-SECONDS", + "required": false, + "schema": { + "format": "int32", + "maximum": 300, + "minimum": 0, + "type": [ + "null", + "integer" + ] + } + }, + { + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Invocation is fulfilled", + "headers": { + "NVCF-PERCENT-COMPLETE": { + "description": "Percentage complete", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-REQID": { + "description": "Invocation Request Id", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-STATUS": { + "description": "Invocation status", + "schema": { + "type": "string" + }, + "style": "simple" + } + } + }, + "202": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Result is pending. Client should poll using the requestId.", + "headers": { + "NVCF-PERCENT-COMPLETE": { + "description": "Percentage complete", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-REQID": { + "description": "Invocation Request Id", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-STATUS": { + "description": "Invocation status", + "schema": { + "type": "string" + }, + "style": "simple" + } + } + }, + "302": { + "description": "Client should use the URL specified in the 'Location' response header to fetch\n large result.\n", + "headers": { + "Location": { + "description": "URL to get the result", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-PERCENT-COMPLETE": { + "description": "Percentage complete", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-REQID": { + "description": "Invocation Request Id", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-STATUS": { + "description": "Invocation status", + "schema": { + "type": "string" + }, + "style": "simple" + } + } + }, + "402": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Cloud credits expired for public functions. Please contact NVIDIA representatives." + }, + "403": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry\n in the ApiKey for the function.\n" + }, + "429": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Client is doing too many requests per second and should slow down request rate." + } + }, + "summary": "Call Function", + "tags": [ + "Function Invocation" + ] + } + }, + "/v2/nvcf/pexec/functions/{function_id}/versions/{version_id}": { + "post": { + "deprecated": true, + "description": "Deprecated and will be removed soon. Please use the new NVCF Invocation API endpoint to invoke a function. Invokes the specified function that was successfully deployed. If the version is not specified, any active function versions will handle the request. If the version is specified in the URI, then the request is exclusively processed by the designated version of the function. By default, this endpoint will block for 5 seconds. If the request is not fulfilled before the timeout, it's status is considered in-progress or pending and the response includes HTTP status code 202 with an invocation request ID, indicating that the client should commence polling for the result using the invocation request ID. Access to this endpoint mandates inclusion of a bearer token with 'invoke_function' scope in the HTTP Authorization header. Additionally, this endpoint has the capability to provide updates on the progress of the request, contingent upon the workload's provision of such information. In-progress responses are returned in order. If no in-progress response is received during polling you will receive the most recent in-progress response. Only the first 256 unread in-progress messages are kept. ", + "operationId": "invokeFunction_1", + "parameters": [ + { + "in": "header", + "name": "NVCF-INPUT-ASSET-REFERENCES", + "required": false, + "schema": { + "items": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + } + }, + { + "in": "header", + "name": "NVCF-POLL-SECONDS", + "required": false, + "schema": { + "format": "int32", + "maximum": 300, + "minimum": 0, + "type": [ + "null", + "integer" + ] + } + }, + { + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version id", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Invocation is fulfilled", + "headers": { + "NVCF-PERCENT-COMPLETE": { + "description": "Percentage complete", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-REQID": { + "description": "Invocation Request Id", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-STATUS": { + "description": "Invocation status", + "schema": { + "type": "string" + }, + "style": "simple" + } + } + }, + "202": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Result is pending. Client should poll using the requestId.", + "headers": { + "NVCF-PERCENT-COMPLETE": { + "description": "Percentage complete", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-REQID": { + "description": "Invocation Request Id", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-STATUS": { + "description": "Invocation status", + "schema": { + "type": "string" + }, + "style": "simple" + } + } + }, + "302": { + "description": "Client should use the URL specified in the 'Location' response header to fetch\n large result.\n", + "headers": { + "Location": { + "description": "URL to get the result", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-PERCENT-COMPLETE": { + "description": "Percentage complete", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-REQID": { + "description": "Invocation Request Id", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-STATUS": { + "description": "Invocation status", + "schema": { + "type": "string" + }, + "style": "simple" + } + } + }, + "402": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Cloud credits expired for public functions. Please contact NVIDIA representatives." + }, + "403": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry\n in the ApiKey for the function.\n" + }, + "429": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Client is doing too many requests per second and should slow down request rate." + } + }, + "summary": "Call Function", + "tags": [ + "Function Invocation" + ] + } + }, + "/v2/nvcf/pexec/status/{request_id}": { + "get": { + "deprecated": true, + "description": "Deprecated and will be removed soon. Please use the new NVCF Invocation API endpoint to invoke a function and stream results without polling. Retrieves the status of an in-progress or pending request using its unique invocation request ID. If the result is available, it will be included in the response, marking the request as fulfilled. Conversely, if the result is not yet available, the request is deemed pending. Access to this endpoint mandates inclusion of a bearer token with 'invoke_function' scope in the HTTP Authorization header. In-progress responses are returned in order. If no in-progress response is received during polling you will receive the most recent in-progress response. Only the first 256 unread in-progress messages are kept. ", + "operationId": "getFunctionInvocationResult", + "parameters": [ + { + "description": "Invocation Request Id", + "in": "path", + "name": "request_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Invocation is fulfilled", + "headers": { + "NVCF-PERCENT-COMPLETE": { + "description": "Percentage complete", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-REQID": { + "description": "Invocation Request Id", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-STATUS": { + "description": "Invocation status", + "schema": { + "type": "string" + }, + "style": "simple" + } + } + }, + "202": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Result is pending. Client should poll using the requestId.", + "headers": { + "NVCF-PERCENT-COMPLETE": { + "description": "Percentage complete", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-REQID": { + "description": "Invocation Request Id", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-STATUS": { + "description": "Invocation status", + "schema": { + "type": "string" + }, + "style": "simple" + } + } + }, + "302": { + "description": "Client should use the URL specified in the 'Location' response header to fetch\n large result.\n", + "headers": { + "Location": { + "description": "URL to get the result", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-PERCENT-COMPLETE": { + "description": "Percentage complete", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-REQID": { + "description": "Invocation Request Id", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-STATUS": { + "description": "Invocation status", + "schema": { + "type": "string" + }, + "style": "simple" + } + } + }, + "402": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Cloud credits expired for public functions. Please contact NVIDIA representatives." + }, + "403": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry\n in the ApiKey for the function.\n" + } + }, + "summary": "Poll For Result Using Function Invocation Request", + "tags": [ + "Function Invocation" + ] + } + }, + "/v2/nvcf/queues/functions/{function_id}": { + "get": { + "description": "Provides details of all the queues associated with the specified function. If a function has multiple versions and they are all deployed, then the response includes details of all the queues. If the specified function is public, then Account Admin cannot perform this operation. Requires a bearer token or an api-key with 'queue_details' scope in the HTTP Authorization header. ", + "operationId": "getQueuesDetails_1", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetQueuesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Queue Details", + "tags": [ + "Queue Details" + ] + } + }, + "/v2/nvcf/queues/functions/{function_id}/versions/{version_id}": { + "get": { + "description": "Provides details of all the queues associated with the specified function. If a function has multiple versions and they are all deployed, then the response includes details of all the queues. If the specified function is public, then Account Admin cannot perform this operation. Requires a bearer token or an api-key with 'queue_details' scope in the HTTP Authorization header. ", + "operationId": "getQueuesDetails", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version id", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetQueuesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Queue Details", + "tags": [ + "Queue Details" + ] + } + }, + "/v2/nvcf/queues/{request_id}/position": { + "get": { + "description": "Using the specified function invocation request id, returns the estimated position of the corresponding message up to 1000 in the queue. Requires a bearer token or an api-key with 'queue_details' scope in the HTTP Authorization header. ", + "operationId": "getPositionInQueue", + "parameters": [ + { + "description": "Function invocation request id", + "in": "path", + "name": "request_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetPositionInQueueResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Queue Position", + "tags": [ + "Queue Details" + ] + } + }, + "/v2/nvcf/ratelimit/functions/{function_id}/versions/{version_id}": { + "delete": { + "description": "Delete ratelimit for the specified function version. This endpoint requires a bearer token with 'update_function' scope in the HTTP Authorization header. ", + "operationId": "deleteRateLimit", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version id", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "summary": "Delete user ratelimit for a function version", + "tags": [ + "User Ratelimit Management" + ] + }, + "put": { + "deprecated": true, + "description": "Deprecated: use PUT /v2/nvcf/functions/{functionId}/versions/{versionId} to update ratelimit and other mutable function fields. This legacy endpoint only updates ratelimit for the specified function version and requires a bearer token with 'update_function' scope in the HTTP Authorization header. ", + "operationId": "updateRateLimit", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version id", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateFunctionRequest" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "summary": "Update user ratelimit for a function version", + "tags": [ + "User Ratelimit Management" + ] + } + }, + "/v2/nvcf/recognized-registries": { + "get": { + "description": "Lists all the registries that are recognized by NVCF. Only when a registry is recognized by NVCF that the users can add its credential to their account and then use it to create functions. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. ", + "operationId": "getRecognizedRegistries", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecognizedRegistriesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "List Recognized Registries", + "tags": [ + "Registry Credential Management" + ] + } + }, + "/v2/nvcf/registry-credentials": { + "get": { + "description": "Lists all the registry credentials associated with the authenticated NVIDIA Cloud Account. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. ", + "operationId": "listRegistryCredentialDetails", + "parameters": [ + { + "description": "Filters registry credentials using the specified 'artifactType' query param.\n", + "in": "query", + "name": "artifactType", + "required": false, + "schema": { + "default": [ + "CONTAINER", + "HELM", + "MODEL", + "RESOURCE" + ], + "items": { + "enum": [ + "CONTAINER", + "HELM", + "MODEL", + "RESOURCE" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + { + "description": "Filters registry credentials using the specified 'provisionedBy' query param.\n", + "in": "query", + "name": "provisionedBy", + "required": false, + "schema": { + "default": [ + "SYSTEM", + "USER" + ], + "items": { + "enum": [ + "SYSTEM", + "USER" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListRegistryCredentialDetailsResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "List Registry Credentials", + "tags": [ + "Registry Credential Management" + ] + }, + "post": { + "description": "Adds a new registry credential to the account. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. ", + "operationId": "addRegistryCredential", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddRegistryCredentialRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RegistryCredentialDetailsResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Add new registry credential to the account", + "tags": [ + "Registry Credential Management" + ] + } + }, + "/v2/nvcf/registry-credentials/{registry_credential_id}": { + "delete": { + "description": "Deletes the specified registry credential associated with the authenticated NVIDIA Cloud Account. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. ", + "operationId": "deleteRegistryCredential", + "parameters": [ + { + "description": "Registry Credential id", + "in": "path", + "name": "registry_credential_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "summary": "Delete Registry Credential", + "tags": [ + "Registry Credential Management" + ] + }, + "get": { + "description": "Retrieves detailed information of the specified registry credential associated with the authenticated NVIDIA Cloud Account. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. ", + "operationId": "getRegistryCredentialDetails", + "parameters": [ + { + "description": "Registry Credential id", + "in": "path", + "name": "registry_credential_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RegistryCredentialDetailsResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Get Registry Credential Details", + "tags": [ + "Registry Credential Management" + ] + }, + "patch": { + "description": "Updates the secret and/or the artifact types associated with the specified registry credential. Artifact types specified in the request body are added to the set of artifact types that already exist for the specified registry credential. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. ", + "operationId": "updateRegistryCredential", + "parameters": [ + { + "description": "Registry Credential id", + "in": "path", + "name": "registry_credential_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateRegistryCredentialRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RegistryCredentialDetailsResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Update registry credential", + "tags": [ + "Registry Credential Management" + ] + } + }, + "/v2/nvcf/secrets/functions/{function_id}/versions/{version_id}": { + "put": { + "description": "Updates secrets for the specified function version. This endpoint requires a bearer token with 'update_secrets' scope in the HTTP Authorization header. ", + "operationId": "updateFunctionSecrets", + "parameters": [ + { + "description": "Function Id", + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function Version Id", + "in": "path", + "name": "version_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateFunctionSecretsRequest" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "summary": "Update user secrets for a function version", + "tags": [ + "User Secret Management" + ] + } + }, + "/v2/nvcf/secrets/telemetries/{telemetry_id}": { + "put": { + "description": "Updates secret for the specific telemetry Id within NVIDIA Cloud Account. This endpoint requires a bearer token with 'update_secrets' scope in the HTTP Authorization header. ", + "operationId": "updateTelemetrySecret", + "parameters": [ + { + "description": "NVIDIA Cloud Account Id", + "in": "path", + "name": "telemetry_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateTelemetrySecretRequest" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "summary": "Update secret for a specific Telemetry Id", + "tags": [ + "User Secret Management" + ] + } + }, + "/v2/nvcf/telemetries": { + "get": { + "description": "Retrieves telemetry configurations for a specific NVIDIA Cloud Account. requires a bearer token with 'manage_telemetries' scope in the HTTP Authorization header. ", + "operationId": "getTelemetriesByAccount", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListTelemetryResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "List Telemetries", + "tags": [ + "Telemetry Management" + ] + }, + "post": { + "description": "Creates telemetry endpoints for NVIDIA Cloud Accounts. requires a bearer token with 'manage_telemetries' scope in the HTTP Authorization header. ", + "operationId": "createTelemetry", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TelemetryRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TelemetryResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Create Telemetry", + "tags": [ + "Telemetry Management" + ] + } + }, + "/v2/nvcf/telemetries/{telemetry_id}": { + "delete": { + "description": "Deletes a specific telemetry configuration for a NVIDIA Cloud Account. requires a bearer token with 'manage_telemetries' scope in the HTTP Authorization header. If there any functions that are dependent on the Telemetry that is being deleted, then response with 400 status code will be returned. ", + "operationId": "deleteTelemetry", + "parameters": [ + { + "in": "path", + "name": "telemetry_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Cannot be deleted till Functions depend on it" + } + }, + "summary": "Delete Telemetry", + "tags": [ + "Telemetry Management" + ] + }, + "get": { + "description": "Retrieves the details of a specific telemetry configuration by its ID. requires a bearer token with 'manage_telemetries' scope in the HTTP Authorization header. ", + "operationId": "getTelemetry", + "parameters": [ + { + "in": "path", + "name": "telemetry_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TelemetryResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Get Telemetry Details", + "tags": [ + "Telemetry Management" + ] + } + }, + "/v2/nvcf/tokens/functions": { + "post": { + "description": "Issues an assertion token from Notary Service for specified functionIds and/or functionVersionIds ", + "operationId": "issueMultiFunctionsInvocationToken", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MultiFunctionsInvocationTokenRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenResponse" + } + } + }, + "description": "Invocation assertion token is issued" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenResponse" + } + } + }, + "description": "Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry\n in the ApiKey for the function.\n" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenResponse" + } + } + }, + "description": "Client is doing too many requests per second and should slow down request rate." + } + }, + "summary": "Issue Function Invocation Token", + "tags": [ + "Function Invocation Assertion Token" + ] + } + }, + "/v2/nvcf/tokens/functions/{function_id}": { + "post": { + "description": "Issues an assertion token from Notary Service for a specific functionId and/or functionVersionId ", + "operationId": "issueInvocationToken_1", + "parameters": [ + { + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenResponse" + } + } + }, + "description": "Invocation assertion token is issued" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenResponse" + } + } + }, + "description": "Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry\n in the ApiKey for the function.\n" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenResponse" + } + } + }, + "description": "Client is doing too many requests per second and should slow down request rate." + } + }, + "summary": "Issue Function Invocation Token", + "tags": [ + "Function Invocation Assertion Token" + ] + } + }, + "/v2/nvcf/tokens/functions/{function_id}/versions/{function_version_id}": { + "post": { + "description": "Issues an assertion token from Notary Service for a specific functionId and/or functionVersionId ", + "operationId": "issueInvocationToken", + "parameters": [ + { + "in": "path", + "name": "function_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version id", + "in": "path", + "name": "function_version_id", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenResponse" + } + } + }, + "description": "Invocation assertion token is issued" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenResponse" + } + } + }, + "description": "Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry\n in the ApiKey for the function.\n" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenResponse" + } + } + }, + "description": "Client is doing too many requests per second and should slow down request rate." + } + }, + "summary": "Issue Function Invocation Token", + "tags": [ + "Function Invocation Assertion Token" + ] + } + } + }, + "servers": [ + { + "description": "Generated server url", + "url": "https://api.nvcf.nvidia.com" + } + ], + "tags": [ + { + "description": "Defines function pass-through invocation endpoints where the invocation payload is passed as-is without any wrapper. All the endpoints defined in this API require a bearer token with 'invoke_function' scope in the HTTP Authorization header. ", + "name": "Function Invocation" + }, + { + "description": "Deprecated. Users can provide assets directly as part of the input during function invocation. There is no need to upload assets and then include the asset-id as part of input to the function invocation. Defines Asset Management endpoints for Account Admins/Users. All the endpoints defined in this API require a bearer token in the HTTP Authorization header with 'invoke_function' scope.", + "name": "Asset Management" + }, + { + "description": "Defines User Ratelimit Management endpoints for Account Admins. All the endpoints defined in this API require a bearer token with 'update_function' scope in the HTTP Authorization header. ", + "name": "User Ratelimit Management" + }, + { + "description": "Defines Queue Details endpoints for Account Admins/Users. All the endpoints defined in this API require a bearer token with 'queue_details' scope in the HTTP Authorization header. ", + "name": "Queue Details" + }, + { + "description": "Defines endpoints related to authorizing other accounts to invoke a function for Account Admins. All the endpoints defined in this API require a bearer token with 'authorize_clients' scope in HTTP Authorization header.", + "name": "Function Sharing" + }, + { + "description": "Defines Telemetry Management endpoints for Account Admins. All the endpoints defined in this API require a bearer token or an api-key with appropriate scope in the HTTP Authorization header. ", + "name": "Telemetry Management" + }, + { + "description": "Deprecated. Please use corresponding ICMS endpoints directly. These endpoints will be removed. Defines endpoints to list Cluster Groups and GPUs for Account Admins. All tne endpoints defined in this API require a bearer token with 'list_cluster_groups' scope in the HTTP Authorization header.", + "name": "Cluster Groups and GPUs" + }, + { + "description": "Defines Function Deployment endpoints for Account Admins. All the endpoints defined in this API require a bearer token with 'deploy_function' scope in the HTTP Authorization header.", + "name": "Function Deployment" + }, + { + "description": "Defines User Secret Management endpoints for Account Admins. All the endpoints defined in this API require a bearer token with 'update_secrets' scope in the HTTP Authorization header. ", + "name": "User Secret Management" + }, + { + "description": "Defines Function Management endpoints for Account Admins. All the endpoints defined in this API require a bearer token with appropriate scope in the HTTP Authorization header. The scope is specified in the documentation for each of the endpoints. ", + "name": "Function Management" + }, + { + "description": "Defines endpoints that issue an assertion token from Notary Service to be used for function invocation later ", + "name": "Function Invocation Assertion Token" + }, + { + "description": "Defines Registry Credential Management endpoints. These endpoints can only be invoked by Account Admins and require a bearer token in HTTP Authorization header with 'manage_registry_credentials' scope. ", + "name": "Registry Credential Management" + }, + { + "description": "NSPECT-F7NT-ONT3", + "name": "nspect_id" + } + ] +} diff --git a/provider-dev/downloaded/download_manifest.json b/provider-dev/downloaded/download_manifest.json new file mode 100644 index 0000000..f25a108 --- /dev/null +++ b/provider-dev/downloaded/download_manifest.json @@ -0,0 +1,119 @@ +{ + "files": { + "nvcf_openapi.json": { + "url": "https://api.nvcf.nvidia.com/v3/openapi", + "info": { + "docsPage": "https://docs.nvidia.com/nvcf/api", + "openapi": "3.1.0", + "title": "Cloud Functions", + "specVersion": "2.261.2" + } + }, + "ngc_models.json": { + "url": "https://models.ngc.nvidia.com/v3/openapi", + "fixes": { + "stable-swagger-resources-operation-ids": 0 + }, + "info": { + "explorer": "https://docs.ngc.nvidia.com/api/", + "explorerName": "Private Artifacts (Models) API", + "openapi": "3.1.0", + "title": "Models API", + "specVersion": "0.0.1-SNAPSHOT" + } + }, + "ngc_kas.json": { + "url": "https://api.ngc.nvidia.com/v3/api-docs", + "fixes": { + "stable-swagger-resources-operation-ids": 21 + }, + "info": { + "explorer": "https://docs.ngc.nvidia.com/api/", + "explorerName": "KASv1 API (Deprecated)", + "openapi": "3.0.1", + "title": "NGC API Documentation", + "specVersion": "v3.249.17" + } + } + }, + "ngcHarvest": { + "explorer": "https://docs.ngc.nvidia.com/api/", + "catalogue": "pinned in harvest_ngc_spec.mjs (the explorer moved to a hosted documentation platform after 2026-07-14 and no longer publishes its definition list; the definition URLs it declared still serve)", + "entries": { + "KASv1 API (Deprecated)": { + "url": "https://api.ngc.nvidia.com/v3/api-docs", + "status": "fetched", + "file": "ngc_kas.json", + "note": "the NGC API Documentation definition (orgs, teams, users) - the explorer labelled it KASv1 (Deprecated); deprecation is handled per path in mapping; served by the public gateway" + }, + "Private Artifacts (Models) API": { + "url": "https://models.ngc.nvidia.com/v3/openapi", + "status": "fetched", + "file": "ngc_models.json", + "note": "registry artifact metadata (models, resources, containers, helm charts); declared on /v1 paths that the public gateway serves under /v2 (clean_specs gateway-v2-path-prefix)" + }, + "Org Mgmt Service API": { + "url": "https://oms.ngc.nvidia.com/v3/openapi", + "status": "unreachable", + "error": "https://oms.ngc.nvidia.com/v3/openapi: fetch failed", + "note": "organization management" + }, + "User IAM Sevice API": { + "url": "https://uis.ngc.nvidia.com/v3/openapi", + "status": "unreachable", + "error": "https://uis.ngc.nvidia.com/v3/openapi: fetch failed", + "note": "user identity and access management (name spelled sic in the explorer)" + }, + "Search API": { + "url": "https://search.ngc.nvidia.com/v3/api-docs", + "status": "unreachable", + "error": "https://search.ngc.nvidia.com/v3/api-docs: fetch failed; https://api.ngc.nvidia.com/v3/search/api-docs: HTTP 401", + "note": "catalog/registry search" + }, + "Metadata API": { + "url": "https://meta.ngc.nvidia.com/v3/api-docs", + "status": "unreachable", + "error": "https://meta.ngc.nvidia.com/v3/api-docs: fetch failed; https://api.ngc.nvidia.com/v3/meta/api-docs: HTTP 401", + "note": "artifact metadata" + }, + "Publishing API": { + "url": "https://publishing.ngc.nvidia.com/v3/api-docs", + "status": "unreachable", + "error": "https://publishing.ngc.nvidia.com/v3/api-docs: fetch failed", + "note": "artifact publishing" + }, + "Fleet Command API": { + "url": "https://api.ngc.nvidia.com/v3/ecm/openapi", + "status": "out-of-scope", + "note": "Fleet Command is its own product surface, out of scope" + }, + "Batch API": { + "url": "https://batch.ngc.nvidia.com/v3/openapi", + "status": "out-of-scope", + "note": "Base Command batch jobs, out of scope" + }, + "Subscription Service API": { + "url": "https://subscription.ngc.nvidia.com/v3/openapi", + "status": "out-of-scope", + "note": "subscription/billing surface - candidate usage service, host not publicly routable; revisit if reachable" + }, + "Notification Service API": { + "url": "https://notification.ngc.nvidia.com/v3/openapi", + "status": "out-of-scope", + "note": "notification delivery, out of scope" + } + } + }, + "ngcSdk": { + "package": "ngcsdk", + "version": "4.36.6", + "url": "https://files.pythonhosted.org/packages/3c/cf/e4901fd5a50621d3f058d0ba4f732651a86d672fb76b7a404473b2b23ac1/ngcsdk-4.36.6-py3-none-any.whl", + "sha256": "8cf4ce3bd071b3d2e24d40f2c66abc2c2b49022b53d400a2eb9fe6018fe3f343", + "derived": "ngc_sdk_schemas.json", + "packages": [ + "registry/data/model/" + ], + "classes": 149, + "note": "response schemas for the registry/catalog surface: the harvested models definition declares no 2xx responses on most operations; the SDK data classes are the pinned response-side source (archetype-2 fallback, response side only)" + } +} diff --git a/provider-dev/downloaded/ngc_kas.json b/provider-dev/downloaded/ngc_kas.json new file mode 100644 index 0000000..d34eba3 --- /dev/null +++ b/provider-dev/downloaded/ngc_kas.json @@ -0,0 +1,22939 @@ +{ + "components": { + "schemas": { + "AlternateContact": { + "description": "Org Owner Alternate Contact", + "properties": { + "email": { + "description": "Alternate contact's email.", + "maxLength": 128, + "minLength": 6, + "type": "string" + }, + "fullName": { + "description": "Full name of the alternate contact.", + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "Entitlement": { + "description": "Information about the entitlement for an org", + "properties": { + "entitlementExpirationTime": { + "description": "Entitlement expiration time", + "type": "string" + }, + "entitlementId": { + "description": "Unique entitlement identifier", + "type": "string" + }, + "entitlementState": { + "description": "Entitlement state", + "type": "string" + }, + "pecSfdcId": { + "description": "Product end customer salesforce.com Id (external customer Id). pecSfdcId is for EMS (entitlement management service) to track external paid customer", + "type": "string" + }, + "products": { + "items": { + "$ref": "#/components/schemas/EntitlementProduct" + }, + "type": "array" + } + }, + "type": "object" + }, + "EntitlementProduct": { + "description": "Information about the entitlement product", + "properties": { + "pkId": { + "description": "Unique product key identifier", + "type": "string" + }, + "productName": { + "description": "Product name. ex: FleetCommand, Batch, etc", + "type": "string" + }, + "subscriptionType": { + "description": "Subscription type", + "type": "string" + } + }, + "type": "object" + }, + "ErrorResponse": { + "properties": { + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + } + }, + "type": "object" + }, + "Health": { + "description": "object that describes health of the service", + "properties": { + "healthCode": { + "description": "Enum that describes health of the service", + "enum": [ + "UNKNOWN", + "OK", + "UNDER_MAINTENANCE", + "WARNING", + "FAILED" + ], + "type": "string" + }, + "healthCodeDescription": { + "description": "Human readable description", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "metaData": { + "items": { + "$ref": "#/components/schemas/MetaData" + }, + "type": "array" + } + }, + "type": "object" + }, + "HealthResponse": { + "description": "This API is invoked by monitoring tools, other services and infrastructure to retrieve health status the targeted service, this is unprotected method", + "properties": { + "health": { + "$ref": "#/components/schemas/Health" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + } + }, + "type": "object" + }, + "InfinityManagerSettings": { + "description": "Infinity manager setting definition", + "properties": { + "infinityManagerEnableTeamOverride": { + "description": "Allow override settings at team level. Only used in org level object", + "type": "boolean" + }, + "infinityManagerEnabled": { + "description": "Enable the infinity manager or not. Used both in org and team level object", + "type": "boolean" + } + }, + "type": "object" + }, + "MetaData": { + "properties": { + "key": { + "maxLength": 255, + "type": "string" + }, + "value": { + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "OrgCreateRequest": { + "description": "Request to create new Organization", + "properties": { + "country": { + "description": "user country", + "type": "string" + }, + "description": { + "description": "optional description of the organization", + "maxLength": 128, + "type": "string" + }, + "displayName": { + "description": "Name of the organization that will be shown to users.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "idpId": { + "description": "Identity Provider ID.", + "type": "string" + }, + "isInternal": { + "description": "Is NVIDIA internal org or not", + "type": "boolean" + }, + "name": { + "description": "Organization name", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "orgOwner": { + "$ref": "#/components/schemas/OrgOwner" + }, + "pecName": { + "description": "product end customer name for enterprise(Fleet Command) product", + "type": "string" + }, + "pecSfdcId": { + "description": "product end customer salesforce.com Id (external customer Id) for enterprise(Fleet Command) product", + "type": "string" + }, + "productEnablements": { + "items": { + "$ref": "#/components/schemas/ProductEnablement" + }, + "type": "array" + }, + "productSubscriptions": { + "description": "This should be deprecated, use productEnablements instead", + "items": { + "$ref": "#/components/schemas/ProductSubscription" + }, + "type": "array" + }, + "salesforceAccountIndustry": { + "description": "Company or organization industry", + "type": "string" + }, + "sendEmail": { + "description": "Send email to org owner or not. Default is true", + "type": "boolean" + }, + "type": { + "enum": [ + "UNKNOWN", + "CLOUD", + "ENTERPRISE", + "INDIVIDUAL" + ], + "type": "string" + } + }, + "required": [ + "orgOwner" + ], + "type": "object" + }, + "OrgCreateRequestV3": { + "description": "Request to create new Organization in v3 flow", + "properties": { + "country": { + "description": "user country", + "type": "string" + }, + "description": { + "description": "optional description of the organization", + "maxLength": 128, + "type": "string" + }, + "displayName": { + "description": "Name of the organization that will be shown to users.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "initiator": { + "description": "Identify the initiator of the org request", + "type": "string" + }, + "isInternal": { + "description": "Is NVIDIA internal org or not", + "type": "boolean" + }, + "name": { + "description": "Organization name", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "ncaId": { + "description": "NVIDIA Cloud Account Identifier", + "type": "string" + }, + "ncaNumber": { + "description": "NVIDIA Cloud Account Number", + "type": "string" + }, + "orgOwner": { + "$ref": "#/components/schemas/OrgOwnerV3" + }, + "pecName": { + "description": "product end customer name for enterprise(Fleet Command) product", + "type": "string" + }, + "pecSfdcId": { + "description": "product end customer salesforce.com Id (external customer Id) for enterprise(Fleet Command) product", + "type": "string" + }, + "productEnablements": { + "items": { + "$ref": "#/components/schemas/ProductEnablement" + }, + "type": "array" + }, + "productSubscriptions": { + "description": "This should be deprecated, use productEnablements instead", + "items": { + "$ref": "#/components/schemas/ProductSubscription" + }, + "type": "array" + }, + "protoOrgId": { + "description": "Proto org identifier", + "type": "string" + }, + "salesforceAccountIndustry": { + "description": "Company or organization industry", + "type": "string" + }, + "sendEmail": { + "description": "Send email to org owner or not. Default is true", + "type": "boolean" + }, + "type": { + "enum": [ + "UNKNOWN", + "CLOUD", + "ENTERPRISE", + "INDIVIDUAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "OrgInvitation": { + "description": "Org invitation to NGC", + "properties": { + "email": { + "description": "Email address of the user.", + "type": "string" + }, + "protoOrgId": { + "description": "Proto Org identifier.", + "type": "string" + } + }, + "type": "object" + }, + "OrgInvitationResponse": { + "description": "Invitation Validation Response.", + "properties": { + "orgInvitation": { + "$ref": "#/components/schemas/OrgInvitation" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + } + }, + "type": "object" + }, + "OrgListEntitlementResponse": { + "description": "List of all organizations which have entitlement information. Only accessible by NGC admin portal", + "properties": { + "entitlements": { + "items": { + "$ref": "#/components/schemas/OrganizationEntitlement" + }, + "type": "array" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + } + }, + "type": "object" + }, + "OrgListResponse": { + "description": "List of organizations.", + "properties": { + "organizations": { + "items": { + "$ref": "#/components/schemas/Organization" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + } + }, + "type": "object" + }, + "OrgNca": { + "description": "Org vs NcaId mapping", + "properties": { + "ncaId": { + "description": "NVIDIA Cloud Account Id", + "type": "string" + }, + "orgName": { + "description": "Organization name", + "type": "string" + } + }, + "type": "object" + }, + "OrgNcaMappingRequest": { + "description": "object to get the org and nca mapping", + "properties": { + "ncaIds": { + "description": "List of nca Ids", + "items": { + "description": "List of nca Ids", + "type": "string" + }, + "type": "array" + }, + "orgNames": { + "description": "List of org names", + "items": { + "description": "List of org names", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "OrgNcaMappingResponse": { + "description": "org and nca mapping response", + "properties": { + "orgNcaMapping": { + "items": { + "$ref": "#/components/schemas/OrgNca" + }, + "type": "array" + } + }, + "type": "object" + }, + "OrgOwner": { + "description": "Org owner.", + "properties": { + "email": { + "description": "Email address of the org owner.", + "maxLength": 128, + "type": "string" + }, + "fullName": { + "description": "Org owner name.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "lastLoginDate": { + "description": "Last time the org owner logged in.", + "type": "string" + } + }, + "required": [ + "email" + ], + "type": "object" + }, + "OrgOwnerV3": { + "description": "Org owner.", + "properties": { + "email": { + "description": "Email address of the org owner.", + "maxLength": 128, + "type": "string" + }, + "fullName": { + "description": "Org owner name.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "idpId": { + "description": "Identity Provider ID of the org owner.", + "type": "string" + }, + "starfleetId": { + "description": "Starfleet ID of the org owner.", + "type": "string" + } + }, + "required": [ + "email" + ], + "type": "object" + }, + "OrgProfileUpdateRequest": { + "description": "Object used to update Org profile information", + "properties": { + "description": { + "description": "optional description of the organization", + "maxLength": 128, + "type": "string" + }, + "displayName": { + "description": "Name of the organization that will be shown to users", + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "OrgResponse": { + "description": "info about an organizations", + "properties": { + "organizations": { + "$ref": "#/components/schemas/Organization" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + } + }, + "type": "object" + }, + "OrgUpdateRequest": { + "description": "Object used to update Org information", + "properties": { + "alternateContact": { + "$ref": "#/components/schemas/AlternateContact" + }, + "companyName": { + "description": "Name of the company", + "maxLength": 128, + "type": "string" + }, + "description": { + "description": "optional description of the organization", + "maxLength": 128, + "type": "string" + }, + "displayName": { + "description": "Name of the organization that will be shown to users.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "idpId": { + "description": "Identity Provider ID.", + "type": "string" + }, + "infinityManagerSettings": { + "$ref": "#/components/schemas/InfinityManagerSettings" + }, + "isDatasetServiceEnabled": { + "description": "Dataset Service enable flag for an organization", + "type": "boolean" + }, + "isInternal": { + "description": "Is NVIDIA internal org or not", + "type": "boolean" + }, + "isQuickStartEnabled": { + "description": "Quick Start enable flag for an organization", + "type": "boolean" + }, + "isRegistrySSEEnabled": { + "description": "If a server side encryption is enabled for private registry (models, resources)", + "type": "boolean" + }, + "isSecretsManagerServiceEnabled": { + "description": "Secrets Manager Service enable flag for an organization", + "type": "boolean" + }, + "isSecureCredentialSharingServiceEnabled": { + "description": "Secure Credential Sharing Service enable flag for an organization", + "type": "boolean" + }, + "isSeparateInfluxDbUsed": { + "description": "If a separate influx db used for an organization in Base Command Platform job telemetry", + "type": "boolean" + }, + "ngcClaimID": { + "description": "NGC Reference ID for redeem subscription flow tracking purpose. Provided from RWA only.", + "type": "string" + }, + "orgOwner": { + "$ref": "#/components/schemas/OrgOwner" + }, + "orgOwners": { + "description": "Org owners", + "items": { + "$ref": "#/components/schemas/OrgOwner" + }, + "type": "array" + }, + "pecName": { + "description": "product end customer name for enterprise(Fleet Command) product", + "type": "string" + }, + "pecSfdcId": { + "description": "product end customer salesforce.com Id (external customer Id) for enterprise(Fleet Command) product", + "type": "string" + }, + "productEnablements": { + "items": { + "$ref": "#/components/schemas/ProductEnablement" + }, + "type": "array" + }, + "productSubscriptions": { + "items": { + "$ref": "#/components/schemas/ProductSubscription" + }, + "type": "array" + }, + "repoScanSettings": { + "$ref": "#/components/schemas/RepoScanSettings" + }, + "type": { + "enum": [ + "UNKNOWN", + "CLOUD", + "ENTERPRISE", + "INDIVIDUAL" + ], + "type": "string" + } + }, + "type": "object" + }, + "Organization": { + "description": "Information about the Organization", + "properties": { + "alternateContact": { + "$ref": "#/components/schemas/AlternateContact" + }, + "billingAccountId": { + "description": "Billing account ID.", + "type": "string" + }, + "canAddOn": { + "description": "Identifies if the org can be reused.", + "type": "boolean" + }, + "country": { + "description": "ISO country code of the organization.", + "type": "string" + }, + "description": { + "description": "Optional description of the organization.", + "type": "string" + }, + "displayName": { + "description": "Name of the organization that will be shown to users.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "id": { + "description": "Unique Id of this team.", + "format": "int64", + "type": "integer" + }, + "idpId": { + "description": "Identity Provider ID.", + "type": "string" + }, + "industry": { + "description": "Industry of the organization.", + "type": "string" + }, + "infinityManagerSettings": { + "$ref": "#/components/schemas/InfinityManagerSettings" + }, + "isDatasetServiceEnabled": { + "description": "Dataset Service enable flag for an organization", + "type": "boolean" + }, + "isInternal": { + "description": "Is NVIDIA internal org or not", + "type": "boolean" + }, + "isProto": { + "description": "Indicates when the org is a proto org", + "type": "boolean" + }, + "isQuickStartEnabled": { + "description": "Quick Start enable flag for an organization", + "type": "boolean" + }, + "isRegistrySSEEnabled": { + "description": "If a server side encryption is enabled for private registry (models, resources)", + "type": "boolean" + }, + "isSecretsManagerServiceEnabled": { + "description": "Secrets Manager Service enable flag for an organization", + "type": "boolean" + }, + "isSecureCredentialSharingServiceEnabled": { + "description": "Secure Credential Sharing Service enable flag for an organization", + "type": "boolean" + }, + "isSeparateInfluxDbUsed": { + "description": "If a separate influx db used for an organization in BCP for job telemetry", + "type": "boolean" + }, + "name": { + "description": "Organization name.", + "type": "string" + }, + "ncaAccountNumber": { + "description": "NVIDIA Cloud Account Number.", + "type": "string" + }, + "orgOwner": { + "$ref": "#/components/schemas/OrgOwner" + }, + "orgOwners": { + "description": "Org owners", + "items": { + "$ref": "#/components/schemas/OrgOwner" + }, + "type": "array" + }, + "pecSfdcId": { + "description": "Product end customer salesforce.com Id (external customer Id). pecSfdcId is for EMS (entitlement management service) to track external paid customer.", + "type": "string" + }, + "productEnablements": { + "items": { + "$ref": "#/components/schemas/ProductEnablement" + }, + "type": "array" + }, + "productSubscriptions": { + "items": { + "$ref": "#/components/schemas/ProductSubscription" + }, + "type": "array" + }, + "repoScanSettings": { + "$ref": "#/components/schemas/RepoScanSettings" + }, + "type": { + "enum": [ + "UNKNOWN", + "CLOUD", + "ENTERPRISE", + "INDIVIDUAL" + ], + "type": "string" + }, + "usersInfo": { + "$ref": "#/components/schemas/UsersInfo" + } + }, + "type": "object" + }, + "OrganizationEntitlement": { + "description": "Information about the organization entitlements", + "properties": { + "entitlements": { + "items": { + "$ref": "#/components/schemas/Entitlement" + }, + "type": "array" + }, + "orgName": { + "description": "Organization name", + "type": "string" + } + }, + "type": "object" + }, + "PackageVersion": { + "description": "Latest version information for a specific package", + "properties": { + "createdAt": { + "description": "The creation date of the version", + "type": "string" + }, + "description": { + "description": "Human readable description of the package", + "type": "string" + }, + "name": { + "description": "The name of the package", + "type": "string" + }, + "version": { + "description": "The version number", + "type": "string" + } + }, + "type": "object" + }, + "PackageVersionListResponse": { + "description": "an array of versions", + "properties": { + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + }, + "versions": { + "items": { + "$ref": "#/components/schemas/PackageVersion" + }, + "type": "array" + } + }, + "type": "object" + }, + "PaginationInfo": { + "description": "object that describes the pagination information", + "properties": { + "index": { + "description": "Page index of results", + "format": "int32", + "type": "integer" + }, + "nextPage": { + "description": "Serialized pointer to the next results page. Should be used for fetching next page. Can be empty", + "type": "string" + }, + "size": { + "description": "Number of results in page", + "format": "int32", + "type": "integer" + }, + "totalPages": { + "description": "Total number of pages available", + "format": "int64", + "type": "integer" + }, + "totalResults": { + "description": "Total number of results available", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "ProductEnablement": { + "description": "Product Enablement", + "properties": { + "expirationDate": { + "description": "Date on which the subscription expires. The subscription is invalid after this date. (yyyy-MM-dd)", + "type": "string" + }, + "poDetails": { + "items": { + "$ref": "#/components/schemas/PurchaseOrder" + }, + "type": "array" + }, + "productName": { + "description": "Product Name (NVAIE, BASE_COMMAND, REGISTRY, etc)", + "type": "string" + }, + "type": { + "description": "Product Enablement Types", + "enum": [ + "NGC_ADMIN_EVAL", + "NGC_ADMIN_NFR", + "NGC_ADMIN_COMMERCIAL", + "EMS_EVAL", + "EMS_NFR", + "EMS_COMMERCIAL", + "NGC_ADMIN_DEVELOPER" + ], + "type": "string" + } + }, + "required": [ + "productName", + "type" + ], + "type": "object" + }, + "ProductSubscription": { + "description": "Product Subscription", + "properties": { + "emsEntitlementType": { + "description": "EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL)", + "enum": [ + "EMS_EVAL", + "EMS_NFR", + "EMS_COMMERICAL", + "EMS_COMMERCIAL" + ], + "type": "string" + }, + "expirationDate": { + "description": "Date on which the subscription expires. The subscription is invalid after this date. (yyyy-MM-dd)", + "type": "string" + }, + "id": { + "description": "Unique entitlement identifier", + "type": "string" + }, + "productName": { + "description": "Product Name (NVAIE, BASE_COMMAND, FleetCommand, REGISTRY, etc).", + "type": "string" + }, + "startDate": { + "description": "Date on which the subscription becomes active. (yyyy-MM-dd)", + "type": "string" + }, + "type": { + "description": "Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, NGC_ADMIN_COMMERCIAL)", + "enum": [ + "NGC_ADMIN_EVAL", + "NGC_ADMIN_NFR", + "NGC_ADMIN_COMMERCIAL" + ], + "type": "string" + } + }, + "required": [ + "productName" + ], + "type": "object" + }, + "PurchaseOrder": { + "description": "Purchase Order.", + "properties": { + "entitlementId": { + "description": "Entitlement identifier.", + "type": "string" + }, + "pkId": { + "description": "PAK (Product Activation Key) identifier.", + "type": "string" + } + }, + "type": "object" + }, + "RepoScanSettings": { + "description": "Repo scan setting definition", + "properties": { + "repoScanAllowOverride": { + "description": "Allow org admin to override the org level repo scan settings", + "type": "boolean" + }, + "repoScanByDefault": { + "description": "Allow repository scanning by default", + "type": "boolean" + }, + "repoScanEnableNotifications": { + "description": "Sends notification to end user after scanning is done", + "type": "boolean" + }, + "repoScanEnableTeamOverride": { + "description": "Allow override settings at team level. Only used in org level object", + "type": "boolean" + }, + "repoScanEnabled": { + "description": "Enable the repository scan or not. Only used in org level object", + "type": "boolean" + }, + "repoScanShowResults": { + "description": "Allow showing scan results to CLI or UI", + "type": "boolean" + } + }, + "type": "object" + }, + "RequestStatus": { + "properties": { + "requestId": { + "type": "string" + }, + "serverId": { + "type": "string" + }, + "statusCode": { + "description": "Describes response status reported by the server.", + "enum": [ + "UNKNOWN", + "SUCCESS", + "UNAUTHORIZED", + "PAYMENT_REQUIRED", + "FORBIDDEN", + "TIMEOUT", + "EXISTS", + "NOT_FOUND", + "INTERNAL_ERROR", + "INVALID_REQUEST", + "INVALID_REQUEST_VERSION", + "INVALID_REQUEST_DATA", + "METHOD_NOT_ALLOWED", + "CONFLICT", + "UNPROCESSABLE_ENTITY", + "TOO_MANY_REQUESTS", + "INSUFFICIENT_STORAGE", + "SERVICE_UNAVAILABLE", + "PAYLOAD_TOO_LARGE", + "NOT_ACCEPTABLE", + "UNAVAILABLE_FOR_LEGAL_REASONS", + "BAD_GATEWAY", + "PRECONDITION_FAILED" + ], + "type": "string" + }, + "statusDescription": { + "type": "string" + } + }, + "type": "object" + }, + "Response": { + "properties": { + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + } + }, + "type": "object" + }, + "RoleProduct": { + "description": "Product information of the role", + "properties": { + "displayName": { + "description": "Display Name of the product from the product catalog to which this role is associated with", + "type": "string" + }, + "name": { + "description": "Name of the product from the product catalog to which this role is associated with", + "type": "string" + } + }, + "type": "object" + }, + "SearchParamFilter": { + "properties": { + "field": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "SearchParamOrderBy": { + "properties": { + "field": { + "type": "string" + }, + "value": { + "enum": [ + "ASC", + "DESC" + ], + "type": "string" + } + }, + "type": "object" + }, + "SearchParams": { + "properties": { + "fields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "filters": { + "items": { + "$ref": "#/components/schemas/SearchParamFilter" + }, + "type": "array" + }, + "groupBy": { + "type": "string" + }, + "orderBy": { + "items": { + "$ref": "#/components/schemas/SearchParamOrderBy" + }, + "type": "array" + }, + "page": { + "format": "int64", + "type": "integer" + }, + "pageSize": { + "format": "int64", + "type": "integer" + }, + "query": { + "type": "string" + }, + "queryFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "scoredSize": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "SecurityConfiguration": { + "properties": { + "additionalQueryStringParams": { + "additionalProperties": { + "type": "object" + }, + "type": "object" + }, + "apiKey": { + "deprecated": true, + "type": "string" + }, + "apiKeyName": { + "deprecated": true, + "type": "string" + }, + "apiKeyVehicle": { + "deprecated": true, + "type": "string" + }, + "appName": { + "type": "string" + }, + "clientId": { + "type": "string" + }, + "clientSecret": { + "type": "string" + }, + "realm": { + "type": "string" + }, + "scopeSeparator": { + "type": "string" + }, + "useBasicAuthenticationWithAccessCodeGrant": { + "type": "boolean" + } + }, + "type": "object" + }, + "ServiceAccess": { + "description": "List of actions that this role allows", + "properties": { + "accessLevels": { + "description": "List of access levels that this role allows", + "items": { + "description": "List of access levels that this role allows", + "type": "string" + }, + "type": "array" + }, + "service": { + "description": "Service that this role allows", + "type": "string" + } + }, + "type": "object" + }, + "SwaggerResource": { + "properties": { + "location": { + "deprecated": true, + "type": "string" + }, + "name": { + "type": "string" + }, + "swaggerVersion": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "TargetSystemUserIdentifier": { + "description": "Information about the user who is attempting to run the job", + "properties": { + "gid": { + "description": "gid of the user on this team", + "format": "int64", + "type": "integer" + }, + "orgName": { + "description": "Org context for the job", + "type": "string" + }, + "starfleetId": { + "description": "Starfleet ID of the user creating the job.", + "type": "string" + }, + "teamName": { + "description": "Team context for the job", + "type": "string" + }, + "uid": { + "description": "uid of the user on this team", + "format": "int64", + "type": "integer" + }, + "userId": { + "description": "Unique ID of the user who submitted the job", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "Team": { + "description": "Information about the team", + "properties": { + "description": { + "description": "description of the team", + "type": "string" + }, + "id": { + "description": "unique Id of this team.", + "format": "int64", + "type": "integer" + }, + "infinityManagerSettings": { + "$ref": "#/components/schemas/InfinityManagerSettings" + }, + "isDeleted": { + "description": "indicates if the team is deleted or not", + "type": "boolean" + }, + "name": { + "description": "team name", + "type": "string" + }, + "repoScanSettings": { + "$ref": "#/components/schemas/RepoScanSettings" + } + }, + "type": "object" + }, + "TeamCreateRequest": { + "description": "Request to create new Team", + "properties": { + "description": { + "description": "description of the team", + "maxLength": 255, + "type": "string" + }, + "name": { + "description": "team name", + "maxLength": 19, + "minLength": 2, + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "TeamCreateResponse": { + "description": "response to an team creation request, includes unique team id", + "properties": { + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + }, + "team": { + "$ref": "#/components/schemas/Team" + } + }, + "type": "object" + }, + "TeamListResponse": { + "description": "listing of all teams", + "properties": { + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + }, + "teams": { + "items": { + "$ref": "#/components/schemas/Team" + }, + "type": "array" + } + }, + "type": "object" + }, + "TeamResponse": { + "description": "details about one team", + "properties": { + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + }, + "team": { + "$ref": "#/components/schemas/Team" + } + }, + "type": "object" + }, + "TeamUpdateRequest": { + "description": "object used to update information about existing team", + "properties": { + "description": { + "description": "description of the team", + "maxLength": 255, + "type": "string" + }, + "infinityManagerSettings": { + "$ref": "#/components/schemas/InfinityManagerSettings" + }, + "repoScanSettings": { + "$ref": "#/components/schemas/RepoScanSettings" + } + }, + "type": "object" + }, + "UiConfiguration": { + "properties": { + "apisSorter": { + "deprecated": true, + "type": "string" + }, + "deepLinking": { + "type": "boolean" + }, + "defaultModelExpandDepth": { + "format": "int32", + "type": "integer" + }, + "defaultModelRendering": { + "enum": [ + "example", + "model" + ], + "type": "string" + }, + "defaultModelsExpandDepth": { + "format": "int32", + "type": "integer" + }, + "displayOperationId": { + "type": "boolean" + }, + "displayRequestDuration": { + "type": "boolean" + }, + "docExpansion": { + "enum": [ + "none", + "list", + "full" + ], + "type": "string" + }, + "filter": { + "type": "object" + }, + "jsonEditor": { + "deprecated": true, + "type": "boolean" + }, + "maxDisplayedTags": { + "format": "int32", + "type": "integer" + }, + "operationsSorter": { + "enum": [ + "alpha", + "method" + ], + "type": "string" + }, + "showExtensions": { + "type": "boolean" + }, + "showRequestHeaders": { + "deprecated": true, + "type": "boolean" + }, + "supportedSubmitMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tagsSorter": { + "enum": [ + "alpha" + ], + "type": "string" + }, + "validatorUrl": { + "type": "string" + } + }, + "type": "object" + }, + "User": { + "description": "information about the user", + "properties": { + "clientId": { + "description": "unique auth client id of this user.", + "type": "string" + }, + "createdDate": { + "description": "Created date for this user", + "type": "string" + }, + "email": { + "description": "Email address of the user. This should be unique.", + "maxLength": 128, + "minLength": 7, + "type": "string" + }, + "firstLoginDate": { + "description": "Last time the user logged in", + "type": "string" + }, + "hasBetaAccess": { + "description": "Determines if the user has beta access", + "type": "boolean" + }, + "hasProfile": { + "description": "indicate if user profile has been completed.", + "type": "boolean" + }, + "hasSignedAODTEULA": { + "description": "indicates if user has accepted AODT End User License Agreement.", + "type": "boolean" + }, + "hasSignedAiFoundryPartnershipsEULA": { + "description": "indicates if user has accepted AI Foundry Partnerships eula", + "type": "boolean" + }, + "hasSignedBaseCommandEULA": { + "description": "indicates if user has accepted Base Command End User License Agreement.", + "type": "boolean" + }, + "hasSignedBaseCommandManagerEULA": { + "description": "indicates if user has accepted Base Command Manager End User License Agreement.", + "type": "boolean" + }, + "hasSignedBioNeMoEULA": { + "description": "indicates if user has accepted BioNeMo End User License Agreement.", + "type": "boolean" + }, + "hasSignedContainerPublishingEULA": { + "description": "indicates if user has accepted container publishing eula", + "type": "boolean" + }, + "hasSignedCuOptEULA": { + "description": "indicates if user has accepted CuOpt eula", + "type": "boolean" + }, + "hasSignedEULA": { + "description": "Determines if the user has signed the NGC End User License Agreement.", + "type": "boolean" + }, + "hasSignedEarth2EULA": { + "description": "indicates if user has accepted Earth-2 eula", + "type": "boolean" + }, + "hasSignedEgxEULA": { + "description": "[Deprecated] indicates if user has accepted EGX End User License Agreement.", + "type": "boolean" + }, + "hasSignedFleetCommandEULA": { + "description": "indicates if user has accepted Fleet Command End User License Agreement.", + "type": "boolean" + }, + "hasSignedLlmEULA": { + "description": "indicates if user has accepted LLM End User License Agreement.", + "type": "boolean" + }, + "hasSignedNVAIEEULA": { + "description": "indicates if user has accepted Fleet Command End User License Agreement.", + "type": "boolean" + }, + "hasSignedNVQCEULA": { + "description": "indicates if user has accepted Nvidia Quantum Cloud End User License Agreement.", + "type": "boolean" + }, + "hasSignedNvidiaEULA": { + "description": "Determines if the user has signed the NVIDIA End User License Agreement.", + "type": "boolean" + }, + "hasSignedOmniverseEULA": { + "description": "indicates if user has accepted Omniverse End User License Agreement.", + "type": "boolean" + }, + "hasSignedPrivacyPolicy": { + "description": "Determines if the user has signed the Privacy Policy.", + "type": "boolean" + }, + "hasSignedThirdPartyRegistryShareEULA": { + "description": "indicates if user has consented to share their registration info with other parties", + "type": "boolean" + }, + "hasSubscribedToEmail": { + "description": "Determines if the user has opted in email subscription.", + "type": "boolean" + }, + "id": { + "description": "unique Id of this user.", + "format": "int64", + "type": "integer" + }, + "idpType": { + "description": "Type of IDP, Identity Provider. Used for login.", + "enum": [ + "NVIDIA", + "ENTERPRISE" + ], + "type": "string" + }, + "isActive": { + "description": "Determines if the user is active or not.", + "type": "boolean" + }, + "isDeleted": { + "description": "Indicates if user was deleted from the system.", + "type": "boolean" + }, + "isSAML": { + "description": "Determines if the user is a SAML account or not.", + "type": "boolean" + }, + "jobPositionTitle": { + "description": "Title of user's job position.", + "type": "string" + }, + "lastLoginDate": { + "description": "Last time the user logged in", + "type": "string" + }, + "name": { + "description": "user name", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "roles": { + "description": "List of roles that the user have", + "items": { + "$ref": "#/components/schemas/UserRole" + }, + "type": "array" + }, + "starfleetId": { + "description": "unique starfleet id of this user.", + "type": "string" + }, + "storageQuota": { + "description": "Storage quota for this user.", + "items": { + "$ref": "#/components/schemas/UserStorageQuota" + }, + "type": "array" + }, + "updatedDate": { + "description": "Updated date for this user", + "type": "string" + }, + "userMetadata": { + "$ref": "#/components/schemas/UserMetadata" + }, + "verified": { + "description": "Is user's email or phone number is verified", + "type": "boolean" + } + }, + "type": "object" + }, + "UserCreateRequest": { + "description": "object used request user creation in an existing org", + "properties": { + "email": { + "description": "Email address of the user. This should be unique.", + "maxLength": 128, + "minLength": 6, + "type": "string" + }, + "emailOptIn": { + "description": "indicates if user has opt in to nvidia emails", + "type": "boolean" + }, + "eulaAccepted": { + "description": "indicates if user has accepted EULA", + "type": "boolean" + }, + "name": { + "description": "user name", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "roleType": { + "description": "DEPRECATED - use roleTypes which allows multiple roles", + "type": "string" + }, + "roleTypes": { + "description": "feature roles to give to the user", + "items": { + "description": "feature roles to give to the user", + "type": "string" + }, + "type": "array" + }, + "salesforceContactJobRole": { + "description": "user job role", + "type": "string" + }, + "userMetadata": { + "$ref": "#/components/schemas/UserMetadata" + } + }, + "required": [ + "email" + ], + "type": "object" + }, + "UserInvitation": { + "description": "User invitation to an NGC org or team", + "properties": { + "createdDate": { + "description": "Date on which the invitation was created. (ISO-8601 format)", + "type": "string" + }, + "email": { + "description": "Email address of the user.", + "maxLength": 128, + "minLength": 7, + "type": "string" + }, + "id": { + "description": "Unique invitation ID", + "type": "string" + }, + "isProcessed": { + "description": "Flag indicating if the invitation has already been accepted by the user.", + "type": "boolean" + }, + "name": { + "description": "user name", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "org": { + "description": "Org to which a user was invited.", + "type": "string" + }, + "roles": { + "description": "List of roles that the user have.", + "items": { + "description": "List of roles that the user have.", + "type": "string" + }, + "type": "array" + }, + "team": { + "description": "Team to which a user was invited.", + "type": "string" + }, + "type": { + "description": "Type of invitation. The invitation is either to an organization or to a team within organization.", + "enum": [ + "ORGANIZATION", + "TEAM" + ], + "type": "string" + } + }, + "type": "object" + }, + "UserInvitationListResponse": { + "description": "Response for a list of user invitations.", + "properties": { + "invitations": { + "description": "List of invitations.", + "items": { + "$ref": "#/components/schemas/UserInvitation" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + } + }, + "type": "object" + }, + "UserKeyResponse": { + "description": "response to a request to access key such as docker token", + "properties": { + "cloudNfsKey": { + "type": "string" + }, + "cloudNfsKeyPwd": { + "type": "string" + }, + "cloudNfsUserName": { + "type": "string" + }, + "key": { + "maxLength": 255, + "type": "string" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + } + }, + "required": [ + "key" + ], + "type": "object" + }, + "UserListResponse": { + "description": "Response for List User reponse", + "properties": { + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + }, + "users": { + "description": "information about the user", + "items": { + "$ref": "#/components/schemas/User" + }, + "type": "array" + } + }, + "type": "object" + }, + "UserMetadata": { + "description": "Metadata information about the user.", + "properties": { + "company": { + "description": "Name of the company", + "maxLength": 128, + "type": "string" + }, + "companyUrl": { + "description": "Company URL", + "type": "string" + }, + "country": { + "description": "Country of the user", + "type": "string" + }, + "firstName": { + "description": "User's first name", + "maxLength": 255, + "type": "string" + }, + "industry": { + "description": "Industry segment", + "type": "string" + }, + "interest": { + "description": "List of development areas that user has interest", + "items": { + "description": "List of development areas that user has interest", + "type": "string" + }, + "type": "array" + }, + "lastName": { + "description": "User's last name", + "maxLength": 255, + "type": "string" + }, + "role": { + "description": "Role of the user in the company", + "type": "string" + } + }, + "type": "object" + }, + "UserNcaInvitationRequest": { + "description": "NCA User invitation request", + "properties": { + "email": { + "description": "Is the user email", + "maxLength": 128, + "minLength": 7, + "type": "string" + }, + "invitationExpirationIn": { + "description": "Is the numbers of days the invitation will expire", + "format": "int32", + "type": "integer" + }, + "inviteAs": { + "description": "Nca allow users to be invited as Admin and as Member", + "enum": [ + "ADMIN", + "MEMBER" + ], + "type": "string" + }, + "message": { + "description": "Is a message to the new user", + "type": "string" + } + }, + "type": "object" + }, + "UserResponse": { + "description": " about one user", + "properties": { + "activationToken": { + "description": "token needed to activate the user to enable login and other features", + "type": "string" + }, + "ncaRole": { + "description": "NCA role", + "enum": [ + "UNKNOWN", + "ADMINISTRATOR", + "MEMBER", + "OWNER", + "PENDING" + ], + "type": "string" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + }, + "user": { + "$ref": "#/components/schemas/User" + }, + "userRoles": { + "description": "DEPRECATED - Please use roles inside user", + "items": { + "$ref": "#/components/schemas/UserRole" + }, + "type": "array" + } + }, + "type": "object" + }, + "UserRole": { + "description": "List of roles that the user have", + "properties": { + "org": { + "$ref": "#/components/schemas/Organization" + }, + "orgRoles": { + "description": "List of org role types that the user have", + "items": { + "description": "List of org role types that the user have", + "type": "string" + }, + "type": "array" + }, + "roleTypes": { + "description": "DEPRECATED - List of role types that the user have", + "items": { + "description": "DEPRECATED - List of role types that the user have", + "type": "string" + }, + "type": "array" + }, + "targetSystemUserIdentifier": { + "$ref": "#/components/schemas/TargetSystemUserIdentifier" + }, + "team": { + "$ref": "#/components/schemas/Team" + }, + "teamRoles": { + "description": "List of team role types that the user have", + "items": { + "description": "List of team role types that the user have", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "UserRoleDefinition": { + "description": "List of roles", + "properties": { + "allowedActions": { + "description": "List of actions that this role allows", + "items": { + "$ref": "#/components/schemas/ServiceAccess" + }, + "type": "array" + }, + "displayName": { + "description": "Display Name of the role", + "type": "string" + }, + "name": { + "description": "Name of the role", + "type": "string" + }, + "product": { + "$ref": "#/components/schemas/RoleProduct" + }, + "shortDisplayName": { + "description": "Short Display Name of the role", + "type": "string" + } + }, + "type": "object" + }, + "UserRoleDefinitionsResponse": { + "description": "Response containing all the roles defined in NGC and their allowed actions", + "properties": { + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus" + }, + "roles": { + "description": "List of roles", + "items": { + "$ref": "#/components/schemas/UserRoleDefinition" + }, + "type": "array" + } + }, + "type": "object" + }, + "UserStorageQuota": { + "description": "represents user storage quota for a given ace and available unused storage", + "properties": { + "aceId": { + "description": "id of the ace", + "format": "int64", + "type": "integer" + }, + "aceName": { + "description": "name of the ace", + "type": "string" + }, + "available": { + "description": "Available space in bytes", + "format": "int64", + "type": "integer" + }, + "datasetCount": { + "description": "Number of datasets that are a part of user's used storage", + "format": "int64", + "type": "integer" + }, + "datasetsUsage": { + "description": "Space used by datasets in bytes", + "format": "int64", + "type": "integer" + }, + "orgName": { + "description": "The org name that this user quota tied to. This is needed for analytics", + "type": "string" + }, + "quota": { + "description": "Assigned quota in bytes", + "format": "int64", + "type": "integer" + }, + "resultsetCount": { + "description": "Number of resultsets that are a part of user's used storage", + "format": "int64", + "type": "integer" + }, + "resultsetsUsage": { + "description": "Space used by resultsets in bytes", + "format": "int64", + "type": "integer" + }, + "storageClusterDescription": { + "description": "Description of this storage cluster", + "type": "string" + }, + "storageClusterName": { + "description": "Name of storage cluster", + "type": "string" + }, + "storageClusterUuid": { + "description": "Identifier to this storage cluster", + "type": "string" + }, + "workspacesCount": { + "description": "Number of workspaces that are a part of user's used storage", + "format": "int64", + "type": "integer" + }, + "workspacesUsage": { + "description": "Space used by workspaces in bytes", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "UserUpdateRequest": { + "description": "object used to request user update", + "properties": { + "hasEmailOptIn": { + "description": "indicates if user has opt in to nvidia emails", + "type": "boolean" + }, + "hasSignedAODTEULA": { + "description": "indicates if user has accepted AODT End User License Agreement.", + "type": "boolean" + }, + "hasSignedAiFoundryPartnershipsEULA": { + "description": "indicates if user has accepted AI Foundry Partnerships End User License Agreement.", + "type": "boolean" + }, + "hasSignedBaseCommandEULA": { + "description": "indicates if user has accepted Base Command EULA", + "type": "boolean" + }, + "hasSignedBaseCommandManagerEULA": { + "description": "indicates if user has accepted Base Command Manager End User License Agreement.", + "type": "boolean" + }, + "hasSignedBioNeMoEULA": { + "description": "indicates if user has accepted BioNeMo End User License Agreement.", + "type": "boolean" + }, + "hasSignedContainerPublishingEULA": { + "description": "indicates if user has accepted container publishing eula", + "type": "boolean" + }, + "hasSignedCuOptEULA": { + "description": "indicates if user has accepted CuOpt End User License Agreement.", + "type": "boolean" + }, + "hasSignedEULA": { + "description": "indicates if user has accepted NGC EULA", + "type": "boolean" + }, + "hasSignedEarth2EULA": { + "description": "indicates if user has accepted Earth-2 End User License Agreement.", + "type": "boolean" + }, + "hasSignedEgxEULA": { + "description": "indicates if user has accepted EGX EULA", + "type": "boolean" + }, + "hasSignedFleetCommandEULA": { + "description": "indicates if user has accepted Fleet Command End User License Agreement.", + "type": "boolean" + }, + "hasSignedLlmEULA": { + "description": "indicates if user has accepted LLM End User License Agreement.", + "type": "boolean" + }, + "hasSignedNVAIEEULA": { + "description": "indicates if user has accepted Fleet Command End User License Agreement.", + "type": "boolean" + }, + "hasSignedNVQCEULA": { + "description": "indicates if user has accepted Nvidia Quantum Cloud End User License Agreement.", + "type": "boolean" + }, + "hasSignedNvidiaEULA": { + "description": "indicates if user has accepted NVIDIA EULA", + "type": "boolean" + }, + "hasSignedOmniverseEULA": { + "description": "indicates if user has accepted Omniverse End User License Agreement.", + "type": "boolean" + }, + "hasSignedPrivacyPolicy": { + "description": "indicates if the user has signed the Privacy Policy", + "type": "boolean" + }, + "hasSignedThirdPartyRegistryShareEULA": { + "description": "indicates if user has consented to share their registration info with other parties", + "type": "boolean" + }, + "name": { + "description": "user name", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "userMetadata": { + "$ref": "#/components/schemas/UserMetadata" + } + }, + "type": "object" + }, + "UsersInfo": { + "description": "Users information.", + "properties": { + "totalUsers": { + "description": "Total number of users.", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "ValidateOrgQueryParams": { + "description": "Object for defining params to validate org.", + "properties": { + "orgOwner": { + "$ref": "#/components/schemas/OrgOwner" + }, + "pecSfdcId": { + "description": "Product end customer salesforce.com id (external customer id) for enterprise product.", + "type": "string" + }, + "productSubscriptions": { + "description": "Product Subscriptions.", + "items": { + "$ref": "#/components/schemas/ProductSubscription" + }, + "type": "array" + } + }, + "required": [ + "orgOwner", + "pecSfdcId", + "productSubscriptions" + ], + "type": "object" + } + }, + "securitySchemes": { + "api-key": { + "description": "Authenticate your API requests by adding the API key from https://ngc.nvidia.com/setup/api-key", + "in": "header", + "name": "Authorization", + "type": "apiKey" + }, + "bearer-token": { + "bearerFormat": "JWT", + "description": "Users can issue API tokens by calling GET https://ngc.authn.nvidia.com/token?scope=group/ngc[:<org-name>[/<team-name>]].\nWhenever the user wants to access a protected route or resource, the user must get the token for that particular organization / team", + "scheme": "bearer", + "type": "http" + } + } + }, + "info": { + "description": "The NGC Web API is an interface for querying information from and enacting change in a NGC world. \n", + "license": { + "name": "Legal Notices", + "url": "https://www.nvidia.com/en-us/legal_info" + }, + "title": "NGC API Documentation", + "version": "v3.249.17" + }, + "openapi": "3.0.1", + "paths": { + "/health": { + "get": { + "description": "Used to check the health status of the web service only", + "operationId": "status", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HealthResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Web Service Health Status", + "tags": [ + "Services" + ] + } + }, + "/health/all": { + "get": { + "description": "Used to get health status of all services", + "operationId": "statusDetails", + "parameters": [ + { + "description": "boolean value to indicating to show details or not", + "in": "query", + "name": "showDetails", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + }, + { + "description": "secret value that validates the call in order to show details", + "in": "query", + "name": "secret", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HealthResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "All Service Health Status", + "tags": [ + "Services" + ] + } + }, + "/public-keys": { + "get": { + "description": "Used to check the health status of the web service only", + "operationId": "getPublicKey", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Web Service Health Status", + "tags": [ + "Services" + ] + } + }, + "/roles": { + "get": { + "description": "List of roles in NGC and their scopes", + "operationId": "getRoles", + "parameters": [ + { + "description": "flag indicate if hidden roles should be included", + "in": "query", + "name": "show-hidden", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserRoleDefinitionsResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "NGC Roles", + "tags": [ + "Services" + ] + } + }, + "/swagger-resources": { + "delete": { + "operationId": "swaggerResources_delete", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/SwaggerResource" + }, + "type": "array" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "get": { + "operationId": "swaggerResources_get", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/SwaggerResource" + }, + "type": "array" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "head": { + "operationId": "swaggerResources_head", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/SwaggerResource" + }, + "type": "array" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "options": { + "operationId": "swaggerResources_options", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/SwaggerResource" + }, + "type": "array" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "patch": { + "operationId": "swaggerResources_patch", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/SwaggerResource" + }, + "type": "array" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "post": { + "operationId": "swaggerResources_post", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/SwaggerResource" + }, + "type": "array" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "put": { + "operationId": "swaggerResources_put", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "items": { + "$ref": "#/components/schemas/SwaggerResource" + }, + "type": "array" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + } + }, + "/swagger-resources/configuration/security": { + "delete": { + "operationId": "securityConfiguration_delete", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SecurityConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "get": { + "operationId": "securityConfiguration_get", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SecurityConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "head": { + "operationId": "securityConfiguration_head", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SecurityConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "options": { + "operationId": "securityConfiguration_options", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SecurityConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "patch": { + "operationId": "securityConfiguration_patch", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SecurityConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "post": { + "operationId": "securityConfiguration_post", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SecurityConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "put": { + "operationId": "securityConfiguration_put", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/SecurityConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + } + }, + "/swagger-resources/configuration/ui": { + "delete": { + "operationId": "uiConfiguration_delete", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/UiConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "get": { + "operationId": "uiConfiguration_get", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/UiConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "head": { + "operationId": "uiConfiguration_head", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/UiConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "options": { + "operationId": "uiConfiguration_options", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/UiConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "patch": { + "operationId": "uiConfiguration_patch", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/UiConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "post": { + "operationId": "uiConfiguration_post", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/UiConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + }, + "put": { + "operationId": "uiConfiguration_put", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/UiConfiguration" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Conflict" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Server Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "tags": [ + "api-resource-controller" + ] + } + }, + "/v2/admin/backfill-orgs-to-kratos": { + "post": { + "description": "Backfill Orgs to Kratos", + "operationId": "backfillOrgsToKratos", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Backfill Orgs to Kratos", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v2/admin/entitlements": { + "get": { + "description": "List all organizations with entitlements. (SuperAdmin, ECM and Billing privileges required)", + "operationId": "listOrganizationsWithEntitlement_1", + "parameters": [ + { + "description": "filter by org-name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "filter by product-name", + "in": "query", + "name": "product-name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "get is paid subscription entitlements", + "in": "query", + "name": "is-paid-subscription", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgListEntitlementResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List Organizations with Entitlements", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v2/admin/org": { + "get": { + "description": "List all organizations. (SuperAdmin privileges required)", + "operationId": "listOrganizations_2", + "parameters": [ + { + "description": "The page number of result", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "The page size of result", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "Org name to search", + "in": "query", + "name": "org-name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Org description to search", + "in": "query", + "name": "org-desc", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "Filter using org display name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "Filter using org owner name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "Filter using org owner email. Email should be base-64-encoded.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Org Type to search", + "in": "query", + "name": "org-type", + "required": false, + "schema": { + "enum": [ + "UNKNOWN", + "CLOUD", + "ENTERPRISE", + "INDIVIDUAL" + ], + "type": "string" + } + }, + { + "description": "PEC ID to search", + "in": "query", + "name": "pec-id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List Organizations", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v2/admin/org/validate": { + "get": { + "description": "List all organizations that match the validate org params", + "operationId": "listValidatedOrganizations", + "parameters": [ + { + "description": "Validate Organization Parameters", + "in": "query", + "name": "q", + "required": true, + "schema": { + "$ref": "#/components/schemas/ValidateOrgQueryParams" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List Validated Organizations", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v2/admin/org/{org-name}": { + "get": { + "description": "Get organization info. (SuperAdmin privileges required)", + "operationId": "getOrg_1", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get Organization", + "tags": [ + "Super Admin Org Controller" + ] + }, + "patch": { + "deprecated": true, + "description": "Update org information and settings. Superadmin privileges required", + "operationId": "updateOrg_1", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Update Organization", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v2/admin/org/{org-name}/entitlements": { + "get": { + "description": "List all organizations with entitlements. (SuperAdmin, ECM and Billing privileges required)", + "operationId": "listOrganizationsWithEntitlement", + "parameters": [ + { + "description": "filter by org-name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "filter by product-name", + "in": "query", + "name": "product-name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "get is paid subscription entitlements", + "in": "query", + "name": "is-paid-subscription", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgListEntitlementResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List Organizations with Entitlements", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v2/admin/org/{org-name}/org-owner-backfill": { + "post": { + "description": "Backfill the org owner for users", + "operationId": "backfillOrgOwnerByOrg", + "parameters": [ + { + "in": "path", + "name": "Org Name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Backfill the org owner for users", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/org/{org-name}/team/{team-name}/users": { + "post": { + "description": "Create an Org-Admin User (Super Admin privileges required)", + "operationId": "createUserInTeam_1", + "parameters": [ + { + "in": "cookie", + "name": "ncid", + "required": false, + "schema": { + "default": "", + "type": "string" + } + }, + { + "in": "cookie", + "name": "VisitorID", + "required": false, + "schema": { + "default": "", + "type": "string" + } + }, + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Boolean to send email notification, default is true", + "in": "query", + "name": "send-email", + "required": false, + "schema": { + "default": true, + "type": "boolean" + } + }, + { + "description": "If the IDP ID is provided then it is used instead of the one configured for the organization", + "in": "query", + "name": "idp-id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Create User", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/org/{org-name}/team/{team-name}/users/{id}": { + "post": { + "deprecated": true, + "description": "Add existing User to an Team", + "operationId": "addUserToTeam_1", + "parameters": [ + { + "in": "cookie", + "name": "ncid", + "required": false, + "schema": { + "default": "", + "type": "string" + } + }, + { + "in": "cookie", + "name": "VisitorID", + "required": false, + "schema": { + "default": "", + "type": "string" + } + }, + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "user role, defaults to REGISTRY_READ", + "required": false, + "schema": { + "default": "REGISTRY_READ", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Add existing User to an Team", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/org/{org-name}/team/{team-name}/users/{id}/add-role": { + "patch": { + "deprecated": true, + "description": "Add user role in team.", + "operationId": "addUserRole_3", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Add user role in team", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/org/{org-name}/team/{team-name}/users/{id}/remove-role": { + "delete": { + "deprecated": true, + "description": "Remove user role in team (if the last role is removed, the user is removed from the team).", + "operationId": "removeUserRole_3", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Remove user role in team", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/org/{org-name}/teams": { + "get": { + "description": "List all Teams", + "operationId": "listTeams_1", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The page number of result", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "The page size of result", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "Team name to search", + "in": "query", + "name": "team-name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Get all team that has scan by default only", + "in": "query", + "name": "scan-by-default", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Get all team that has scan allow override only", + "in": "query", + "name": "scan-allow-override", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Get all team that has scan show results only", + "in": "query", + "name": "scan-show-results", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/TeamListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List Teams", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v2/admin/org/{org-name}/teams/{team-name}": { + "get": { + "description": "Get one team", + "operationId": "getTeam_1", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/TeamResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get Team", + "tags": [ + "Super Admin Org Controller" + ] + }, + "patch": { + "description": "Edit a Team", + "operationId": "editTeam_1", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TeamUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/TeamResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Edit Team", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v2/admin/org/{org-name}/users": { + "post": { + "description": "Create an user in an Organization (Super Admin privileges required)", + "operationId": "createUserInOrg_1", + "parameters": [ + { + "in": "cookie", + "name": "ncid", + "required": false, + "schema": { + "default": "", + "type": "string" + } + }, + { + "in": "cookie", + "name": "VisitorID", + "required": false, + "schema": { + "default": "", + "type": "string" + } + }, + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Boolean to send email notification, default is true", + "in": "query", + "name": "send-email", + "required": false, + "schema": { + "default": true, + "type": "boolean" + } + }, + { + "description": "If the IDP ID is provided then it is used instead of the one configured for the organization", + "in": "query", + "name": "idp-id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Create User", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/org/{org-name}/users/{id}": { + "delete": { + "description": "Remove User from org.", + "operationId": "removeUserFromOrg_2", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Remove User from org", + "tags": [ + "Super Admin User Controller" + ] + }, + "post": { + "deprecated": true, + "description": "Add existing User to an Org", + "operationId": "addUserToOrg", + "parameters": [ + { + "in": "cookie", + "name": "ncid", + "required": false, + "schema": { + "default": "", + "type": "string" + } + }, + { + "in": "cookie", + "name": "VisitorID", + "required": false, + "schema": { + "default": "", + "type": "string" + } + }, + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "user role, defaults to REGISTRY_READ", + "required": false, + "schema": { + "default": "REGISTRY_READ", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Add existing User to an Org", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/org/{org-name}/users/{id}/add-role": { + "patch": { + "deprecated": true, + "description": "Add user role in org.", + "operationId": "addUserRole_2", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Add user role in org", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/org/{org-name}/users/{id}/remove-role": { + "delete": { + "deprecated": true, + "description": "Remove user role in org (if the last role is removed, the user is removed from the org and org teams).", + "operationId": "removeUserRole_2", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Remove user role in org", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/org/{org-name}/users/{id}/update-role": { + "patch": { + "deprecated": true, + "description": "Update User Role in org", + "operationId": "updateUserRole_2", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Update User Role in org", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/orgs": { + "post": { + "description": "Create a new organization. (SuperAdmin privileges required)", + "operationId": "createOrganization", + "parameters": [ + { + "in": "cookie", + "name": "ncid", + "required": false, + "schema": { + "default": "", + "type": "string" + } + }, + { + "in": "cookie", + "name": "VisitorID", + "required": false, + "schema": { + "default": "", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Create Organization", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v2/admin/orgs/offboarded": { + "get": { + "description": "List all Offboarded organizations.", + "operationId": "listOffboardedOrgs", + "parameters": [ + { + "description": "The page number of result", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "The page size of result", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List Offboarded Organizations", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v2/admin/users/invite": { + "patch": { + "deprecated": true, + "description": "Invite an existing user again (Super Admin privileges required)", + "operationId": "emailInviteToUser", + "parameters": [ + { + "in": "query", + "name": "email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Boolean to send email notification, default is true", + "in": "query", + "name": "send-email", + "required": false, + "schema": { + "default": true, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Re invite user", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/users/me": { + "get": { + "description": "What am I? Admin version, shows more info than regular endpoint", + "operationId": "whoAmI_1", + "parameters": [ + { + "in": "query", + "name": "org-name", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Who am I? Admin version", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/users/{id}": { + "get": { + "description": "Get User details", + "operationId": "getUserDetails", + "parameters": [ + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get User Information", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/users/{id}/crm-sync": { + "post": { + "description": "Sync crm id with user email (Super Admin privileges required)", + "operationId": "syncCrmUser", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Sync crm id with user email", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/users/{id}/migrate-deprecated-roles": { + "post": { + "description": "Migrate User Deprecated Roles.", + "operationId": "migrateUserDeprecatedRoles", + "parameters": [ + { + "in": "path", + "name": "user id (not email)", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Migrate User Deprecated Roles", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/admin/users/{user-id}/org-owner-backfill": { + "post": { + "description": "Backfill the org owner for individual users", + "operationId": "backfillOrgOwnerByUser", + "parameters": [ + { + "in": "path", + "name": "User ID of the user", + "required": true, + "schema": { + "format": "int64", + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Backfill the org owner for individual users", + "tags": [ + "Super Admin User Controller" + ] + } + }, + "/v2/org/{org-name}/starfleetIds/{starfleet-id}": { + "get": { + "description": "Get User details in org by starfleet Id", + "operationId": "getUserInOrg_1", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "starfleet-id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get User in org", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org-name}/team/{team-name}/starfleetIds/{starfleet-id}": { + "get": { + "description": "Get User details in team by starfleet Id", + "operationId": "getUserInTeamByStarfleetId", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "starfleet-id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get User in team", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org-name}/team/{team-name}/users": { + "get": { + "description": "Get list of users in team. (User Admin in team privileges required)", + "operationId": "listUsersInTeam", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The page number of result", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "The page size of result", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "User Search Parameters. Only 'filters' and 'orderBy' for 'name' and 'email' are implemented", + "in": "query", + "name": "q", + "required": false, + "schema": { + "$ref": "#/components/schemas/SearchParams" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List users in team", + "tags": [ + "Users Management" + ] + }, + "post": { + "description": "Creates a User and add them to a team within the org.", + "operationId": "createUserInTeam", + "parameters": [ + { + "in": "cookie", + "name": "ncid", + "required": false, + "schema": { + "default": "", + "type": "string" + } + }, + { + "in": "cookie", + "name": "VisitorID", + "required": false, + "schema": { + "default": "", + "type": "string" + } + }, + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "send-email", + "required": false, + "schema": { + "default": true, + "type": "boolean" + } + }, + { + "description": "If the IDP ID is provided then it is used instead of the one configured for the organization", + "in": "query", + "name": "idp-id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Creates a User in team", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org-name}/team/{team-name}/users/invitations": { + "get": { + "description": "List invitations in a team. (Team User Admin privileges required)", + "operationId": "listInvitationsForUserInTeam", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The page number of result", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "The page size of result", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "in": "query", + "name": "orderBy", + "required": false, + "schema": { + "enum": [ + "NAME_ASC", + "NAME_DESC" + ], + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "User Search Parameters", + "in": "query", + "name": "q", + "required": false, + "schema": { + "$ref": "#/components/schemas/SearchParams" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserInvitationListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List user invitations in a team.", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org-name}/team/{team-name}/users/invitations/{id}": { + "delete": { + "description": "Delete a specific invitation in an team. (Org Admin or Team User Admin privileges required)", + "operationId": "deleteUserInvitationInTeam", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "invitation ID", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Delete a specific invitation in a team.", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org-name}/team/{team-name}/users/invitations/{id}/resend-invitation-email": { + "get": { + "description": "Resend email of a specific invitation in a team (Org or Team User Admin privileges required).", + "operationId": "resendUserInvitationEmailInTeam", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "invitation ID", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Resend email of a specific invitation in a team.", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org-name}/team/{team-name}/users/{id}": { + "delete": { + "description": "Removes User from team. (Org Admin or Team Admin Privileges Required).", + "operationId": "removeUserFromTeam_1", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Removes User from team", + "tags": [ + "Users Management" + ] + }, + "get": { + "description": "Get User details within team context", + "operationId": "getUserInTeam", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "If the IDP ID is provided then it is used instead of the one configured for the organization. If no IDP is configured for the organization, then IDP is guessed based on the email domain", + "in": "query", + "name": "idp-id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get User in team", + "tags": [ + "Users Management" + ] + }, + "post": { + "description": "Add a User to team", + "operationId": "addUserToTeam", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "user role", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Add a User to team", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org-name}/team/{team-name}/users/{id}/add-role": { + "patch": { + "deprecated": true, + "description": "Add User Role in team.", + "operationId": "addUserRole_1", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Add User Role in team", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org-name}/team/{team-name}/users/{id}/remove-role": { + "delete": { + "deprecated": true, + "description": "Remove User Role in team (if the last role is removed, the user is removed from the team).", + "operationId": "removeUserRole_1", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Remove User Role in team", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org-name}/team/{team-name}/users/{id}/update-role": { + "patch": { + "deprecated": true, + "description": "Update User Role in team", + "operationId": "updateUserRole_1", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Update User Role in team", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org-name}/teams": { + "get": { + "description": "List all Teams", + "operationId": "listTeams", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The page number of result", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "The page size of result", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TeamListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List Teams", + "tags": [ + "Teams" + ] + }, + "post": { + "description": "Create team in org. (Org Admin Privileges Required)", + "operationId": "createTeam", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TeamCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TeamCreateResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Create Team", + "tags": [ + "Teams" + ] + } + }, + "/v2/org/{org-name}/teams/{team-name}": { + "delete": { + "description": "Delete a Team", + "operationId": "deleteTeam", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Delete Team", + "tags": [ + "Teams" + ] + }, + "get": { + "description": "Get Team by name", + "operationId": "getTeam", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TeamResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get Team", + "tags": [ + "Teams" + ] + }, + "patch": { + "description": "Edit a Team", + "operationId": "editTeam", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TeamUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TeamResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Edit Team", + "tags": [ + "Teams" + ] + } + }, + "/v2/org/{org-name}/users": { + "get": { + "description": "Get list of users in organization. (User Admin in org privileges required)", + "operationId": "listUsersInOrg", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Name of team to exclude members from", + "in": "query", + "name": "exclude-from-team", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "The page number of result", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "The page size of result", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "User Search Parameters. Only 'filters' and 'orderBy' for 'name' and 'email' are implemented", + "in": "query", + "name": "q", + "required": false, + "schema": { + "$ref": "#/components/schemas/SearchParams" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List users In org", + "tags": [ + "Users Management" + ] + }, + "post": { + "description": "Creates a User", + "operationId": "createUserInOrg", + "parameters": [ + { + "in": "cookie", + "name": "ncid", + "required": false, + "schema": { + "default": "", + "type": "string" + } + }, + { + "in": "cookie", + "name": "VisitorID", + "required": false, + "schema": { + "default": "", + "type": "string" + } + }, + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "send-email", + "required": false, + "schema": { + "default": true, + "type": "boolean" + } + }, + { + "description": "If the IDP ID is provided then it is used instead of the one configured for the organization", + "in": "query", + "name": "idp-id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Creates a User in org", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org-name}/users/invitations": { + "get": { + "description": "List invitations in an org. (Org User Admin privileges required)", + "operationId": "listInvitationsForUserInOrg", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The page number of result", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "The page size of result", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "in": "query", + "name": "orderBy", + "required": false, + "schema": { + "enum": [ + "NAME_ASC", + "NAME_DESC" + ], + "type": "string" + } + }, + { + "description": "User Search Parameters", + "in": "query", + "name": "q", + "required": false, + "schema": { + "$ref": "#/components/schemas/SearchParams" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserInvitationListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List user invitations in an org.", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org-name}/users/invitations/{id}": { + "delete": { + "description": "Delete a specific invitation in an org. (Org User Admin privileges required)", + "operationId": "deleteUserInvitationInOrg", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "invitation ID", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Delete a specific invitation in an org.", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org-name}/users/invitations/{id}/resend-invitation-email": { + "get": { + "description": "Resend email of a specific invitation in an org (Org User Admin privileges required).", + "operationId": "resendUserInvitationEmailInOrg", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "invitation ID", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Resend email of a specific invitation in an org.", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org-name}/users/{id}": { + "delete": { + "description": "Remove User from org. (User Admin Privileges Required)", + "operationId": "removeUserFromOrg_1", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "If anonymize is true, then org owner permission is required.", + "in": "query", + "name": "anonymize", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Remove User from org", + "tags": [ + "Users Management" + ] + }, + "get": { + "description": "Get User details in org context", + "operationId": "getUserInOrg", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "If the IDP ID is provided then it is used instead of the one configured for the organization. If no IDP is configured for the organization, then IDP is guessed based on the email domain", + "in": "query", + "name": "idp-id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get User in org", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org-name}/users/{id}/add-role": { + "patch": { + "deprecated": true, + "description": "Add User Role in org.", + "operationId": "addUserRole", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Add User Role in org", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org-name}/users/{id}/invite": { + "get": { + "deprecated": true, + "description": "Create a new invitation and send email to a user. This is used when a previously sent invite email expired. (Org Admin privileges required)", + "operationId": "emailInviteToUser_1", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "send-email", + "required": false, + "schema": { + "default": true, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Create a new Invitation and send Email to User", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org-name}/users/{id}/remove-role": { + "delete": { + "deprecated": true, + "description": "Remove User Role in org (if the last role is removed, the user is removed from the org and org teams).", + "operationId": "removeUserRole", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Remove User Role in org", + "tags": [ + "Users Management" + ] + } + }, + "/v2/org/{org-name}/users/{id}/update-role": { + "patch": { + "deprecated": true, + "description": "Update User Role in org", + "operationId": "updateUserRole", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Update User Role in org", + "tags": [ + "Users Management" + ] + } + }, + "/v2/orgs": { + "get": { + "description": "List all organizations of the user", + "operationId": "listOrganizations_1", + "parameters": [ + { + "in": "query", + "name": "Filter using PEC ID", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "Filter using org name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "Filter using org display name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "Filter using org owner name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "Filter using org owner email", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "The page number of result", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "The page size of result", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List Organizations", + "tags": [ + "Orgs" + ] + } + }, + "/v2/orgs/{org-name}": { + "get": { + "description": "Get organization information", + "operationId": "getOrganization", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get Organization", + "tags": [ + "Orgs" + ] + }, + "patch": { + "description": "Update organization information", + "operationId": "updateOrganization", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgProfileUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Update Organization", + "tags": [ + "Orgs" + ] + } + }, + "/v2/ping": { + "head": { + "description": "A lightweight ping call (heartbeat). This would allow UI to show different overlays in case there is any problem with the subscription or if the user has not accepted TOU", + "operationId": "headPing", + "parameters": [ + { + "in": "query", + "name": "Org name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "Product name", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Head ping (heartbeat)", + "tags": [ + "Users Management" + ] + } + }, + "/v2/users/me": { + "get": { + "description": "What am I?", + "operationId": "whoAmI", + "parameters": [ + { + "in": "query", + "name": "org-name", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Who am I?", + "tags": [ + "Users Management" + ] + }, + "patch": { + "description": "Edit current user profile", + "operationId": "editUserProfile", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Edit current user profile", + "tags": [ + "Users Management" + ] + } + }, + "/v2/users/me/api-key": { + "post": { + "description": "Generate API Key", + "operationId": "generateUserApiKey", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserKeyResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Generate API Key", + "tags": [ + "Users Management" + ] + } + }, + "/v3/admin/org": { + "get": { + "description": "List all organizations. (SuperAdmin privileges required)", + "operationId": "listOrganizations", + "parameters": [ + { + "description": "The page number of result", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "The page size of result", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "int32", + "type": "integer" + } + }, + { + "description": "Org name to search", + "in": "query", + "name": "org-name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Org description to search", + "in": "query", + "name": "org-desc", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "Filter using org display name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "Filter using org owner name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "Filter using org owner email. Email should be base-64-encoded.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "Org Type to search", + "in": "query", + "name": "org-type", + "required": false, + "schema": { + "enum": [ + "UNKNOWN", + "CLOUD", + "ENTERPRISE", + "INDIVIDUAL" + ], + "type": "string" + } + }, + { + "description": "PEC ID to search", + "in": "query", + "name": "pec-id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "List Organizations and Proto Organizations", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v3/admin/org/{org-name}": { + "get": { + "description": "Get organization or proto organization info. (SuperAdmin privileges required)", + "operationId": "getOrg", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The list of fields to hide from the response", + "in": "query", + "name": "exclude-fields", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get Organization or Proto Organization", + "tags": [ + "Super Admin Org Controller" + ] + }, + "patch": { + "description": "Update org information and settings. Superadmin privileges required", + "operationId": "updateOrg", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Update Organization", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v3/admin/orgs": { + "post": { + "description": "OrgCreateRequest is used to create the organization or when no nca_id is provided upfront, the OrgCreateRequest is stored as proto org, and proto org flow initiates (SuperAdmin privileges required)", + "operationId": "createProtoOrganization", + "parameters": [ + { + "in": "cookie", + "name": "ncid", + "required": false, + "schema": { + "default": "", + "type": "string" + } + }, + { + "in": "cookie", + "name": "VisitorID", + "required": false, + "schema": { + "default": "", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgCreateRequestV3" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Creates organization from scratch or proto organization", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v3/admin/orgs/ncaIds": { + "post": { + "description": "Get Organization by NCA ID or Org Name. (SuperAdmin privileges required)", + "operationId": "getMapping", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgNcaMappingRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/OrgNcaMappingResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get Organization by NCA ID or Org Name", + "tags": [ + "Super Admin Org Controller" + ] + } + }, + "/v3/orgs": { + "post": { + "description": "Create a new organization based on the org info provided in the request.", + "operationId": "createOrganizationFromScratch", + "parameters": [ + { + "in": "cookie", + "name": "ncid", + "required": false, + "schema": { + "default": "", + "type": "string" + } + }, + { + "in": "cookie", + "name": "VisitorID", + "required": false, + "schema": { + "default": "", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgCreateRequestV3" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Create Organization from Scratch", + "tags": [ + "Orgs" + ] + } + }, + "/v3/orgs/proto-org": { + "post": { + "description": "Create a new organization based on the org info retrieved from the ProtoOrg.", + "operationId": "createOrganizationFromProtoOrg", + "parameters": [ + { + "in": "cookie", + "name": "ncid", + "required": false, + "schema": { + "default": "", + "type": "string" + } + }, + { + "in": "cookie", + "name": "VisitorID", + "required": false, + "schema": { + "default": "", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgCreateRequestV3" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Create Organization from ProtoOrg", + "tags": [ + "Orgs" + ] + } + }, + "/v3/orgs/proto-org/validate": { + "get": { + "description": "Validate org creation from proto org", + "operationId": "protoOrgInvitationValidate", + "parameters": [ + { + "description": "JWT that contains org owner email and proto org identifier", + "in": "query", + "name": "invitation_token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrgInvitationResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Validate org creation invite", + "tags": [ + "Orgs" + ] + } + }, + "/v3/orgs/{org-name}/teams/{team-name}/users/nca-invitations": { + "post": { + "description": "Invites and creates a User in team", + "operationId": "inviteUserToNcaInTeam", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserNcaInvitationRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Invite User to NCA (team version)", + "tags": [ + "Users Management" + ] + } + }, + "/v3/orgs/{org-name}/teams/{team-name}/users/{id}": { + "delete": { + "description": "Remove User from team.", + "operationId": "removeUserFromTeam", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "If anonymize is true, then org owner permission is required.", + "in": "query", + "name": "anonymize", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Remove User from team", + "tags": [ + "Users Management" + ] + } + }, + "/v3/orgs/{org-name}/teams/{team-name}/users/{user-email-or-id}": { + "get": { + "description": "Get info and role/invitation in a team by email or id", + "operationId": "listUserRolesInOrgTeam", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user-email-or-id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get user in a team by email or id.", + "tags": [ + "Users Management" + ] + } + }, + "/v3/orgs/{org-name}/teams/{team-name}/users/{user-email-or-id}/add-role": { + "patch": { + "description": "Invite if user does not exist, otherwise add role in team", + "operationId": "addRoleOrInviteUserToTeam", + "parameters": [ + { + "in": "cookie", + "name": "ncid", + "required": false, + "schema": { + "default": "", + "type": "string" + } + }, + { + "in": "cookie", + "name": "VisitorID", + "required": false, + "schema": { + "default": "", + "type": "string" + } + }, + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user-email-or-id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": true, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Invite user or add role in team", + "tags": [ + "Users Management" + ] + } + }, + "/v3/orgs/{org-name}/teams/{team-name}/users/{user-email-or-id}/remove-role": { + "delete": { + "description": "Remove role in team if user exists, otherwise remove invitation", + "operationId": "removeRoleOrInvitationInTeam", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user-email-or-id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Remove role or invitation in team", + "tags": [ + "Users Management" + ] + } + }, + "/v3/orgs/{org-name}/users/nca-invitations": { + "post": { + "description": "Invites and creates a User in org", + "operationId": "inviteUserToNcaInOrg", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserNcaInvitationRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Invite User to NCA (org version)", + "tags": [ + "Users Management" + ] + } + }, + "/v3/orgs/{org-name}/users/{id}": { + "delete": { + "description": "Remove User from org.", + "operationId": "removeUserFromOrg", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user id or b64encoded email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "If anonymize is true, then org owner permission is required.", + "in": "query", + "name": "anonymize", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Remove User from org", + "tags": [ + "Users Management" + ] + } + }, + "/v3/orgs/{org-name}/users/{user-email-or-id}": { + "get": { + "description": "Get info and role/invitation in an org by email or id", + "operationId": "listUserRolesInOrg", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user-email-or-id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get user in an org by email or id.", + "tags": [ + "Users Management" + ] + } + }, + "/v3/orgs/{org-name}/users/{user-email-or-id}/add-role": { + "patch": { + "description": "Invite if user does not exist, otherwise add role in org", + "operationId": "addRoleOrInviteUserToOrg", + "parameters": [ + { + "in": "cookie", + "name": "ncid", + "required": false, + "schema": { + "default": "", + "type": "string" + } + }, + { + "in": "cookie", + "name": "VisitorID", + "required": false, + "schema": { + "default": "", + "type": "string" + } + }, + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user-email-or-id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": true, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Invite user or add role in org", + "tags": [ + "Users Management" + ] + } + }, + "/v3/orgs/{org-name}/users/{user-email-or-id}/remove-role": { + "delete": { + "description": "Remove role in org if user exists, otherwise remove invitation", + "operationId": "removeRoleOrInvitationInOrg", + "parameters": [ + { + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "user-email-or-id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "roles", + "required": false, + "schema": { + "items": { + "type": "string" + }, + "type": "array" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Remove role or invitation in org", + "tags": [ + "Users Management" + ] + } + }, + "/version": { + "get": { + "description": "Used to get the latest version number of a given package.", + "operationId": "getLatestPackageVersion", + "parameters": [ + { + "description": "repository of package", + "in": "query", + "name": "repo", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "name of package", + "in": "query", + "name": "package", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVersionListResponse" + } + } + }, + "description": "OK" + }, + "302": { + "description": "Found" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unauthorized" + }, + "402": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Payment Required" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Method Not Allowed" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Object Exists" + }, + "415": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unsupported Media Type" + }, + "422": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Unprocessable Entity" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Too Many Requests" + }, + "451": { + "description": "Unavailable For Legal Reasons" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Internal Error" + }, + "501": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Not Implemented" + }, + "502": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Version Number", + "tags": [ + "Services" + ] + } + } + }, + "security": [ + { + "api-key": [] + }, + { + "bearer-token": [] + } + ], + "servers": [ + { + "url": "/" + } + ], + "tags": [ + { + "name": "Services" + }, + { + "name": "Orgs" + }, + { + "name": "Super Admin User Controller" + }, + { + "name": "Super Admin Org Controller" + }, + { + "description": "Team Operations", + "name": "Teams" + }, + { + "description": "Operation to manager users", + "name": "Users Management" + } + ] +} diff --git a/provider-dev/downloaded/ngc_models.json b/provider-dev/downloaded/ngc_models.json new file mode 100644 index 0000000..08f7faa --- /dev/null +++ b/provider-dev/downloaded/ngc_models.json @@ -0,0 +1,51711 @@ +{ + "components": { + "schemas": { + "AIPlaygroundCreateRequest": { + "description": "Request to create a new AI Playground config", + "properties": { + "artifactName": { + "description": "Unique name of the model", + "type": "string" + }, + "attributes": { + "description": "Metadata json string", + "type": "string" + }, + "nvcfFunctionId": { + "description": "NVCF function id for the model playground", + "type": "string" + }, + "nvcfInferencePath": { + "description": "NVCF inference path (invocation route) for the model playground", + "type": "string" + }, + "openAPISpec": { + "description": "OpenAPI specification for this model", + "type": "string" + } + }, + "required": [ + "artifactName", + "nvcfFunctionId" + ], + "type": "object" + }, + "AIPlaygroundResponse": { + "description": "Request to fetch an AI Playground config", + "properties": { + "artifactName": { + "description": "Unique name of the model", + "type": "string" + }, + "artifactType": { + "description": "ArtifactTypeEnum of the artifact", + "type": "string" + }, + "attributes": { + "description": "Metadata json string", + "type": "string" + }, + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "namespace": { + "description": "org/team of the model", + "type": "string" + }, + "nvcfFunctionId": { + "description": "NVCF function id for the model playground", + "type": "string" + }, + "nvcfInferencePath": { + "description": "NVCF inference path (invocation route) for the model playground", + "type": "string" + }, + "openAPISpec": { + "description": "OpenAPI specification for this model", + "type": "string" + }, + "updatedDate": { + "description": "Updated date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + } + }, + "type": "object" + }, + "AIPlaygroundUpdateRequest": { + "description": "Request to update an AI Playground config", + "properties": { + "attributes": { + "description": "Metadata json string", + "type": "string" + }, + "nvcfFunctionId": { + "description": "NVCF function id for the model playground", + "type": "string" + }, + "nvcfInferencePath": { + "description": "NVCF inference path (invocation route) for the model playground", + "type": "string" + }, + "openAPISpec": { + "description": "OpenAPI specification for this model", + "type": "string" + } + }, + "type": "object" + }, + "AcceptArtifactLicenseRequest": { + "description": "Request body to accept an org-scoped artifact license.", + "properties": { + "licenseId": { + "description": "License identifier to accept (must match a licenseId from the artifact's published licenseTerms).", + "example": "NVIDIA Proprietary", + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\s._+()/:'-]*$", + "type": "string" + }, + "licenseVersion": { + "description": "License version to accept (must match licenseVersion for that license on the artifact).", + "example": 1, + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\s._+()/:'-]*$", + "type": "string" + } + }, + "required": [ + "licenseId", + "licenseVersion" + ], + "type": "object" + }, + "Artifact": { + "description": "Artifact object", + "properties": { + "accessType": { + "enum": [ + "LISTED", + "EXCLUSIVE", + "NOT_LISTED" + ], + "type": "string" + }, + "artifactType": { + "description": "Artifact type", + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "type": "string" + }, + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "bias": { + "description": "Text describing bias in the artifact", + "type": "string" + }, + "builtBy": { + "description": "Organization that built the helm chart", + "type": "string" + }, + "canGuestDownload": { + "description": "Indicates if a guest user can download", + "type": "boolean" + }, + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "description": { + "description": "Description of the helm chart", + "type": "string" + }, + "displayName": { + "description": "Display name", + "type": "string" + }, + "encryptionKeyId": { + "description": "ID of the customer managed encryption key associated with this artifact", + "type": "string" + }, + "explainability": { + "description": "Text describing the explainability for this artifact", + "type": "string" + }, + "hasSignedVersion": { + "description": "Indicates if the artifact has any signed versions", + "type": "boolean" + }, + "isFavourite": { + "description": "Flag indicating if helm chart is user's favorite", + "type": "boolean" + }, + "isPublic": { + "description": "Determines if this helm chart is publicly accessible", + "type": "boolean" + }, + "isReadOnly": { + "description": "indicate if current user has read only permissions (deprecated)", + "type": "boolean" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "latestVersionId": { + "description": "ID of the latest version", + "type": "string" + }, + "latestVersionSizeInBytes": { + "description": "Size of the latest version in bytes", + "format": "int64", + "type": "integer" + }, + "licenseTerms": { + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "type": "string" + }, + "name": { + "description": "Unique name of the helm chart", + "type": "string" + }, + "orgName": { + "description": "Name of the org that the helm chart belongs to", + "type": "string" + }, + "ownerName": { + "description": "Name of the user who owns this version", + "type": "string" + }, + "policyLabels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "privacy": { + "description": "Text describing the privacy for this artifact", + "type": "string" + }, + "productNames": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "publisher": { + "description": "Organization that published this helm chart", + "type": "string" + }, + "safetyAndSecurity": { + "description": "Text for describing the safety and security in the artifact", + "type": "string" + }, + "shortDescription": { + "description": "Short description of the helm chart", + "type": "string" + }, + "teamName": { + "description": "Name of the team that the helm chart belongs to", + "type": "string" + }, + "updatedDate": { + "description": "Updated date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + } + }, + "type": "object" + }, + "ArtifactAttribute": { + "description": "Attribute on the artifact", + "properties": { + "key": { + "maxLength": 255, + "pattern": "[a-zA-Z0-9]+", + "type": "string" + }, + "value": { + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "ArtifactCatalogFlags": { + "description": "Artifact Catalog Flags object", + "properties": { + "canGuestDownload": { + "description": "Indicates if a guest user can download", + "type": "boolean" + }, + "isListedToPublic": { + "description": "Flag indicating if artifact is listed and searchable", + "type": "boolean" + }, + "isPublic": { + "description": "Determines if this artifact is publicly accessible", + "type": "boolean" + } + }, + "type": "object" + }, + "ArtifactCreateRequest": { + "description": "Properties for the artifact to create", + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "bias": { + "description": "Text describing bias in the model", + "maxLength": 128000, + "type": "string" + }, + "builtBy": { + "description": "organization that built the artifact", + "maxLength": 255, + "type": "string" + }, + "description": { + "description": "Description of the artifact", + "maxLength": 128000, + "type": "string" + }, + "displayName": { + "description": "Display name", + "maxLength": 128, + "minLength": 2, + "type": "string" + }, + "explainability": { + "description": "Text describing explainability for this model", + "maxLength": 128000, + "type": "string" + }, + "labels": { + "items": { + "maxLength": 255, + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "labelsV2": { + "items": { + "type": "string" + }, + "type": "array" + }, + "licenseTerms": { + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "maxLength": 255, + "type": "string" + }, + "name": { + "description": "Unique name of the artifact", + "maxLength": 250, + "minLength": 1, + "pattern": "^[a-z][a-z\\d._-]*$", + "type": "string" + }, + "privacy": { + "description": "Text describing the privacy for this model", + "maxLength": 128000, + "type": "string" + }, + "publisher": { + "description": "organization that published the artifact", + "maxLength": 255, + "type": "string" + }, + "safetyAndSecurity": { + "description": "Text for describing the safety and security in the model", + "maxLength": 128000, + "type": "string" + }, + "shortDescription": { + "description": "Short description of the artifact", + "maxLength": 255, + "type": "string" + } + }, + "required": [ + "name", + "shortDescription" + ], + "type": "object" + }, + "ArtifactDownloadAllResponse": { + "description": "Response body to download all files of an artifact", + "properties": { + "filepath": { + "items": { + "type": "string" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + }, + "sha256_base64": { + "items": { + "type": "string" + }, + "type": "array" + }, + "urls": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ArtifactDownloadResponse": { + "description": "Response body to download a single file of an artifact", + "properties": { + "filepath": { + "description": "The filepath of the artifact", + "type": "string" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + }, + "url": { + "description": "Presigned url for single file download", + "type": "string" + } + }, + "required": [ + "url" + ], + "type": "object" + }, + "ArtifactFileChecksumToValidate": { + "description": "Artifact file checksum object in request to validate artifact file checksum exists or not", + "properties": { + "sha256": { + "description": "Base64 encoded sha256 hash of the artifact file", + "type": "string" + } + }, + "required": [ + "sha256" + ], + "type": "object" + }, + "ArtifactFileChecksumValidated": { + "properties": { + "exists": { + "description": "Boolean to indicate whether sha256 exists or not", + "type": "boolean" + }, + "sha256": { + "description": "Base64 encoded sha256 hash of the artifact file", + "type": "string" + }, + "size": { + "description": "Size of the artifact file", + "format": "int64", + "type": "integer" + } + }, + "required": [ + "exists", + "sha256" + ], + "type": "object" + }, + "ArtifactFileCommitMetadata": { + "properties": { + "commitType": { + "enum": [ + "ADDITION", + "DELETION" + ], + "type": "string" + }, + "filePath": { + "description": "Artifact file path", + "type": "string" + }, + "sha256": { + "description": "Base64 encoded sha256 hash of the artifact file. Required for addition and not required for deletion", + "type": "string" + } + }, + "required": [ + "commitType", + "filePath" + ], + "type": "object" + }, + "ArtifactFilesChecksumExistsRequest": { + "description": "File checksums", + "properties": { + "files": { + "items": { + "$ref": "#/components/schemas/ArtifactFileChecksumToValidate" + }, + "type": "array" + } + }, + "type": "object" + }, + "ArtifactFilesChecksumExistsResponse": { + "description": "Request to check if file exists by checksum", + "properties": { + "files": { + "items": { + "$ref": "#/components/schemas/ArtifactFileChecksumValidated" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ArtifactFilesCommitRequest": { + "description": "Artifact files to be committed", + "properties": { + "artifactType": { + "description": "Artifact type - could be either model or resource", + "type": "string" + }, + "baseVersion": { + "description": "Artifact version that the commit is based on", + "type": "string" + }, + "files": { + "items": { + "$ref": "#/components/schemas/ArtifactFileCommitMetadata" + }, + "type": "array" + }, + "name": { + "description": "Artifact name", + "type": "string" + }, + "version": { + "description": "Artifact version", + "type": "string" + } + }, + "required": [ + "artifactType", + "name", + "version" + ], + "type": "object" + }, + "ArtifactItem": { + "description": "Artifact item with name and description", + "properties": { + "artifactType": { + "description": "Artifact type", + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "type": "string" + }, + "description": { + "description": "Description of the artifact", + "type": "string" + }, + "displayName": { + "description": "Display name of the artifact", + "type": "string" + }, + "name": { + "description": "Name of the artifact", + "type": "string" + } + }, + "required": [ + "description", + "name" + ], + "type": "object" + }, + "ArtifactListResponse": { + "description": "Response to list artifacts request", + "properties": { + "artifacts": { + "items": { + "$ref": "#/components/schemas/Artifact" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ArtifactPublishRequest": { + "description": "Request to publish an artifact", + "properties": { + "accessType": { + "enum": [ + "LISTED", + "EXCLUSIVE", + "NOT_LISTED" + ], + "type": "string" + }, + "canGuestPull": { + "type": "boolean" + }, + "canPublicList": { + "type": "boolean" + }, + "isPublic": { + "type": "boolean" + }, + "licenseTerms": { + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "type": "array" + }, + "productNames": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ArtifactResponse": { + "description": "Response to artifact request", + "properties": { + "artifact": { + "$ref": "#/components/schemas/Artifact", + "description": "Artifact object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ArtifactUpdateRequest": { + "description": "Properties for the artifact to update", + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "bias": { + "description": "Text describing bias in the model", + "type": "string" + }, + "builtBy": { + "description": "organization that built the artifact", + "maxLength": 255, + "type": "string" + }, + "description": { + "description": "Description of the artifact", + "type": "string" + }, + "displayName": { + "description": "Display name", + "maxLength": 128, + "minLength": 2, + "type": "string" + }, + "explainability": { + "description": "Text describing explainability for this model", + "type": "string" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "labelsV2": { + "items": { + "type": "string" + }, + "type": "array" + }, + "licenseTerms": { + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "maxLength": 255, + "type": "string" + }, + "privacy": { + "description": "Text describing the privacy for this model", + "type": "string" + }, + "publisher": { + "description": "organization that published the artifact", + "maxLength": 255, + "type": "string" + }, + "safetyAndSecurity": { + "description": "Text for describing the safety and security in the model", + "type": "string" + }, + "shortDescription": { + "description": "Short description of the artifact", + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "ArtifactVersion": { + "description": "Artifact version object", + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "createdByUser": { + "description": "Id of the user who created this version", + "type": "string" + }, + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "customMetrics": { + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "type": "array" + }, + "description": { + "description": "Description of the version", + "type": "string" + }, + "id": { + "description": "Unique ID of the version", + "type": "string" + }, + "isSigned": { + "description": "Indicates if the version is signed", + "type": "boolean" + }, + "malwareScanDate": { + "description": "Scan date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "malwareScanStatus": { + "description": "Malware scan status", + "enum": [ + "NOT_SCANNED", + "IN_PROGRESS", + "CLEAN", + "SUSPICIOUS", + "FAILED", + "MALICIOUS" + ], + "type": "string" + }, + "policy": { + "items": { + "type": "string" + }, + "type": "array" + }, + "releaseType": { + "description": "Release type enum for the artifact version in the product lifecycle.", + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "type": "string" + }, + "status": { + "description": "Version status", + "enum": [ + "UPLOAD_PENDING", + "UPLOAD_COMPLETE" + ], + "type": "string" + }, + "storageVersion": { + "description": "The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files.", + "type": "string" + }, + "totalFileCount": { + "description": "Total file count", + "format": "int64", + "type": "integer" + }, + "totalSizeInBytes": { + "description": "Total size of the version in bytes", + "format": "int64", + "type": "integer" + }, + "updatedDate": { + "description": "Updated date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + } + }, + "type": "object" + }, + "ArtifactVersionFileListResponse": { + "description": "Response to list files for artifact version request", + "properties": { + "artifact": { + "$ref": "#/components/schemas/Artifact", + "description": "Artifact object" + }, + "artifactFiles": { + "items": { + "$ref": "#/components/schemas/File" + }, + "type": "array" + }, + "artifactVersion": { + "$ref": "#/components/schemas/ArtifactVersion", + "description": "Artifact version object" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ArtifactVersionListResponse": { + "description": "Response to list artifact versions request", + "properties": { + "artifact": { + "$ref": "#/components/schemas/Artifact", + "description": "Artifact object" + }, + "artifactVersions": { + "items": { + "$ref": "#/components/schemas/ArtifactVersion" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ArtifactVersionResponse": { + "description": "Response to artifact version request", + "properties": { + "artifact": { + "$ref": "#/components/schemas/Artifact", + "description": "Artifact object" + }, + "artifactVersion": { + "$ref": "#/components/schemas/ArtifactVersion", + "description": "Artifact version object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ArtifactVersionUpdateRequest": { + "description": "Version properties to update", + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "description": { + "description": "Description of the artifact version", + "maxLength": 255, + "type": "string" + }, + "status": { + "description": "Version status", + "enum": [ + "UPLOAD_PENDING", + "UPLOAD_COMPLETE" + ], + "type": "string" + } + }, + "type": "object" + }, + "AsyncCloneArtifactVersionFilesRequest": { + "description": "Request to asynchronously clone artifact version files. Artifact type, target artifact name, version, org, and team are provided via URL path parameters.", + "properties": { + "sourceArtifact": { + "$ref": "#/components/schemas/CloneableArtifact", + "description": "Cloneable Artifact Parameters object" + }, + "uploadPending": { + "description": "Allow the cloned model version to continue to be updated with files. A follow up commit is needed to update status to 'Upload Complete'.", + "type": "boolean" + } + }, + "required": [ + "sourceArtifact" + ], + "type": "object" + }, + "CloneArtifactFilesStatusResponse": { + "description": "Progress of cloning artifact version files", + "properties": { + "filesCopied": { + "description": "Number of files copied", + "format": "int64", + "type": "integer" + }, + "percentageCloned": { + "description": "Percentage of files cloned", + "format": "double", + "type": "number" + }, + "sizeCopied": { + "description": "Combined file size copied", + "format": "int64", + "type": "integer" + }, + "totalFiles": { + "description": "Total files at source", + "format": "int64", + "type": "integer" + }, + "totalSize": { + "description": "Combined file size at source", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "CloneArtifactVersionFilesRequest": { + "description": "Request to clone artifact version files", + "properties": { + "artifactType": { + "description": "Artifact type", + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "type": "string" + }, + "sourceArtifact": { + "$ref": "#/components/schemas/CloneableArtifact", + "description": "Cloneable Artifact Parameters object" + }, + "targetArtifact": { + "$ref": "#/components/schemas/CloneableArtifact", + "description": "Cloneable Artifact Parameters object" + }, + "uploadPending": { + "description": "Allow the cloned model version to continue to be updated with files. A follow up commit is needed to update status to 'Upload Complete'.", + "type": "boolean" + } + }, + "required": [ + "artifactType", + "sourceArtifact", + "targetArtifact" + ], + "type": "object" + }, + "CloneStatus": { + "description": "Progress of cloning artifact version files", + "properties": { + "filesCopied": { + "description": "Number of files copied", + "format": "int64", + "type": "integer" + }, + "internalCheckpointStateCleanup": { + "description": "Internal-only: When the async clone workflow is completed, this field shows if the internal checkpoint files were successfully cleaned up in the storage - CLEAN if no objects remain (cleanup succeeded or unused), NOT_EMPTY if objects remain, ERROR if verification could not be performed. Omitted when not applicable.", + "enum": [ + "CLEAN", + "NOT_EMPTY", + "ERROR" + ], + "type": "string" + }, + "percentageFilesCloned": { + "description": "Percentage of files cloned", + "format": "double", + "type": "number" + }, + "sizeCopied": { + "description": "Combined file size copied", + "format": "int64", + "type": "integer" + }, + "totalFiles": { + "description": "Total files at source", + "format": "int64", + "type": "integer" + }, + "totalSize": { + "description": "Combined file size at source", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "CloneableArtifact": { + "description": "Cloneable Artifact Parameters object", + "properties": { + "name": { + "description": "Unique name of the artifact", + "type": "string" + }, + "org": { + "description": "Name of the org that the artifact belongs to", + "type": "string" + }, + "team": { + "description": "Name of the team that the artifact belongs to", + "type": "string" + }, + "version": { + "description": "ID of the version or tag", + "type": "string" + } + }, + "required": [ + "name", + "org", + "version" + ], + "type": "object" + }, + "CloudServiceProvider": { + "description": "Cloud Service Provider object", + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "description": { + "description": "Description of the Cloud Service Provider", + "type": "string" + }, + "displayName": { + "description": "Display name of the Cloud Service Provider", + "type": "string" + }, + "isDeployable": { + "description": "Determines if this Cloud Service Provider can be used to deploy artifacts", + "type": "boolean" + }, + "isEnabled": { + "description": "Determines if this Cloud Service Provider is enabled", + "type": "boolean" + }, + "labels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "type": "string" + }, + "name": { + "description": "Unique name of the Cloud Service Provider", + "type": "string" + }, + "updatedDate": { + "description": "Updated date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "CloudServiceProviderCreateRequest": { + "description": "Request to create a new Cloud Service Provider", + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "description": { + "description": "Description of the Cloud Service Provider", + "type": "string" + }, + "displayName": { + "description": "Display name of the Cloud Service Provider", + "type": "string" + }, + "isEnabled": { + "description": "Determines if this Cloud Service Provider is enabled", + "type": "boolean" + }, + "labels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "type": "string" + }, + "name": { + "description": "Unique name of the Cloud Service Provider", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "CloudServiceProviderListResponse": { + "description": "Response to list Cloud Service Providers request", + "properties": { + "cloudServiceProviders": { + "items": { + "$ref": "#/components/schemas/CloudServiceProvider" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "CloudServiceProviderUpdateRequest": { + "description": "Request to update existing Cloud Service Provider", + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "description": { + "description": "Description of the Cloud Service Provider", + "type": "string" + }, + "displayName": { + "description": "Display name of the Cloud Service Provider", + "type": "string" + }, + "isEnabled": { + "description": "Determines if this Cloud Service Provider is enabled", + "type": "boolean" + }, + "labels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "type": "string" + } + }, + "type": "object" + }, + "Collection": { + "description": "Collection object", + "properties": { + "accessType": { + "enum": [ + "LISTED", + "EXCLUSIVE", + "NOT_LISTED" + ], + "type": "string" + }, + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "builtBy": { + "description": "Organization that built the collection", + "type": "string" + }, + "canGuestDownload": { + "description": "Indicates if a guest user can download", + "type": "boolean" + }, + "category": { + "enum": [ + "HEALTHCARE", + "SMART_CITIES", + "RETAIL", + "MANUFACTURING", + "SUPERCOMPUTING", + "ROBOTICS", + "AUTOMOTIVE", + "TELECOMMUNICATIONS", + "FINANCE", + "OIL_AND_GAS", + "NATURAL_LANGUAGE_PROCESSING", + "AUTOMATIC_SPEECH_RECOGNITION", + "INTELLIGENT_VIDEO_ANALYTICS", + "OBJECT_DETECTION", + "IMAGE_CLASSIFICATION", + "ANNOTATION", + "IMAGE_SYNTHESIS", + "MACHINE_LEARNING", + "DEEP_LEARNING", + "INFRASTRUCTURE", + "HIGH_PERFORMANCE_COMPUTING", + "WINDOWS_RTX_ACCELERATED_MODELS", + "BEGINNER", + "ADVANCED" + ], + "type": "string" + }, + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "description": { + "description": "Description of the collection", + "type": "string" + }, + "displayName": { + "description": "Display name", + "type": "string" + }, + "isPublic": { + "description": "Determines if this collection is publicly accessible", + "type": "boolean" + }, + "isReadOnly": { + "description": "indicate if current user has read only permissions (deprecated)", + "type": "boolean" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "type": "string" + }, + "name": { + "description": "Unique name of the collection", + "type": "string" + }, + "orgName": { + "description": "Name of the org that the collection belongs to", + "type": "string" + }, + "ownerName": { + "description": "Name of the user who owns this version", + "type": "string" + }, + "policyLabels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "productNames": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "publisher": { + "description": "Organization that published this collection", + "type": "string" + }, + "shortDescription": { + "description": "Short description of the collection", + "type": "string" + }, + "size": { + "description": "Total count of collection items", + "format": "int64", + "type": "integer" + }, + "teamName": { + "description": "Name of the team that the collection belongs to", + "type": "string" + }, + "updatedDate": { + "description": "Updated date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + } + }, + "required": [ + "category" + ], + "type": "object" + }, + "CollectionCreateRequest": { + "description": "Properties for the collections to be created", + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "builtBy": { + "description": "organization that built the collection", + "type": "string" + }, + "category": { + "enum": [ + "HEALTHCARE", + "SMART_CITIES", + "RETAIL", + "MANUFACTURING", + "SUPERCOMPUTING", + "ROBOTICS", + "AUTOMOTIVE", + "TELECOMMUNICATIONS", + "FINANCE", + "OIL_AND_GAS", + "NATURAL_LANGUAGE_PROCESSING", + "AUTOMATIC_SPEECH_RECOGNITION", + "INTELLIGENT_VIDEO_ANALYTICS", + "OBJECT_DETECTION", + "IMAGE_CLASSIFICATION", + "ANNOTATION", + "IMAGE_SYNTHESIS", + "MACHINE_LEARNING", + "DEEP_LEARNING", + "INFRASTRUCTURE", + "HIGH_PERFORMANCE_COMPUTING", + "WINDOWS_RTX_ACCELERATED_MODELS", + "BEGINNER", + "ADVANCED" + ], + "type": "string" + }, + "description": { + "description": "Description of the collection", + "type": "string" + }, + "displayName": { + "description": "Display name", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "labelsV2": { + "items": { + "type": "string" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "maxLength": 255, + "type": "string" + }, + "name": { + "description": "Unique name of the collection", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-z][a-z\\d._-]*$", + "type": "string" + }, + "ownerName": { + "description": "Name of the user who owns this collection", + "maxLength": 255, + "type": "string" + }, + "publisher": { + "description": "organization that published the collection", + "maxLength": 255, + "type": "string" + }, + "shortDescription": { + "description": "Short description of the collection", + "maxLength": 255, + "type": "string" + } + }, + "required": [ + "category", + "name", + "shortDescription" + ], + "type": "object" + }, + "CollectionListResponse": { + "description": "Response to list collections request", + "properties": { + "collections": { + "items": { + "$ref": "#/components/schemas/Collection" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "CollectionOperation": { + "description": "Collection operation object", + "properties": { + "operation": { + "description": "Collection operation", + "maxLength": 255, + "type": "string" + }, + "path": { + "description": "Path to a collection item in a scoped format", + "maxLength": 255, + "pattern": "^(/(?!/)([\\w- %\\.(?!\\.)])+)+$", + "type": "string" + } + }, + "type": "object" + }, + "CollectionPatchRequest": { + "description": "Properties for the collection to patch", + "properties": { + "operations": { + "items": { + "$ref": "#/components/schemas/CollectionOperation", + "maxItems": 100 + }, + "maxItems": 100, + "type": "array" + } + }, + "type": "object" + }, + "CollectionPublishRequest": { + "description": "Request to publish a collection", + "properties": { + "accessType": { + "enum": [ + "LISTED", + "EXCLUSIVE", + "NOT_LISTED" + ], + "type": "string" + }, + "canGuestPull": { + "type": "boolean" + }, + "canPublicList": { + "type": "boolean" + }, + "isPublic": { + "type": "boolean" + }, + "productNames": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CollectionResponse": { + "description": "Response to create collection request", + "properties": { + "collection": { + "$ref": "#/components/schemas/Collection", + "description": "Collection object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "CollectionUpdateRequest": { + "description": "Properties for the collection to update", + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "builtBy": { + "description": "organization that built the collection", + "type": "string" + }, + "category": { + "enum": [ + "HEALTHCARE", + "SMART_CITIES", + "RETAIL", + "MANUFACTURING", + "SUPERCOMPUTING", + "ROBOTICS", + "AUTOMOTIVE", + "TELECOMMUNICATIONS", + "FINANCE", + "OIL_AND_GAS", + "NATURAL_LANGUAGE_PROCESSING", + "AUTOMATIC_SPEECH_RECOGNITION", + "INTELLIGENT_VIDEO_ANALYTICS", + "OBJECT_DETECTION", + "IMAGE_CLASSIFICATION", + "ANNOTATION", + "IMAGE_SYNTHESIS", + "MACHINE_LEARNING", + "DEEP_LEARNING", + "INFRASTRUCTURE", + "HIGH_PERFORMANCE_COMPUTING", + "WINDOWS_RTX_ACCELERATED_MODELS", + "BEGINNER", + "ADVANCED" + ], + "type": "string" + }, + "description": { + "description": "Description of the collection", + "type": "string" + }, + "displayName": { + "description": "Display name", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "labelsV2": { + "items": { + "type": "string" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "maxLength": 255, + "type": "string" + }, + "ownerName": { + "description": "Name of the user who owns this collection", + "maxLength": 255, + "type": "string" + }, + "publisher": { + "description": "organization that published the collection", + "maxLength": 255, + "type": "string" + }, + "shortDescription": { + "description": "Short description of the collection", + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "ConfiguredLicenseTerm": { + "description": "License information for the artifact", + "properties": { + "artifactType": { + "description": "Artifact type", + "example": "model", + "maxLength": 15, + "pattern": "^[\\s\\S]*$", + "type": "string" + }, + "generatedHtml": { + "description": "Generated html", + "example": "<p><strong>GOVERNING HOSTING TERMS:</strong> ...</p>", + "maxLength": 9999, + "pattern": "^[\\s\\S]*$", + "type": "string" + }, + "tags": { + "items": { + "$ref": "#/components/schemas/LicenseTag" + }, + "type": "array" + } + }, + "type": "object" + }, + "ConfiguredLicenseTerms": { + "description": "License information for the artifact", + "properties": { + "download": { + "$ref": "#/components/schemas/ConfiguredLicenseTerm", + "description": "License information for the artifact" + }, + "hosting": { + "$ref": "#/components/schemas/ConfiguredLicenseTerm", + "description": "License information for the artifact" + } + }, + "type": "object" + }, + "CountableResource": { + "description": "Countable Resource object", + "properties": { + "defaultValue": { + "description": "Deprecated: Default value. Please use actual CloudServiceProvider values instead", + "format": "int64", + "type": "integer" + }, + "maxValue": { + "description": "Maximum value", + "format": "int64", + "type": "integer" + }, + "minValue": { + "description": "Minimum value", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "CustomMetric": { + "description": "Custom metrics", + "properties": { + "key": { + "maxLength": 255, + "type": "string" + }, + "value": { + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "CustomMetricGroup": { + "description": "Defines the group of custom metrics.", + "properties": { + "attributes": { + "items": { + "$ref": "#/components/schemas/CustomMetric" + }, + "type": "array" + }, + "name": { + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "Dataset": { + "properties": { + "license": { + "description": "License of the dataset", + "maxLength": 255, + "type": "string" + }, + "link": { + "description": "Link to the dataset", + "maxLength": 255, + "type": "string" + }, + "name": { + "description": "Name of the dataset", + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "DeploymentArtifactParameters": { + "description": "Deployment Artifact Parameters object", + "properties": { + "artifactType": { + "description": "Artifact type", + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "type": "string" + }, + "displayName": { + "description": "Display name of the artifact", + "type": "string" + }, + "filePath": { + "description": "Path to a file in an artifact version", + "type": "string" + }, + "name": { + "description": "Unique name of the artifact", + "type": "string" + }, + "orgName": { + "description": "Name of the org that the artifact belongs to", + "type": "string" + }, + "teamName": { + "description": "Name of the team that the artifact belongs to", + "type": "string" + }, + "versionId": { + "description": "ID of the version or tag", + "type": "string" + } + }, + "required": [ + "name", + "orgName" + ], + "type": "object" + }, + "DeploymentCpuParameters": { + "description": "Deployment CPU Parameters object", + "properties": { + "count": { + "description": "Total count of CPUs", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentCpuParametersMeta": { + "description": "Cloud Service Provider Deployment CPU Parameters object", + "properties": { + "count": { + "$ref": "#/components/schemas/CountableResource", + "description": "Countable Resource object" + } + }, + "required": [ + "count" + ], + "type": "object" + }, + "DeploymentGpuParameters": { + "description": "Deployment GPU Parameters object", + "properties": { + "count": { + "description": "Total count of GPUs", + "format": "int64", + "type": "integer" + }, + "type": { + "description": "GPU Type", + "type": "string" + } + }, + "type": "object" + }, + "DeploymentGpuParametersMeta": { + "description": "Cloud Service Provider Deployment GPU Parameters object", + "properties": { + "count": { + "$ref": "#/components/schemas/CountableResource", + "description": "Countable Resource object" + }, + "type": { + "$ref": "#/components/schemas/EnumerableResource", + "description": "Enumerable Resource object" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "DeploymentMemoryParameters": { + "description": "Deployment Memory Parameters object", + "properties": { + "capacityInGB": { + "description": "Capacity in GB", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentMemoryParametersMeta": { + "description": "Cloud Service Provider Deployment Memory Parameters object", + "properties": { + "capacityInGB": { + "$ref": "#/components/schemas/CountableResource", + "description": "Countable Resource object" + } + }, + "required": [ + "capacityInGB" + ], + "type": "object" + }, + "DeploymentParameters": { + "description": "Deployment Artifact Parameters object", + "properties": { + "container": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParameters", + "description": "Deployment CPU Parameters object" + }, + "csp": { + "description": "Cloud Service Provider name", + "type": "string" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParameters", + "description": "Deployment GPU Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParameters", + "description": "Deployment Memory Parameters object" + }, + "model": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "resource": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParameters", + "description": "Deployment Storage Parameters object" + } + }, + "type": "object" + }, + "DeploymentParametersCreateRequest": { + "description": "Request to create a new deployment parameters", + "properties": { + "container": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParameters", + "description": "Deployment CPU Parameters object" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParameters", + "description": "Deployment GPU Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParameters", + "description": "Deployment Memory Parameters object" + }, + "model": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "resource": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParameters", + "description": "Deployment Storage Parameters object" + } + }, + "type": "object" + }, + "DeploymentParametersListResponse": { + "description": "Response to list deployment parameters request", + "properties": { + "artifact": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "csp": { + "description": "Cloud Service Provider name", + "type": "string" + }, + "deploymentParameters": { + "items": { + "$ref": "#/components/schemas/DeploymentParameters" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "DeploymentParametersMeta": { + "description": "Cloud Service Provider Deployment Parameters object", + "properties": { + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParametersMeta", + "description": "Cloud Service Provider Deployment CPU Parameters object" + }, + "csp": { + "description": "Cloud Service Provider name", + "type": "string" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParametersMeta", + "description": "Cloud Service Provider Deployment GPU Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParametersMeta", + "description": "Cloud Service Provider Deployment Memory Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParametersMeta", + "description": "Cloud Service Provider Deployment Storage Parameters object" + } + }, + "type": "object" + }, + "DeploymentParametersMetaCreateRequest": { + "description": "Properties for the cloud service provider deployment parameters meta to create", + "properties": { + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParametersMeta", + "description": "Cloud Service Provider Deployment CPU Parameters object" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParametersMeta", + "description": "Cloud Service Provider Deployment GPU Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParametersMeta", + "description": "Cloud Service Provider Deployment Memory Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParametersMeta", + "description": "Cloud Service Provider Deployment Storage Parameters object" + } + }, + "required": [ + "gpu", + "storage" + ], + "type": "object" + }, + "DeploymentParametersMetaUpdateRequest": { + "description": "Properties for the cloud service provider deployment parameters meta to create", + "properties": { + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParametersMeta", + "description": "Cloud Service Provider Deployment CPU Parameters object" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParametersMeta", + "description": "Cloud Service Provider Deployment GPU Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParametersMeta", + "description": "Cloud Service Provider Deployment Memory Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParametersMeta", + "description": "Cloud Service Provider Deployment Storage Parameters object" + } + }, + "type": "object" + }, + "DeploymentParametersUpdateRequest": { + "description": "Request to update existing deployment parameters", + "properties": { + "container": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParameters", + "description": "Deployment CPU Parameters object" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParameters", + "description": "Deployment GPU Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParameters", + "description": "Deployment Memory Parameters object" + }, + "model": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "resource": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParameters", + "description": "Deployment Storage Parameters object" + } + }, + "type": "object" + }, + "DeploymentStorageParameters": { + "description": "Deployment Storage Parameters object", + "properties": { + "capacityInGB": { + "description": "Capacity in GB", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "DeploymentStorageParametersMeta": { + "description": "Cloud Service Provider Deployment Storage Parameters object", + "properties": { + "capacityInGB": { + "$ref": "#/components/schemas/CountableResource", + "description": "Countable Resource object" + } + }, + "required": [ + "capacityInGB" + ], + "type": "object" + }, + "DeploymentUrlCreateRequest": { + "description": "Request to create a new deployment url", + "properties": { + "container": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParameters", + "description": "Deployment CPU Parameters object" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParameters", + "description": "Deployment GPU Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParameters", + "description": "Deployment Memory Parameters object" + }, + "model": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "resource": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "description": "Deployment Artifact Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParameters", + "description": "Deployment Storage Parameters object" + } + }, + "type": "object" + }, + "DeploymentUrlResponse": { + "description": "Response to create a new deployment url", + "properties": { + "csp": { + "description": "Cloud Service Provider name", + "type": "string" + }, + "deploymentParameters": { + "$ref": "#/components/schemas/DeploymentParameters", + "description": "Deployment Artifact Parameters object" + }, + "deploymentUrl": { + "description": "Deployment URL", + "type": "string" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "EncryptionKey": { + "description": "Customer Managed Key shard configuration for the model", + "properties": { + "description": { + "description": "Description for a new customer key shard", + "type": "string" + }, + "encryptionKeyId": { + "description": "ID of the existing customer key shard to use", + "type": "string" + }, + "useExistingKey": { + "description": "Whether to use an existing customer key shard or should a new one be created", + "type": "boolean" + } + }, + "required": [ + "useExistingKey" + ], + "type": "object" + }, + "EnumerableResource": { + "description": "Enumerable Resource object", + "properties": { + "defaultItemName": { + "description": "Deprecated: Default item name. Please use actual CloudServiceProvider values instead", + "type": "string" + }, + "items": { + "items": { + "$ref": "#/components/schemas/EnumerableResourceItem" + }, + "type": "array" + } + }, + "type": "object" + }, + "EnumerableResourceItem": { + "description": "Enumerable Resource Item object", + "properties": { + "displayName": { + "description": "Display name", + "type": "string" + }, + "logo": { + "description": "Logo URL", + "type": "string" + }, + "name": { + "description": "Name", + "type": "string" + } + }, + "type": "object" + }, + "File": { + "description": "File object", + "properties": { + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "description": { + "description": "Description of the file", + "type": "string" + }, + "path": { + "description": "Relative file path from the root of the object", + "maxLength": 1023, + "minLength": 1, + "type": "string" + }, + "sizeInBytes": { + "description": "Size of the file in bytes", + "format": "int64", + "minimum": 0, + "type": "integer" + }, + "updatedDate": { + "description": "Updated date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + } + }, + "type": "object" + }, + "GpuByPciCreateRequest": { + "description": "GPU by PCI properties", + "properties": { + "cudaMajorVersion": { + "description": "CUDA major version", + "type": "string" + }, + "cudaMinorVersion": { + "description": "CUDA minor version", + "type": "string" + }, + "displayName": { + "description": "Display name for the GPU", + "type": "string" + }, + "formFactor": { + "description": "GPU form factor", + "type": "string" + }, + "gpuCounts": { + "items": { + "format": "int32", + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "type": "array", + "uniqueItems": true + }, + "labelName": { + "description": "Label name for the GPU", + "type": "string" + }, + "memorySizeGb": { + "description": "Memory size in GB (smallint range)", + "format": "int32", + "maximum": 32767, + "minimum": 0, + "type": "integer" + }, + "pciDeviceId": { + "description": "PCI Device ID", + "type": "string" + }, + "pciSubsystemDeviceId": { + "description": "PCI Subsystem Device ID", + "type": "string" + }, + "pciVendorId": { + "description": "PCI Vendor ID", + "type": "string" + } + }, + "required": [ + "displayName", + "pciDeviceId" + ], + "type": "object" + }, + "GpuByPciResponse": { + "description": "Response for GPU by PCI ID lookup", + "properties": { + "createdAt": { + "description": "Creation timestamp", + "format": "date-time", + "type": "string" + }, + "cudaMajorVersion": { + "description": "CUDA major version", + "type": "string" + }, + "cudaMinorVersion": { + "description": "CUDA minor version", + "type": "string" + }, + "displayName": { + "description": "Display name for the GPU", + "type": "string" + }, + "formFactor": { + "description": "GPU form factor", + "type": "string" + }, + "gpuCounts": { + "items": { + "format": "int32", + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "type": "array", + "uniqueItems": true + }, + "labelName": { + "description": "Label name for the GPU", + "type": "string" + }, + "memorySizeGb": { + "description": "Memory size in GB (smallint range)", + "format": "int32", + "maximum": 32767, + "minimum": 0, + "type": "integer" + }, + "pciDeviceId": { + "description": "PCI Device ID", + "type": "string" + }, + "pciSubsystemDeviceId": { + "description": "PCI Subsystem Device ID", + "type": "string" + }, + "pciVendorId": { + "description": "PCI Vendor ID", + "type": "string" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + }, + "updatedAt": { + "description": "Last update timestamp", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "displayName", + "pciDeviceId" + ], + "type": "object" + }, + "GpuByPciUpdateRequest": { + "description": "GPU by PCI update properties", + "properties": { + "cudaMajorVersion": { + "description": "CUDA major version", + "type": "string" + }, + "cudaMinorVersion": { + "description": "CUDA minor version", + "type": "string" + }, + "displayName": { + "description": "Display name for the GPU", + "type": "string" + }, + "formFactor": { + "description": "GPU form factor", + "type": "string" + }, + "gpuCounts": { + "items": { + "format": "int32", + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "type": "array", + "uniqueItems": true + }, + "labelName": { + "description": "Label name for the GPU", + "type": "string" + }, + "memorySizeGb": { + "description": "Memory size in GB (smallint range)", + "format": "int32", + "maximum": 32767, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "Health": { + "description": "object that describes health of the service", + "properties": { + "healthCode": { + "description": "Enum that describes health of the service", + "enum": [ + "UNKNOWN", + "OK", + "UNDER_MAINTENANCE", + "WARNING", + "FAILED" + ], + "type": "string" + }, + "healthCodeDescription": { + "description": "Human readable description", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "metaData": { + "items": { + "$ref": "#/components/schemas/MetaData" + }, + "type": "array" + } + }, + "type": "object" + }, + "HealthResponse": { + "description": "This API is invoked by monitoring tools, other services and infrastructure to retrieve health status the targeted service, this is unprotected method", + "properties": { + "health": { + "$ref": "#/components/schemas/Health", + "description": "object that describes health of the service" + } + }, + "type": "object" + }, + "KaizenHealthStatus": { + "properties": { + "status": { + "type": "string" + } + }, + "type": "object" + }, + "KeyArtifactListResponse": { + "description": "Response containing a list of artifacts associated with a key", + "properties": { + "artifacts": { + "items": { + "$ref": "#/components/schemas/ArtifactItem" + }, + "type": "array" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "KeyItem": { + "description": "Key item with ID and create timestamp string", + "properties": { + "created": { + "description": "The creation timestamp of the key item in ISO-8601 format. Format: YYYY-MM-DDTHH:mm:ss.sssZ.", + "example": "2025-04-19T22:30:00.123Z", + "format": "regex", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "description": { + "description": "Description of the encryption key", + "maxLength": 255, + "type": "string" + }, + "encryptionKeyId": { + "description": "The encryption key identifier in UUID format.", + "example": "196afcf4-d6c8-4116-aa25-34a718a14f43", + "format": "regex", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", + "type": "string" + } + }, + "required": [ + "created", + "encryptionKeyId" + ], + "type": "object" + }, + "KeyListResponse": { + "description": "Response to list keys request", + "properties": { + "encryptionKeys": { + "items": { + "$ref": "#/components/schemas/KeyItem" + }, + "type": "array" + } + }, + "type": "object" + }, + "LicenseMetadata": { + "description": "License information for the artifact", + "properties": { + "configuredLicenseTerms": { + "$ref": "#/components/schemas/ConfiguredLicenseTerms", + "description": "License information for the artifact" + }, + "governingTerms": { + "description": "Comprehensive terms and links related to the license", + "example": "<p><strong>GOVERNING HOSTING TERMS:</strong> Use of the model is governed by the <a href='...'>NVIDIA Open Model Agreement</a>.</p>", + "maxLength": 1000, + "pattern": "^[\\s\\S]*$", + "type": "string" + }, + "licenseId": { + "description": "License ID", + "example": "NVIDIA proprietary", + "maxLength": 100, + "pattern": "^[\\s\\S]*$", + "type": "string" + }, + "licenseVersion": { + "description": "License version ID", + "example": "v1.0", + "maxLength": 100, + "pattern": "^[\\s\\S]*$", + "type": "string" + }, + "needsAcceptance": { + "description": "Indicator if user needs to accept this license", + "type": "boolean" + } + }, + "required": [ + "governingTerms", + "licenseId", + "licenseVersion" + ], + "type": "object" + }, + "LicenseTag": { + "description": "License tag information for individual term", + "properties": { + "category": { + "description": "Category of the tag", + "example": "terms", + "maxLength": 100, + "pattern": "^[\\s\\S]*$", + "type": "string" + }, + "key": { + "description": "Key identifier for the tag", + "example": "nv-open-model", + "maxLength": 100, + "pattern": "^[\\s\\S]*$", + "type": "string" + }, + "label": { + "description": "License Label", + "example": "NVIDIA Open Model Agreement", + "maxLength": 100, + "pattern": "^[\\s\\S]*$", + "type": "string" + }, + "tag": { + "description": "License tag name", + "example": "Model Agreement", + "maxLength": 100, + "pattern": "^[\\s\\S]*$", + "type": "string" + }, + "url": { + "description": "Link to the hosted license", + "example": "https://www.nvidia.com/.../nvidia-open-model-agreement/", + "maxLength": 1000, + "pattern": "^[\\s\\S]*$", + "type": "string" + } + }, + "type": "object" + }, + "MalwareScanNotification": { + "properties": { + "contact": { + "type": "string" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "nspect_id": { + "type": "string" + }, + "tenant": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "type": "object" + }, + "MetaData": { + "properties": { + "key": { + "maxLength": 255, + "type": "string" + }, + "value": { + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "Model": { + "description": "Model object", + "properties": { + "accessType": { + "enum": [ + "LISTED", + "EXCLUSIVE", + "NOT_LISTED" + ], + "type": "string" + }, + "application": { + "description": "Application of the model", + "type": "string" + }, + "bias": { + "description": "Text describing bias in the model", + "type": "string" + }, + "builtBy": { + "description": "organization that built the repository", + "type": "string" + }, + "canGuestDownload": { + "description": "Indicates if a guest user can download", + "type": "boolean" + }, + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "description": { + "description": "Description of the model", + "type": "string" + }, + "displayName": { + "description": "Display name", + "type": "string" + }, + "encryptionKeyId": { + "description": "ID of the customer managed encryption key associated with this artifact", + "type": "string" + }, + "explainability": { + "description": "Text describing explainability for this model", + "type": "string" + }, + "framework": { + "description": "Framework used to train this model", + "type": "string" + }, + "hasPlayground": { + "description": "indicate if the Model has AI Playground configured", + "type": "boolean" + }, + "hasSignedVersion": { + "description": "Indicates if the model has any signed versions", + "type": "boolean" + }, + "isFavourite": { + "description": "Flag indicating if model is user's favorite", + "type": "boolean" + }, + "isPlaygroundEnabled": { + "description": "indicate if AI Playground is enabled in the catalog", + "type": "boolean" + }, + "isPublic": { + "description": "Determines if model is publicly accessible", + "type": "boolean" + }, + "isReadOnly": { + "description": "indicate if current user has read only permissions (deprecated)", + "type": "boolean" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "latestVersionGpuModel": { + "description": "GPU model and memory used for the latest version", + "type": "string" + }, + "latestVersionId": { + "description": "Deprecated: Please use latestVersionIdStr instead. ID of the latest version", + "format": "int64", + "type": "integer" + }, + "latestVersionIdStr": { + "description": "ID of the latest version", + "type": "string" + }, + "latestVersionSizeInBytes": { + "description": "Size of the latest version in bytes", + "format": "int64", + "type": "integer" + }, + "licenseTerms": { + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "type": "string" + }, + "modelFormat": { + "description": "Format of the model", + "type": "string" + }, + "name": { + "description": "Unique name of the model", + "type": "string" + }, + "orgName": { + "description": "Name of the org that the model belongs to", + "type": "string" + }, + "ownerName": { + "description": "Name of model's owner", + "type": "string" + }, + "policyLabels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "precision": { + "description": "Precision this model was trained with", + "type": "string" + }, + "privacy": { + "description": "Text describing the privacy for this model", + "type": "string" + }, + "productNames": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "publicDatasetUsed": { + "$ref": "#/components/schemas/Dataset" + }, + "publisher": { + "description": "organization that published the repository", + "type": "string" + }, + "safetyAndSecurity": { + "description": "Text for describing the safety and security in the model", + "type": "string" + }, + "shortDescription": { + "description": "Short description of the model", + "type": "string" + }, + "teamName": { + "description": "Name of the team that the model belongs to", + "type": "string" + }, + "updatedDate": { + "description": "Updated date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "versions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ModelCreateRequest": { + "description": "Properties for the models to be created", + "properties": { + "application": { + "description": "Application of the model", + "maxLength": 255, + "type": "string" + }, + "bias": { + "description": "Text describing bias in the model", + "type": "string" + }, + "builtBy": { + "description": "organization that built the repository", + "maxLength": 255, + "type": "string" + }, + "description": { + "description": "Description of the model", + "type": "string" + }, + "displayName": { + "description": "Display name", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "encryptionKey": { + "$ref": "#/components/schemas/EncryptionKey", + "description": "Customer Managed Key shard configuration for the model" + }, + "explainability": { + "description": "Text describing explainability for this model", + "type": "string" + }, + "framework": { + "description": "Framework used to train this model", + "maxLength": 255, + "type": "string" + }, + "hasPlayground": { + "description": "indicate if the Model has AI Playground configured", + "type": "boolean" + }, + "isPlaygroundEnabled": { + "description": "indicate if AI Playground is enabled in the catalog", + "type": "boolean" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "labelsV2": { + "items": { + "type": "string" + }, + "type": "array" + }, + "licenseTerms": { + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "maxLength": 255, + "type": "string" + }, + "modelFormat": { + "description": "Format of the model", + "maxLength": 255, + "type": "string" + }, + "name": { + "description": "Unique name of the model", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-z][a-z\\d._-]*$", + "type": "string" + }, + "ownerName": { + "description": "Name of the user who owns this model", + "maxLength": 255, + "type": "string" + }, + "precision": { + "description": "Precision this model was trained with", + "maxLength": 255, + "type": "string" + }, + "privacy": { + "description": "Text describing the privacy for this model", + "type": "string" + }, + "publicDatasetUsed": { + "$ref": "#/components/schemas/Dataset" + }, + "publisher": { + "description": "organization that published the repository", + "maxLength": 255, + "type": "string" + }, + "safetyAndSecurity": { + "description": "Text for describing the safety and security in the model", + "type": "string" + }, + "shortDescription": { + "description": "Short description of the model", + "maxLength": 255, + "type": "string" + } + }, + "required": [ + "framework", + "name", + "precision" + ], + "type": "object" + }, + "ModelFile": { + "description": "Model file object", + "properties": { + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "description": { + "description": "Description of the file", + "type": "string" + }, + "path": { + "description": "Relative file path from the root of the model", + "maxLength": 1023, + "minLength": 1, + "type": "string" + }, + "sha256_base64": { + "description": "Base64 encoded sha256 hash of the artifact file", + "type": "string" + }, + "sizeInBytes": { + "description": "Size of the file in bytes", + "format": "int64", + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "ModelListResponse": { + "description": "Response to list models request", + "properties": { + "models": { + "items": { + "$ref": "#/components/schemas/Model" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ModelResponse": { + "description": "Response to create model request", + "properties": { + "model": { + "$ref": "#/components/schemas/Model", + "description": "Model object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ModelSimplified": { + "description": "Model object", + "properties": { + "name": { + "description": "Unique name of the model", + "type": "string" + }, + "orgName": { + "description": "Name of the org that the model belongs to", + "type": "string" + }, + "teamName": { + "description": "Name of the team that the model belongs to", + "type": "string" + } + }, + "required": [ + "name", + "orgName" + ], + "type": "object" + }, + "ModelUpdateRequest": { + "description": "Properties for the model to update", + "properties": { + "application": { + "description": "Application of the model", + "maxLength": 255, + "type": "string" + }, + "bias": { + "description": "Text describing bias in the model", + "type": "string" + }, + "builtBy": { + "description": "organization that built the repository", + "maxLength": 255, + "type": "string" + }, + "description": { + "description": "Description of the model", + "type": "string" + }, + "displayName": { + "description": "Display name", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "explainability": { + "description": "Text describing explainability for this model", + "type": "string" + }, + "framework": { + "description": "Framework used to train this model", + "maxLength": 255, + "type": "string" + }, + "hasPlayground": { + "description": "indicate if the Model has AI Playground configured", + "type": "boolean" + }, + "isPlaygroundEnabled": { + "description": "indicate if AI Playground is enabled in the catalog", + "type": "boolean" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "labelsV2": { + "items": { + "type": "string" + }, + "type": "array" + }, + "licenseTerms": { + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "maxLength": 255, + "type": "string" + }, + "modelFormat": { + "description": "Format of the model", + "maxLength": 255, + "type": "string" + }, + "ownerName": { + "description": "Name of the user who owns this model", + "maxLength": 255, + "type": "string" + }, + "precision": { + "description": "Precision this model was trained with", + "maxLength": 255, + "type": "string" + }, + "privacy": { + "description": "Text describing the privacy for this model", + "type": "string" + }, + "publicDatasetUsed": { + "$ref": "#/components/schemas/Dataset" + }, + "publisher": { + "description": "organization that published the repository", + "maxLength": 255, + "type": "string" + }, + "safetyAndSecurity": { + "description": "Text for describing the safety and security in the model", + "type": "string" + }, + "shortDescription": { + "description": "Short description of the model", + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "ModelVersion": { + "description": "Model version object", + "properties": { + "accuracyReached": { + "description": "Accuracy this model reached", + "format": "float", + "type": "number" + }, + "batchSize": { + "description": "Batch size this model was trained with", + "format": "int64", + "type": "integer" + }, + "createdByUser": { + "description": "Id of the user who created this model", + "type": "string" + }, + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "customMetrics": { + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "type": "array" + }, + "description": { + "description": "Description of the model version", + "type": "string" + }, + "gpuModel": { + "description": "GPU model and memory", + "type": "string" + }, + "id": { + "description": "Deprecated: Please use versionId instead. Unique ID of the version", + "format": "int64", + "type": "integer" + }, + "isSigned": { + "description": "Indicates if the version is signed", + "type": "boolean" + }, + "malwareScanDate": { + "description": "Scan date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "malwareScanStatus": { + "description": "Malware scan status", + "enum": [ + "NOT_SCANNED", + "IN_PROGRESS", + "CLEAN", + "SUSPICIOUS", + "FAILED", + "MALICIOUS" + ], + "type": "string" + }, + "memoryFootprint": { + "description": "Model size/memory footprint for inference", + "type": "string" + }, + "numberOfEpochs": { + "description": "Number of epochs this model trained", + "format": "int64", + "type": "integer" + }, + "nvcfContainerConfiguration": { + "$ref": "#/components/schemas/NvcfContainerConfiguration", + "description": "NVCF container configuration parameters" + }, + "nvcfDeploymentSpecification": { + "$ref": "#/components/schemas/NvcfDeploymentSpecification", + "description": "NVCF deployment specification" + }, + "otherContents": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "ownerName": { + "description": "Name of the user who owns this version", + "type": "string" + }, + "policy": { + "items": { + "type": "string" + }, + "type": "array" + }, + "releaseType": { + "description": "Release type enum for the artifact version in the product lifecycle.", + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "type": "string" + }, + "status": { + "description": "Version status", + "enum": [ + "UPLOAD_PENDING", + "UPLOAD_COMPLETE" + ], + "type": "string" + }, + "storageVersion": { + "description": "The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files.", + "type": "string" + }, + "totalFileCount": { + "description": "Total file count", + "format": "int64", + "type": "integer" + }, + "totalSizeInBytes": { + "description": "Total size of the model in bytes", + "format": "int64", + "type": "integer" + }, + "updatedDate": { + "description": "Updated date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "versionId": { + "description": "Unique version id. Please use this instead of 'id'", + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "ModelVersionCreateRequest": { + "description": "Properties for the model version to be created", + "properties": { + "accuracyReached": { + "description": "Accuracy this model reached", + "format": "float", + "maximum": 100, + "minimum": 0, + "type": "number" + }, + "batchSize": { + "description": "Batch size this model was trained with", + "format": "int64", + "minimum": 0, + "type": "integer" + }, + "customMetrics": { + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "type": "array" + }, + "description": { + "description": "Description of the model version", + "maxLength": 255, + "type": "string" + }, + "gpuModel": { + "description": "GPU model and memory", + "maxLength": 255, + "type": "string" + }, + "id": { + "description": "Deprecated: Please use version instead. Unique ID of the version", + "format": "int64", + "maximum": 2147483647, + "minimum": 1, + "type": "integer" + }, + "memoryFootprint": { + "description": "Model size/memory footprint for inference", + "maxLength": 255, + "type": "string" + }, + "numberOfEpochs": { + "description": "Number of epochs this model trained", + "format": "int64", + "minimum": 0, + "type": "integer" + }, + "nvcfContainerConfiguration": { + "$ref": "#/components/schemas/NvcfContainerConfiguration", + "description": "NVCF container configuration parameters" + }, + "nvcfDeploymentSpecification": { + "$ref": "#/components/schemas/NvcfDeploymentSpecification", + "description": "NVCF deployment specification" + }, + "otherContents": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "ownerName": { + "description": "Name of the user who owns this version", + "maxLength": 255, + "type": "string" + }, + "versionId": { + "description": "Unique version id. Please use this instead of 'id'", + "maxLength": 255, + "pattern": "[^/]+", + "type": "string" + } + }, + "type": "object" + }, + "ModelVersionFileListResponse": { + "description": "Response to list files for model version request", + "properties": { + "model": { + "$ref": "#/components/schemas/Model", + "description": "Model object" + }, + "modelFiles": { + "items": { + "$ref": "#/components/schemas/ModelFile" + }, + "type": "array" + }, + "modelVersion": { + "$ref": "#/components/schemas/ModelVersion", + "description": "Model version object" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ModelVersionListResponse": { + "description": "Response to list model versions request", + "properties": { + "model": { + "$ref": "#/components/schemas/Model", + "description": "Model object" + }, + "modelVersions": { + "items": { + "$ref": "#/components/schemas/ModelVersion" + }, + "type": "array" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ModelVersionResponse": { + "description": "Response to create a model version request", + "properties": { + "model": { + "$ref": "#/components/schemas/Model", + "description": "Model object" + }, + "modelVersion": { + "$ref": "#/components/schemas/ModelVersion", + "description": "Model version object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "ModelVersionUpdateRequest": { + "description": "Version properties to update", + "properties": { + "accuracyReached": { + "description": "Accuracy this model reached", + "format": "float", + "maximum": 100, + "minimum": 0, + "type": "number" + }, + "batchSize": { + "description": "Batch size this model was trained with", + "format": "int64", + "minimum": 0, + "type": "integer" + }, + "customMetrics": { + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "type": "array" + }, + "description": { + "description": "Description of the model version", + "maxLength": 255, + "type": "string" + }, + "gpuModel": { + "description": "GPU model and memory", + "maxLength": 255, + "type": "string" + }, + "memoryFootprint": { + "description": "Model size/memory footprint for inference", + "maxLength": 255, + "type": "string" + }, + "numberOfEpochs": { + "description": "Number of epochs this model trained", + "format": "int64", + "minimum": 0, + "type": "integer" + }, + "nvcfContainerConfiguration": { + "$ref": "#/components/schemas/NvcfContainerConfiguration", + "description": "NVCF container configuration parameters" + }, + "nvcfDeploymentSpecification": { + "$ref": "#/components/schemas/NvcfDeploymentSpecification", + "description": "NVCF deployment specification" + }, + "otherContents": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "ownerName": { + "description": "Name of the user who owns this version", + "maxLength": 255, + "type": "string" + }, + "status": { + "description": "Version status", + "enum": [ + "UPLOAD_PENDING", + "UPLOAD_COMPLETE" + ], + "type": "string" + } + }, + "type": "object" + }, + "MultipartUploadAbortRequest": { + "description": "Request body for aborting a multipart upload for artifacts", + "properties": { + "artifactType": { + "description": "Type of artifact", + "type": "string" + }, + "filePath": { + "description": "The file path for the artifact upload", + "type": "string" + }, + "name": { + "description": "Name of the artifact", + "type": "string" + }, + "uploadID": { + "description": "The unique ID assigned for this multipart upload to associate all upload parts. This is the basic base64 encoded data of the MultipartUploadIDSchema", + "type": "string" + }, + "version": { + "description": "Artifact version", + "type": "string" + } + }, + "required": [ + "artifactType", + "filePath", + "name", + "uploadID", + "version" + ], + "type": "object" + }, + "MultipartUploadCompleteRequest": { + "description": "Request body for completing a multipart upload for artifacts", + "properties": { + "artifactType": { + "description": "Type of artifact", + "type": "string" + }, + "filePath": { + "description": "The file path for the artifact upload", + "type": "string" + }, + "name": { + "description": "Name of the artifact", + "type": "string" + }, + "sha256": { + "description": "Base64 encoded sha256 hash of the entire file", + "type": "string" + }, + "uploadID": { + "description": "The unique ID assigned for this multipart upload to associate all upload parts. This is the basic base64 encoded data of the MultipartUploadIDSchema", + "type": "string" + }, + "version": { + "description": "Artifact version", + "type": "string" + } + }, + "required": [ + "artifactType", + "filePath", + "name", + "sha256", + "uploadID", + "version" + ], + "type": "object" + }, + "MultipartUploadCreateRequest": { + "description": "Request body for creating a multipart upload for artifacts", + "properties": { + "artifactType": { + "description": "Type of artifact", + "type": "string" + }, + "customPartSize": { + "description": "Custom chunk size of the file to be uploaded, in bytes. should be >= 5MB and <= 500MB. default is 500 in MB.", + "format": "int64", + "type": "integer" + }, + "filePath": { + "description": "The file path for the artifact upload", + "type": "string" + }, + "name": { + "description": "Name of the artifact", + "type": "string" + }, + "partNumberList": { + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "sha256": { + "description": "Base64 encoded sha256 hash of the artifact file to be uploaded", + "type": "string" + }, + "size": { + "description": "total size of the artifact, in bytes", + "format": "int64", + "type": "integer" + }, + "uploadID": { + "description": "Upload id of an already initiated Multipart upload", + "type": "string" + }, + "version": { + "description": "Artifact version", + "type": "string" + } + }, + "required": [ + "artifactType", + "filePath", + "name", + "size", + "version" + ], + "type": "object" + }, + "MultipartUploadCreateResponse": { + "description": "Response body for creating a multipart upload for artifacts", + "properties": { + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "partSize": { + "description": "The size of each part upload in bytes", + "format": "int64", + "type": "integer" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + }, + "uploadID": { + "description": "The unique ID assigned for this multipart upload to associate all upload parts. This is the basic base64 encoded data of the MultipartUploadIDSchema", + "type": "string" + }, + "urls": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "partSize", + "uploadID" + ], + "type": "object" + }, + "NimManifestMetadataRequest": { + "description": "NIM profile metadata", + "properties": { + "profiles": { + "items": { + "$ref": "#/components/schemas/NimProfile" + }, + "type": "array" + } + }, + "type": "object" + }, + "NimManifestMetadataResponse": { + "properties": { + "profiles": { + "items": { + "$ref": "#/components/schemas/NimProfile" + }, + "type": "array" + } + }, + "type": "object" + }, + "NimProfile": { + "properties": { + "buildable_profile": { + "type": "boolean" + }, + "checksum": { + "type": "string" + }, + "feat_lora": { + "type": "boolean" + }, + "form_factor": { + "type": "string" + }, + "gpu": { + "type": "string" + }, + "gpu_device": { + "type": "string" + }, + "inference_backend": { + "type": "string" + }, + "latency": { + "additionalProperties": {}, + "type": "object" + }, + "min_vram_per_device_gb": { + "format": "double", + "type": "number" + }, + "pipeline_parallel_size": { + "format": "int32", + "type": "integer" + }, + "precision": { + "type": "string" + }, + "profile_id": { + "type": "string" + }, + "tensor_parallel_size": { + "format": "int32", + "type": "integer" + }, + "workspace_hash": { + "type": "string" + } + }, + "type": "object" + }, + "NotifyMalwareScanResultResponse": { + "description": "Notify malware scan result response", + "properties": { + "status": { + "description": "Malware scan status", + "enum": [ + "NOT_SCANNED", + "IN_PROGRESS", + "CLEAN", + "SUSPICIOUS", + "FAILED", + "MALICIOUS" + ], + "type": "string" + } + }, + "type": "object" + }, + "NvcfContainerConfiguration": { + "description": "NVCF container configuration parameters", + "properties": { + "apiBodyFormat": { + "description": "API body format", + "type": "string" + }, + "containerArgs": { + "description": "Container arguments", + "type": "string" + }, + "containerEnvironment": { + "items": { + "$ref": "#/components/schemas/MetaData" + }, + "type": "array" + }, + "containerImage": { + "description": "Container Image", + "type": "string" + }, + "healthUri": { + "description": "Health URI", + "type": "string" + }, + "inferencePort": { + "description": "Inference port", + "type": "string" + }, + "inferenceUrl": { + "description": "Inference url", + "type": "string" + }, + "models": { + "items": { + "$ref": "#/components/schemas/NvcfContainerModel" + }, + "type": "array" + } + }, + "type": "object" + }, + "NvcfContainerModel": { + "description": "Models version object metadata", + "properties": { + "name": { + "description": "Model name", + "type": "string" + }, + "uri": { + "description": "Model URI", + "type": "string" + }, + "version": { + "description": "Model version", + "type": "string" + } + }, + "type": "object" + }, + "NvcfDeploymentSpecification": { + "description": "NVCF deployment specification", + "properties": { + "gpuCount": { + "description": "GPU count", + "format": "int32", + "type": "integer" + }, + "gpuType": { + "description": "GPU type", + "type": "string" + }, + "instanceType": { + "description": "Instance type", + "type": "string" + }, + "maxConcurrency": { + "description": "Maximum concurrency", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "PaginationInfo": { + "description": "Pagination Information", + "properties": { + "index": { + "description": "Page index of results", + "format": "int32", + "type": "integer" + }, + "nextPage": { + "description": "Serialized pointer to the next results page. Should be used for fetching next page. Can be empty", + "type": "string" + }, + "size": { + "description": "Number of results in page", + "format": "int32", + "type": "integer" + }, + "totalPages": { + "description": "Total number of pages available", + "format": "int64", + "type": "integer" + }, + "totalResults": { + "description": "Total number of results available", + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "Recipe": { + "description": "Recipe object", + "properties": { + "accessType": { + "enum": [ + "LISTED", + "EXCLUSIVE", + "NOT_LISTED" + ], + "type": "string" + }, + "advanced": { + "description": "Text for describing advanced information", + "type": "string" + }, + "application": { + "enum": [ + "CLASSIFICATION", + "OBJECT_DETECTION", + "SEGMENTATION", + "TRANSLATION", + "TEXT_TO_SPEECH", + "RECOMMENDER", + "SENTIMENT", + "NLP", + "KUBEFLOW_PIPELINE", + "OTHER", + "SPEAKER_VERIFICATION", + "PUNCTUATION_AND_CAPITALIZATION", + "DIALOG_STATE_TRACKING", + "SPEAKER_DIARIZATION", + "SPEAKER_RECOGNITION", + "SPEECH_SYNTHESIS", + "VOICE_ACTIVITY_DETECTION", + "SPEECH_RECOGNITION", + "LANGUAGE_MODELING", + "NAMED_ENTITY_RECOGNITION", + "TEXT_CLASSIFICATION", + "TEXT_PROCESSING", + "QUESTION_ANSWERING", + "CONTENT_GENERATION" + ], + "type": "string" + }, + "builtBy": { + "description": "Organization that built the recipe", + "type": "string" + }, + "canGuestDownload": { + "description": "Indicates if a guest user can download", + "type": "boolean" + }, + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "description": { + "description": "Description of the recipe", + "type": "string" + }, + "displayName": { + "description": "Display name", + "type": "string" + }, + "hasSignedVersion": { + "description": "Indicates if the recipe has any signed versions", + "type": "boolean" + }, + "isFavourite": { + "description": "Flag indicating if recipe is user's favorite", + "type": "boolean" + }, + "isPublic": { + "description": "Determines if this recipe is publicly accessible", + "type": "boolean" + }, + "isReadOnly": { + "description": "indicate if current user has read only permissions (deprecated)", + "type": "boolean" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "latestVersionId": { + "description": "Deprecated: Please use latestVersionIdStr instead. ID of the latest version", + "format": "int64", + "type": "integer" + }, + "latestVersionIdStr": { + "description": "ID of the latest version", + "type": "string" + }, + "latestVersionSizeInBytes": { + "description": "Size of the latest version in bytes", + "format": "int64", + "type": "integer" + }, + "licenseTerms": { + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "type": "string" + }, + "modelFormat": { + "description": "Format of the model this recipe produces", + "type": "string" + }, + "name": { + "description": "Unique name of the recipe", + "type": "string" + }, + "orgName": { + "description": "Name of the org that the recipe belongs to", + "type": "string" + }, + "performance": { + "description": "Text describing performance of the recipe results", + "type": "string" + }, + "policyLabels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "precision": { + "enum": [ + "FP16", + "FP32", + "INT8", + "FPBOTH", + "OTHER", + "ALL" + ], + "type": "string" + }, + "productNames": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "publicDatasetUsed": { + "$ref": "#/components/schemas/Dataset" + }, + "publisher": { + "description": "Organization that published this recipe", + "type": "string" + }, + "quickStartGuide": { + "description": "Text with a guide to getting started", + "type": "string" + }, + "relatedModels": { + "items": { + "$ref": "#/components/schemas/Model" + }, + "type": "array" + }, + "setup": { + "description": "Text describing recipe setup", + "type": "string" + }, + "shortDescription": { + "description": "Short description of the recipe", + "type": "string" + }, + "teamName": { + "description": "Name of the team that the recipe belongs to", + "type": "string" + }, + "trainingFramework": { + "enum": [ + "TensorFlow", + "Caffe2", + "CNTK", + "Torch", + "PyTorch", + "MXNet", + "Keras", + "Other", + "TransferLearningToolkit", + "TensorFlow2" + ], + "type": "string" + }, + "updatedDate": { + "description": "Updated date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + } + }, + "type": "object" + }, + "RecipeCreateRequest": { + "description": "Properties for the recipe to create", + "properties": { + "advanced": { + "description": "Text for describing advanced information", + "type": "string" + }, + "application": { + "enum": [ + "CLASSIFICATION", + "OBJECT_DETECTION", + "SEGMENTATION", + "TRANSLATION", + "TEXT_TO_SPEECH", + "RECOMMENDER", + "SENTIMENT", + "NLP", + "KUBEFLOW_PIPELINE", + "OTHER", + "SPEAKER_VERIFICATION", + "PUNCTUATION_AND_CAPITALIZATION", + "DIALOG_STATE_TRACKING", + "SPEAKER_DIARIZATION", + "SPEAKER_RECOGNITION", + "SPEECH_SYNTHESIS", + "VOICE_ACTIVITY_DETECTION", + "SPEECH_RECOGNITION", + "LANGUAGE_MODELING", + "NAMED_ENTITY_RECOGNITION", + "TEXT_CLASSIFICATION", + "TEXT_PROCESSING", + "QUESTION_ANSWERING", + "CONTENT_GENERATION" + ], + "type": "string" + }, + "builtBy": { + "description": "organization that built the recipe", + "maxLength": 255, + "type": "string" + }, + "description": { + "description": "Description of the recipe", + "type": "string" + }, + "displayName": { + "description": "Display name", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "labelsV2": { + "items": { + "type": "string" + }, + "type": "array" + }, + "licenseTerms": { + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "maxLength": 255, + "type": "string" + }, + "modelFormat": { + "description": "Format of the model this recipe produces", + "maxLength": 255, + "type": "string" + }, + "name": { + "description": "Unique name of the recipe", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-z][a-z\\d._-]*$", + "type": "string" + }, + "performance": { + "description": "Text describing performance of the recipe results", + "type": "string" + }, + "precision": { + "enum": [ + "FP16", + "FP32", + "INT8", + "FPBOTH", + "OTHER", + "ALL" + ], + "type": "string" + }, + "publicDatasetUsed": { + "$ref": "#/components/schemas/Dataset" + }, + "publisher": { + "description": "organization that published the recipe", + "maxLength": 255, + "type": "string" + }, + "quickStartGuide": { + "description": "Text with a guide to getting started", + "type": "string" + }, + "setup": { + "description": "Text describing recipe setup", + "type": "string" + }, + "shortDescription": { + "description": "Short description of the recipe", + "maxLength": 255, + "type": "string" + }, + "trainingFramework": { + "enum": [ + "TensorFlow", + "Caffe2", + "CNTK", + "Torch", + "PyTorch", + "MXNet", + "Keras", + "Other", + "TransferLearningToolkit", + "TensorFlow2" + ], + "type": "string" + } + }, + "required": [ + "application", + "modelFormat", + "name", + "precision", + "publicDatasetUsed", + "shortDescription", + "trainingFramework" + ], + "type": "object" + }, + "RecipeFile": { + "description": "Recipe file object", + "properties": { + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "description": { + "description": "Description of the file", + "type": "string" + }, + "path": { + "description": "Relative file path from the root of the recipe", + "maxLength": 1023, + "minLength": 1, + "type": "string" + }, + "sha256_base64": { + "description": "Base64 encoded sha256 hash of the artifact file", + "type": "string" + }, + "sizeInBytes": { + "description": "Size of the file in bytes", + "format": "int64", + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "RecipeListResponse": { + "description": "Response to list recipes request", + "properties": { + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "recipes": { + "items": { + "$ref": "#/components/schemas/Recipe" + }, + "type": "array" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "RecipeResponse": { + "description": "Response to recipe request", + "properties": { + "recipe": { + "$ref": "#/components/schemas/Recipe", + "description": "Recipe object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "RecipeUpdateRequest": { + "description": "Properties for the recipe to update", + "properties": { + "advanced": { + "description": "Text for describing advanced information", + "type": "string" + }, + "application": { + "enum": [ + "CLASSIFICATION", + "OBJECT_DETECTION", + "SEGMENTATION", + "TRANSLATION", + "TEXT_TO_SPEECH", + "RECOMMENDER", + "SENTIMENT", + "NLP", + "KUBEFLOW_PIPELINE", + "OTHER", + "SPEAKER_VERIFICATION", + "PUNCTUATION_AND_CAPITALIZATION", + "DIALOG_STATE_TRACKING", + "SPEAKER_DIARIZATION", + "SPEAKER_RECOGNITION", + "SPEECH_SYNTHESIS", + "VOICE_ACTIVITY_DETECTION", + "SPEECH_RECOGNITION", + "LANGUAGE_MODELING", + "NAMED_ENTITY_RECOGNITION", + "TEXT_CLASSIFICATION", + "TEXT_PROCESSING", + "QUESTION_ANSWERING", + "CONTENT_GENERATION" + ], + "type": "string" + }, + "builtBy": { + "description": "organization that built the recipe", + "maxLength": 255, + "type": "string" + }, + "description": { + "description": "Description of the recipe", + "type": "string" + }, + "displayName": { + "description": "Display name", + "maxLength": 64, + "minLength": 2, + "type": "string" + }, + "labels": { + "items": { + "pattern": "^[a-zA-Z]+[a-zA-Z0-9-.+_\\s]+", + "type": "string" + }, + "type": "array" + }, + "labelsV2": { + "items": { + "type": "string" + }, + "type": "array" + }, + "licenseTerms": { + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "type": "array" + }, + "logo": { + "description": "URL for the logo image", + "maxLength": 255, + "type": "string" + }, + "modelFormat": { + "description": "Format of the model this recipe produces", + "maxLength": 255, + "type": "string" + }, + "performance": { + "description": "Text describing performance of the recipe results", + "type": "string" + }, + "precision": { + "enum": [ + "FP16", + "FP32", + "INT8", + "FPBOTH", + "OTHER", + "ALL" + ], + "type": "string" + }, + "publicDatasetUsed": { + "$ref": "#/components/schemas/Dataset" + }, + "publisher": { + "description": "organization that published the recipe", + "maxLength": 255, + "type": "string" + }, + "quickStartGuide": { + "description": "Text with a guide to getting started", + "type": "string" + }, + "relatedModels": { + "items": { + "$ref": "#/components/schemas/ModelSimplified" + }, + "type": "array" + }, + "setup": { + "description": "Text describing recipe setup", + "type": "string" + }, + "shortDescription": { + "description": "Short description of the recipe", + "maxLength": 255, + "type": "string" + }, + "trainingFramework": { + "enum": [ + "TensorFlow", + "Caffe2", + "CNTK", + "Torch", + "PyTorch", + "MXNet", + "Keras", + "Other", + "TransferLearningToolkit", + "TensorFlow2" + ], + "type": "string" + } + }, + "type": "object" + }, + "RecipeVersion": { + "description": "Recipe version object", + "properties": { + "accuracyReached": { + "description": "Accuracy this recipe reached", + "format": "float", + "type": "number" + }, + "batchSize": { + "description": "Batch size this recipe was trained with", + "format": "int64", + "type": "integer" + }, + "createdByUser": { + "description": "Id of the user who created this recipe", + "type": "string" + }, + "createdDate": { + "description": "Creation date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "customMetrics": { + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "type": "array" + }, + "description": { + "description": "Description of the recipe version", + "type": "string" + }, + "gpuModel": { + "description": "GPU model and memory", + "type": "string" + }, + "id": { + "description": "Deprecated: Please use versionId instead. Unique ID of the version", + "format": "int64", + "type": "integer" + }, + "isSigned": { + "description": "Indicates if the version is signed", + "type": "boolean" + }, + "malwareScanDate": { + "description": "Scan date in ISO-8601 format", + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+Z", + "type": "string" + }, + "malwareScanStatus": { + "description": "Malware scan status", + "enum": [ + "NOT_SCANNED", + "IN_PROGRESS", + "CLEAN", + "SUSPICIOUS", + "FAILED", + "MALICIOUS" + ], + "type": "string" + }, + "memoryFootprint": { + "description": "recipe size/memory footprint for inference", + "type": "string" + }, + "numberOfEpochs": { + "description": "Number of epochs this recipe trained", + "format": "int64", + "type": "integer" + }, + "otherContents": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "performance": { + "description": "Text describing performance of the recipe results", + "type": "string" + }, + "policy": { + "items": { + "type": "string" + }, + "type": "array" + }, + "quickStartGuide": { + "description": "Text with a guide to getting started", + "type": "string" + }, + "releaseNotes": { + "description": "Text describing this release", + "type": "string" + }, + "releaseType": { + "description": "Release type enum for the artifact version in the product lifecycle.", + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "type": "string" + }, + "setup": { + "description": "Text describing recipe setup", + "type": "string" + }, + "status": { + "description": "Version status", + "enum": [ + "UPLOAD_PENDING", + "UPLOAD_COMPLETE" + ], + "type": "string" + }, + "storageVersion": { + "description": "The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files.", + "type": "string" + }, + "totalFileCount": { + "description": "Total file count", + "format": "int64", + "type": "integer" + }, + "totalSizeInBytes": { + "description": "Total size of the recipe in bytes", + "format": "int64", + "type": "integer" + }, + "versionId": { + "description": "Unique version id. Please use this instead of 'id'", + "maxLength": 255, + "type": "string" + } + }, + "type": "object" + }, + "RecipeVersionCreateRequest": { + "description": "Properties for the recipe version to be created", + "properties": { + "accuracyReached": { + "description": "Accuracy this recipe reached", + "format": "float", + "maximum": 100, + "minimum": 0, + "type": "number" + }, + "batchSize": { + "description": "Batch size this recipe was trained with", + "format": "int64", + "minimum": 0, + "type": "integer" + }, + "customMetrics": { + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "type": "array" + }, + "description": { + "description": "Description of the recipe version", + "type": "string" + }, + "gpuModel": { + "description": "GPU model and memory", + "maxLength": 255, + "type": "string" + }, + "id": { + "description": "Deprecated: Please use version instead. Unique ID of the version", + "format": "int64", + "maximum": 2147483647, + "minimum": 1, + "type": "integer" + }, + "memoryFootprint": { + "description": "Recipe size/memory footprint for inference", + "maxLength": 255, + "type": "string" + }, + "numberOfEpochs": { + "description": "Number of epochs this recipe trained", + "format": "int64", + "minimum": 0, + "type": "integer" + }, + "otherContents": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "performance": { + "description": "Text describing performance of the recipe results", + "type": "string" + }, + "quickStartGuide": { + "description": "Text with a guide to getting started", + "type": "string" + }, + "releaseNotes": { + "description": "Text describing this release", + "type": "string" + }, + "setup": { + "description": "Text describing recipe setup", + "type": "string" + }, + "versionId": { + "description": "Unique version id. Please use this instead of 'id'", + "maxLength": 255, + "pattern": "[^/]+", + "type": "string" + } + }, + "type": "object" + }, + "RecipeVersionFileListResponse": { + "description": "Response to list files for recipe version request", + "properties": { + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "recipe": { + "$ref": "#/components/schemas/Recipe", + "description": "Recipe object" + }, + "recipeFiles": { + "items": { + "$ref": "#/components/schemas/RecipeFile" + }, + "type": "array" + }, + "recipeVersion": { + "$ref": "#/components/schemas/RecipeVersion", + "description": "Recipe version object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "RecipeVersionListResponse": { + "description": "Response to list recipe versions request", + "properties": { + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "description": "Pagination Information" + }, + "recipe": { + "$ref": "#/components/schemas/Recipe", + "description": "Recipe object" + }, + "recipeVersions": { + "items": { + "$ref": "#/components/schemas/RecipeVersion" + }, + "type": "array" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "RecipeVersionResponse": { + "description": "Response to recipe version request", + "properties": { + "recipe": { + "$ref": "#/components/schemas/Recipe", + "description": "Recipe object" + }, + "recipeVersion": { + "$ref": "#/components/schemas/RecipeVersion", + "description": "Recipe version object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "RecipeVersionUpdateRequest": { + "description": "Version properties to update", + "properties": { + "accuracyReached": { + "description": "Accuracy this recipe reached", + "format": "float", + "maximum": 100, + "minimum": 0, + "type": "number" + }, + "batchSize": { + "description": "Batch size this recipe was trained with", + "format": "int64", + "minimum": 0, + "type": "integer" + }, + "customMetrics": { + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "type": "array" + }, + "description": { + "description": "Description of the recipe version", + "type": "string" + }, + "gpuModel": { + "description": "GPU model and memory", + "maxLength": 255, + "type": "string" + }, + "memoryFootprint": { + "description": "Recipe size/memory footprint for inference", + "maxLength": 255, + "type": "string" + }, + "numberOfEpochs": { + "description": "Number of epochs this recipe trained", + "format": "int64", + "minimum": 0, + "type": "integer" + }, + "otherContents": { + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "type": "array" + }, + "performance": { + "description": "Text describing performance of the recipe results", + "type": "string" + }, + "quickStartGuide": { + "description": "Text with a guide to getting started", + "type": "string" + }, + "releaseNotes": { + "description": "Text describing this release", + "type": "string" + }, + "setup": { + "description": "Text describing recipe setup", + "type": "string" + }, + "status": { + "description": "Version status", + "enum": [ + "UPLOAD_PENDING", + "UPLOAD_COMPLETE" + ], + "type": "string" + } + }, + "type": "object" + }, + "RequestStatus": { + "description": "Request status information", + "properties": { + "requestId": { + "description": "Request ID", + "type": "string" + }, + "serverId": { + "description": "Server ID", + "type": "string" + }, + "statusCode": { + "description": "Describes response status reported by the server.", + "enum": [ + "UNKNOWN", + "SUCCESS", + "UNAUTHORIZED", + "PAYMENT_REQUIRED", + "FORBIDDEN", + "TIMEOUT", + "EXISTS", + "NOT_FOUND", + "INTERNAL_ERROR", + "INVALID_REQUEST", + "INVALID_REQUEST_VERSION", + "INVALID_REQUEST_DATA", + "METHOD_NOT_ALLOWED", + "CONFLICT", + "UNPROCESSABLE_ENTITY", + "TOO_MANY_REQUESTS", + "INSUFFICIENT_STORAGE", + "SERVICE_UNAVAILABLE" + ], + "type": "string" + }, + "statusDescription": { + "description": "Status description", + "type": "string" + } + }, + "type": "object" + }, + "Response": { + "properties": { + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + } + }, + "type": "object" + }, + "UpdateArtifactVersionConfigs": { + "description": "Request to publish an artifact", + "properties": { + "policy": { + "items": { + "enum": [ + "GOV_READY", + "FedRAMP" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "UpdateReleaseTypeRequest": { + "description": "Request to update release type of an artifact version", + "properties": { + "releaseType": { + "description": "Release type enum for the artifact version in the product lifecycle.", + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "type": "string" + }, + "version": { + "description": "Artifact version", + "type": "string" + } + }, + "required": [ + "version" + ], + "type": "object" + }, + "WorkflowStatusResponse": { + "description": "Response containing workflow status information", + "properties": { + "cloneStatus": { + "$ref": "#/components/schemas/CloneStatus", + "description": "Progress of cloning artifact version files" + }, + "duration": { + "description": "Wall-clock execution duration as an ISO-8601 duration (e.g. PT1H30M5S, PT0.001S); Omitted while IN_PROGRESS.", + "type": "string" + }, + "endTime": { + "description": "UTC instant when the workflow reached a closed state; omitted while IN_PROGRESS.", + "format": "date-time", + "type": "string" + }, + "message": { + "description": "Human-readable message about the workflow status", + "maxLength": 255, + "type": "string" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + }, + "startTime": { + "description": "UTC instant when the workflow execution started.", + "format": "date-time", + "type": "string" + }, + "status": { + "description": "Current status of the workflow", + "enum": [ + "IN_PROGRESS", + "COMPLETED", + "FAILED", + "CANCELED", + "TERMINATED", + "CONTINUED_AS_NEW", + "TIMED_OUT", + "UNKNOWN" + ], + "type": "string" + }, + "workflowType": { + "description": "Workflow type.", + "enum": [ + "CLONE", + "CUSTOMER_MANAGED_KEY" + ], + "type": "string" + } + }, + "required": [ + "message", + "requestStatus", + "status" + ], + "type": "object" + }, + "WorkflowStatusUrlResponse": { + "description": "Response containing workflow status URL and ID", + "properties": { + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "description": "Request status information" + }, + "statusUrl": { + "description": "URL to check the workflow status", + "type": "string" + }, + "workflowId": { + "description": "ID of the workflow", + "type": "string" + } + }, + "type": "object" + } + }, + "securitySchemes": { + "authn": { + "flows": { + "clientCredentials": { + "scopes": {}, + "tokenUrl": "authn.nvidia.com/token" + } + }, + "type": "oauth2" + }, + "ngc-ssa": { + "flows": { + "clientCredentials": { + "scopes": { + "addArtifactToCollectionFromAnotherOrgOrTeam": "{scope}", + "cloneArtifact": "{scope}", + "createArtifact": "{scope}", + "createArtifactVersion": "{scope}", + "createCollection": "{scope}", + "createGpuByPci": "{scope}", + "createModel": "{scope}", + "createModelVersion": "{scope}", + "createNimMetadata": "{scope}", + "createRecipe": "{scope}", + "createRecipeVersion": "{scope}", + "deleteArtifact": "{scope}", + "deleteArtifactVersion": "{scope}", + "deleteArtifacts": "{scope}", + "deleteGpuByPci": "{scope}", + "downloadArtifactVersionFile": "{scope}", + "downloadArtifactVersionFileFilterByOrgEnablement": "{scope}", + "getArtifact": "{scope}", + "getArtifactVersion": "{scope}", + "getArtifactVersionOwners": "{scope}", + "getCollection": "{scope}", + "getModel": "{scope}", + "getModelVersion": "{scope}", + "getModelVersionFilterByOrgEnablement": "{scope}", + "getPublicFlags": "{scope}", + "getRecipe": "{scope}", + "getRecipeVersion": "{scope}", + "getRecipeVersionFilterByOrgEnablement": "{scope}", + "helmProxy": "{scope}", + "kas": "{scope}", + "listArtifactVersionFiles": "{scope}", + "listArtifactVersionFilesFilterByOrgEnablement": "{scope}", + "listArtifactVersions": "{scope}", + "listArtifacts": "{scope}", + "listCollectionArtifacts": "{scope}", + "listModelVersionFiles": "{scope}", + "listModelVersionFilesFilterByOrgEnablement": "{scope}", + "listModelVersions": "{scope}", + "listModels": "{scope}", + "listRecipeVersionFiles": "{scope}", + "listRecipeVersionFilesFilterByOrgEnablement": "{scope}", + "listRecipeVersions": "{scope}", + "listRecipes": "{scope}", + "notifyScanResult": "{scope}", + "patchCollectionArtifacts": "{scope}", + "publishArtifact": "{scope}", + "publishCollection": "{scope}", + "purgeArtifact": "{scope}", + "readGpuByPci": "{scope}", + "recreateArtifactVersionZip": "{scope}", + "signArtifactVersion": "{scope}", + "syncReleaseTypeLabels": "{scope}", + "undoPublishArtifact": "{scope}", + "undoPublishCollection": "{scope}", + "updateArtifact": "{scope}", + "updateArtifactVersion": "{scope}", + "updateCollection": "{scope}", + "updateGpuByPci": "{scope}", + "updateModel": "{scope}", + "updateModelVersion": "{scope}", + "updateRecipe": "{scope}", + "updateRecipeVersion": "{scope}", + "writeArtifacts": "{scope}" + }, + "tokenUrl": "https://osyjw74z3274aq96bfvexmu2fpcahruj9udchmlgqbs.ssa.nvidia.com/token" + } + }, + "type": "oauth2" + }, + "ssa": { + "description": "A bearer token in the format of a JWS and conforms to the specifications for JWT included in RFC7519. SSA attempts to support the applicable best current practices outlined in RFC8725", + "flows": { + "clientCredentials": { + "scopes": { + "cloneArtifact": "{scope}", + "getPublicFlags": "{scope}", + "helmProxy": "{scope}", + "kas": "{scope}", + "publishArtifact": "{scope}", + "publishCollection": "{scope}", + "recreateArtifactVersionZip": "{scope}", + "undoPublishArtifact": "{scope}", + "undoPublishCollection": "{scope}" + }, + "tokenUrl": "https://osyjw74z3274aq96bfvexmu2fpcahruj9udchmlgqbs.ssa.nvidia.com/token" + } + }, + "type": "oauth2" + } + } + }, + "info": { + "contact": { + "name": "NVIDIA", + "url": "https://www.nvidia.com/" + }, + "termsOfService": "https://www.nvidia.com/en-us/legal_info", + "title": "Models API", + "version": "0.0.1-SNAPSHOT" + }, + "openapi": "3.1.0", + "paths": { + "/health": { + "get": { + "description": "Used to check the health status of the web service only", + "operationId": "status", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HealthResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Web Service Health Status", + "tags": [ + "Health" + ], + "x-ssa-scopes": [] + } + }, + "/health/**": { + "get": { + "description": "Get Health Information about this service", + "operationId": "getHealth", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/KaizenHealthStatus" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get Health Information", + "tags": [ + "Health" + ], + "x-ssa-scopes": [] + } + }, + "/health/all": { + "get": { + "description": "Used to get health status of all services", + "operationId": "statusDetails", + "parameters": [ + { + "description": "boolean value to indicating to show details or not", + "in": "query", + "name": "showDetails", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "secret value that validates the call in order to show details", + "in": "query", + "name": "secret", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HealthResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "All Service Health Status", + "tags": [ + "Health" + ], + "x-ssa-scopes": [] + } + }, + "/v1/artifact-registry/org/{org-name}/encryption-keys": { + "get": { + "description": "List encryption keys in org", + "operationId": "listKeysInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/KeyListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List encryption keys in org", + "tags": [ + "Encryption Keys" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/artifact-registry/org/{org-name}/encryption-keys/{key-id}": { + "delete": { + "description": "Revoke encryption key and disassociate from all artifacts in org", + "operationId": "deleteKeyFromOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Key ID", + "in": "path", + "name": "key-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkflowStatusUrlResponse" + } + } + }, + "description": "Accepted" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Revoke encryption key in org", + "tags": [ + "Encryption Keys" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "description": "List artifacts for encryption key in org", + "operationId": "listArtifactsForKeyInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Key ID", + "in": "path", + "name": "key-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "query", + "name": "artifact-type", + "required": false, + "schema": { + "default": "MODEL", + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/KeyArtifactListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List artifacts for encryption key in org", + "tags": [ + "Encryption Keys" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/artifact-registry/org/{org-name}/team/{team-name}/encryption-keys": { + "get": { + "description": "List encryption keys in org/team", + "operationId": "listKeysInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/KeyListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List encryption keys in org/team", + "tags": [ + "Encryption Keys" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/artifact-registry/org/{org-name}/team/{team-name}/encryption-keys/{key-id}": { + "delete": { + "description": "Revoke encryption key and disassociate from all artifacts in org/team", + "operationId": "deleteKeyFromTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Key ID", + "in": "path", + "name": "key-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkflowStatusUrlResponse" + } + } + }, + "description": "Accepted" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Revoke encryption key in org/team", + "tags": [ + "Encryption Keys" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "description": "List artifacts for encryption key in org/team", + "operationId": "listArtifactsForKeyInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Key ID", + "in": "path", + "name": "key-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "query", + "name": "artifactType", + "required": false, + "schema": { + "default": "MODEL", + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/KeyArtifactListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List artifacts for encryption key in org/team", + "tags": [ + "Encryption Keys" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/artifact-registry/org/{org}/team/{team}/workflows/{workflowId}": { + "get": { + "description": "Returns the current status (pending, running, completed, or failed) of an artifact-registry Temporal workflow execution within the specified organization and team.", + "operationId": "getWorkflowStatusForTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Workflow identifier", + "in": "path", + "name": "workflowId", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/WorkflowStatusResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "cloneArtifact" + ] + } + ], + "summary": "Get team-scoped workflow status", + "tags": [ + "Workflows" + ], + "x-ssa-scopes": [ + "kas", + "cloneArtifact" + ] + } + }, + "/v1/artifact-registry/org/{org}/workflows/{workflowId}": { + "get": { + "description": "Returns the current status (pending, running, completed, or failed) of an artifact-registry Temporal workflow execution within the specified organization.", + "operationId": "getWorkflowStatus", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Workflow identifier", + "in": "path", + "name": "workflowId", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/WorkflowStatusResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "cloneArtifact" + ] + } + ], + "summary": "Get workflow status", + "tags": [ + "Workflows" + ], + "x-ssa-scopes": [ + "kas", + "cloneArtifact" + ] + } + }, + "/v1/collections": { + "get": { + "description": "List public collections", + "operationId": "listPublicCollections", + "parameters": [ + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List public collections", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [] + } + }, + "/v1/collections/{org-name}/{collection-name}": { + "get": { + "description": "Get collection details in org as guest", + "operationId": "getCollectionInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get collection in org as guest", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [] + } + }, + "/v1/collections/{org-name}/{collection-name}/artifacts/{artifact-type}": { + "get": { + "description": "List collection artifacts the user can access in the specified org as guest", + "operationId": "listCollectionArtifactsInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Order by", + "in": "query", + "name": "order-by", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List collection artifacts in org as guest", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [] + } + }, + "/v1/collections/{org-name}/{team-name}/{collection-name}": { + "get": { + "description": "Get collection details in team as guest", + "operationId": "getCollectionInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get collection in team as guest", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [] + } + }, + "/v1/collections/{org-name}/{team-name}/{collection-name}/artifacts/{artifact-type}": { + "get": { + "description": "List collection artifacts the user can access in the specified org and team as guest", + "operationId": "listCollectionArtifactsInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Order by", + "in": "query", + "name": "order-by", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List collection artifacts in org and team as guest", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [] + } + }, + "/v1/csps": { + "get": { + "description": "List cloud service providers", + "operationId": "listCloudServiceProviders", + "parameters": [ + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "maximum": 5000, + "minimum": 1, + "type": "integer" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "maximum": 10000, + "minimum": 0, + "type": "integer" + } + }, + { + "description": "Include disabled", + "in": "query", + "name": "include-disabled", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudServiceProviderListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List cloud service providers", + "tags": [ + "Cloud service providers" + ], + "x-ssa-scopes": [] + }, + "post": { + "description": "Create cloud service provider", + "operationId": "createCloudServiceProvider", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudServiceProviderCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudServiceProvider" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create cloud service provider", + "tags": [ + "Cloud service providers" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/csps/{artifact-type}/org/{org-name}/team/{team-name}/{artifact-name}/versions/{version-id}/deployments/{csp-name}": { + "post": { + "description": "Create public artifact version deployment url in team", + "operationId": "createPublicArtifactDeploymentUrlInTeam", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlResponse" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create public artifact version deployment url in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v1/csps/{artifact-type}/org/{org-name}/team/{team-name}/{artifact-name}/versions/{version-id}/files/**/deployments/{csp-name}": { + "post": { + "description": "Create public artifact version file deployment url in team", + "operationId": "createPublicArtifactVersionFileDeploymentUrlInTeam", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlResponse" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create public artifact version file deployment url in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v1/csps/{artifact-type}/org/{org-name}/{artifact-name}/versions/{version-id}/deployments/{csp-name}": { + "post": { + "description": "Create public artifact version deployment url in org", + "operationId": "createPublicArtifactDeploymentUrlInOrg", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlResponse" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create public artifact version deployment url in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v1/csps/{artifact-type}/org/{org-name}/{artifact-name}/versions/{version-id}/files/**/deployments/{csp-name}": { + "post": { + "description": "Create public artifact version file deployment url in org", + "operationId": "createPublicArtifactVersionFileDeploymentUrlInOrg", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlResponse" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create public artifact version file deployment url in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v1/csps/{artifact-type}/{org-name}/{artifact-name}/deployments/params": { + "get": { + "description": "List public artifact deployment parameters in org", + "operationId": "listPublicArtifactDeploymentParametersInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List public artifact deployment parameters in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v1/csps/{artifact-type}/{org-name}/{artifact-name}/deployments/{csp-name}/params": { + "get": { + "description": "Get public artifact deployment parameters details in org", + "operationId": "getPublicArtifactDeploymentParametersInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get public artifact deployment parameters details in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v1/csps/{artifact-type}/{org-name}/{team-name}/{artifact-name}/deployments/params": { + "get": { + "description": "List public artifact deployment parameters in team", + "operationId": "listPublicArtifactDeploymentParametersInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List public artifact deployment parameters in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v1/csps/{artifact-type}/{org-name}/{team-name}/{artifact-name}/deployments/{csp-name}/params": { + "get": { + "description": "Get public artifact deployment parameters details in team", + "operationId": "getPublicArtifactDeploymentParametersInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get public artifact deployment parameters details in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v1/csps/{csp-name}": { + "delete": { + "description": "Delete cloud service provider", + "operationId": "deleteCloudServiceProvider", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Delete cloud service provider", + "tags": [ + "Cloud service providers" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "description": "Get cloud service provider details", + "operationId": "getCloudServiceProviderDetails", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudServiceProvider" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get cloud service provider details", + "tags": [ + "Cloud service providers" + ], + "x-ssa-scopes": [] + }, + "patch": { + "description": "Update cloud service provider", + "operationId": "updateCloudServiceProvider", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudServiceProviderUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudServiceProvider" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Update cloud service provider", + "tags": [ + "Cloud service providers" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/csps/{csp-name}/deployments/params": { + "delete": { + "description": "Delete cloud service provider deployment parameters", + "operationId": "deleteCloudServiceProviderDeploymentParameters", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Delete cloud service provider deployment parameters", + "tags": [ + "Cloud service provider deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "description": "Get cloud service provider deployment parameters details", + "operationId": "getCloudServiceProviderDeploymentParametersDetails", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get cloud service provider deployment parameters details", + "tags": [ + "Cloud service provider deployment parameters" + ], + "x-ssa-scopes": [] + }, + "patch": { + "description": "Update cloud service provider deployment parameters", + "operationId": "updateCloudServiceProviderDeploymentParameters", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Update cloud service provider deployment parameters", + "tags": [ + "Cloud service provider deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "post": { + "description": "Create cloud service provider deployment parameters", + "operationId": "createCloudServiceProviderDeploymentParameters", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create cloud service provider deployment parameters", + "tags": [ + "Cloud service provider deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/csps/{csp-name}/deployments/params/meta": { + "delete": { + "description": "Delete cloud service provider deployment parameters meta", + "operationId": "deleteCloudServiceProviderDeploymentParametersMeta", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Delete cloud service provider deployment parameters meta", + "tags": [ + "Deployment parameters meta" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "description": "Get cloud service provider deployment parameters meta details", + "operationId": "getCloudServiceProviderDeploymentParametersMetaDetails", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersMeta" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get cloud service provider deployment parameters meta details", + "tags": [ + "Deployment parameters meta" + ], + "x-ssa-scopes": [] + }, + "patch": { + "description": "Update cloud service provider deployment parameters meta", + "operationId": "updateCloudServiceProviderDeploymentParametersMeta", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersMetaUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersMeta" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Update cloud service provider deployment parameters meta", + "tags": [ + "Deployment parameters meta" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "post": { + "description": "Create cloud service provider deployment parameters meta", + "operationId": "createCloudServiceProviderDeploymentParametersMeta", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersMetaCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersMeta" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create cloud service provider deployment parameters meta", + "tags": [ + "Deployment parameters meta" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/deploy/csps": { + "get": { + "description": "List cloud service providers", + "operationId": "listCloudServiceProviders_1", + "parameters": [ + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "maximum": 5000, + "minimum": 1, + "type": "integer" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "maximum": 10000, + "minimum": 0, + "type": "integer" + } + }, + { + "description": "Include disabled", + "in": "query", + "name": "include-disabled", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudServiceProviderListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List cloud service providers", + "tags": [ + "Cloud service providers" + ], + "x-ssa-scopes": [] + } + }, + "/v1/deploy/csps/{artifact-type}/{org-name}/{artifact-name}/deployments/params": { + "get": { + "description": "List public artifact deployment parameters in org as guest", + "operationId": "listPublicArtifactDeploymentParametersInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List public artifact deployment parameters in org as guest", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v1/deploy/csps/{artifact-type}/{org-name}/{artifact-name}/deployments/{csp-name}/params": { + "get": { + "description": "Get public artifact deployment parameters details in org as guest", + "operationId": "getPublicArtifactDeploymentParametersInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get public artifact deployment parameters details in org as guest", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v1/deploy/csps/{artifact-type}/{org-name}/{team-name}/{artifact-name}/deployments/params": { + "get": { + "description": "List public artifact deployment parameters in team as guest", + "operationId": "listPublicArtifactDeploymentParametersInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List public artifact deployment parameters in team as guest", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v1/deploy/csps/{artifact-type}/{org-name}/{team-name}/{artifact-name}/deployments/{csp-name}/params": { + "get": { + "description": "Get public artifact deployment parameters details in team as guest", + "operationId": "getPublicArtifactDeploymentParametersInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get public artifact deployment parameters details in team as guest", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [] + } + }, + "/v1/deploy/csps/{csp-name}": { + "get": { + "description": "Get cloud service provider details", + "operationId": "getCloudServiceProviderDetails_1", + "parameters": [ + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloudServiceProvider" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get cloud service provider details", + "tags": [ + "Cloud service providers" + ], + "x-ssa-scopes": [] + } + }, + "/v1/gpus": { + "get": { + "description": "Get all GPU by PCI records", + "operationId": "getGpus", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/GpuByPciResponse" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "readGpuByPci" + ] + } + ], + "summary": "Get all GPUs", + "tags": [ + "GpuByPci" + ], + "x-ssa-scopes": [ + "kas", + "readGpuByPci" + ] + } + }, + "/v1/gpus/pci-device-id/{pci-device-id}": { + "delete": { + "description": "Delete a GPU record using only PCI Device ID (pciVendorId and pciSubsystemDeviceId default to 'unknown')", + "operationId": "deleteGpuByPciDeviceId", + "parameters": [ + { + "description": "PCI Device ID", + "in": "path", + "name": "pci-device-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "deleteGpuByPci" + ] + } + ], + "summary": "Delete GPU by PCI Device ID only", + "tags": [ + "GpuByPci" + ], + "x-ssa-scopes": [ + "deleteGpuByPci", + "kas" + ] + }, + "get": { + "description": "Get all GPU records matching the given PCI Device ID", + "operationId": "getGpuByPciDeviceId", + "parameters": [ + { + "description": "PCI Device ID", + "in": "path", + "name": "pci-device-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/GpuByPciResponse" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "readGpuByPci" + ] + } + ], + "summary": "Get GPU by PCI Device ID", + "tags": [ + "GpuByPci" + ], + "x-ssa-scopes": [ + "kas", + "readGpuByPci" + ] + }, + "patch": { + "description": "Partially update a GPU record using only PCI Device ID (pciVendorId and pciSubsystemDeviceId default to 'unknown'). Only provided fields will be updated.", + "operationId": "updateGpuByPciDeviceId", + "parameters": [ + { + "description": "PCI Device ID", + "in": "path", + "name": "pci-device-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GpuByPciUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GpuByPciResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateGpuByPci" + ] + } + ], + "summary": "Partially update GPU by PCI Device ID only", + "tags": [ + "GpuByPci" + ], + "x-ssa-scopes": [ + "kas", + "updateGpuByPci" + ] + }, + "post": { + "description": "Create a new GPU record using only PCI Device ID (pciVendorId and pciSubsystemDeviceId default to 'unknown')", + "operationId": "createGpuByPciDeviceId", + "parameters": [ + { + "description": "PCI Device ID", + "in": "path", + "name": "pci-device-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GpuByPciCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GpuByPciResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createGpuByPci" + ] + } + ], + "summary": "Create GPU by PCI Device ID only", + "tags": [ + "GpuByPci" + ], + "x-ssa-scopes": [ + "kas", + "createGpuByPci" + ] + } + }, + "/v1/gpus/pci-device-id/{pci-device-id}/pci-vendor-id/{pci-vendor-id}": { + "get": { + "description": "Get all GPUs by PCI records matching the given PCI Device ID and Vendor ID", + "operationId": "getGpuByPciDeviceIdVendorId", + "parameters": [ + { + "description": "PCI Device ID", + "in": "path", + "name": "pci-device-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + }, + { + "description": "PCI Vendor ID", + "in": "path", + "name": "pci-vendor-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/GpuByPciResponse" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "readGpuByPci" + ] + } + ], + "summary": "Get GPUs by PCI Device ID and Vendor ID", + "tags": [ + "GpuByPci" + ], + "x-ssa-scopes": [ + "kas", + "readGpuByPci" + ] + } + }, + "/v1/gpus/pci-device-id/{pci-device-id}/pci-vendor-id/{pci-vendor-id}/pci-subsystem-device-id/{pci-subsystem-device-id}": { + "delete": { + "description": "Delete a GPU record matching the full PCI composite key", + "operationId": "deleteGpuByPciFullKey", + "parameters": [ + { + "description": "PCI Device ID", + "in": "path", + "name": "pci-device-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + }, + { + "description": "PCI Vendor ID", + "in": "path", + "name": "pci-vendor-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + }, + { + "description": "PCI Subsystem Device ID", + "in": "path", + "name": "pci-subsystem-device-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "deleteGpuByPci" + ] + } + ], + "summary": "Delete GPU by PCI Device ID, Vendor ID, and Subsystem Device ID", + "tags": [ + "GpuByPci" + ], + "x-ssa-scopes": [ + "deleteGpuByPci", + "kas" + ] + }, + "get": { + "description": "Get a single GPU record matching the full PCI composite key", + "operationId": "getGpuByPciDeviceIdVendorIdSubsystemDeviceId", + "parameters": [ + { + "description": "PCI Device ID", + "in": "path", + "name": "pci-device-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + }, + { + "description": "PCI Vendor ID", + "in": "path", + "name": "pci-vendor-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + }, + { + "description": "PCI Subsystem Device ID", + "in": "path", + "name": "pci-subsystem-device-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GpuByPciResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "readGpuByPci" + ] + } + ], + "summary": "Get GPU by PCI Device ID, Vendor ID, and Subsystem Device ID", + "tags": [ + "GpuByPci" + ], + "x-ssa-scopes": [ + "kas", + "readGpuByPci" + ] + }, + "patch": { + "description": "Partially update a GPU record matching the full PCI composite key. Only provided fields will be updated.", + "operationId": "updateGpuByPciFullKey", + "parameters": [ + { + "description": "PCI Device ID", + "in": "path", + "name": "pci-device-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + }, + { + "description": "PCI Vendor ID", + "in": "path", + "name": "pci-vendor-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + }, + { + "description": "PCI Subsystem Device ID", + "in": "path", + "name": "pci-subsystem-device-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GpuByPciUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GpuByPciResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateGpuByPci" + ] + } + ], + "summary": "Partially update GPU by PCI Device ID, Vendor ID, and Subsystem Device ID", + "tags": [ + "GpuByPci" + ], + "x-ssa-scopes": [ + "kas", + "updateGpuByPci" + ] + }, + "post": { + "description": "Create a new GPU record using the full PCI composite key", + "operationId": "createGpuByPciFullKey", + "parameters": [ + { + "description": "PCI Device ID", + "in": "path", + "name": "pci-device-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + }, + { + "description": "PCI Vendor ID", + "in": "path", + "name": "pci-vendor-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + }, + { + "description": "PCI Subsystem Device ID", + "in": "path", + "name": "pci-subsystem-device-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 32, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GpuByPciCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GpuByPciResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createGpuByPci" + ] + } + ], + "summary": "Create GPU by PCI Device ID, Vendor ID, and Subsystem Device ID", + "tags": [ + "GpuByPci" + ], + "x-ssa-scopes": [ + "kas", + "createGpuByPci" + ] + } + }, + "/v1/helm-charts/{org-name}/{artifact-name}/versions": { + "get": { + "description": "List chart versions in org as guest", + "operationId": "listHelmChartVersionsInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List chart versions in org as guest", + "tags": [ + "Helm Charts" + ], + "x-ssa-scopes": [] + } + }, + "/v1/helm-charts/{org-name}/{artifact-name}/versions/{version-id}": { + "get": { + "description": "Get chart version in org as guest", + "operationId": "getHelmChartVersionInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get chart version in org as guest", + "tags": [ + "Helm Charts" + ], + "x-ssa-scopes": [] + } + }, + "/v1/helm-charts/{org-name}/{team-name}/{artifact-name}/versions": { + "get": { + "description": "List chart versions in team as guest", + "operationId": "listHelmChartVersionsInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List chart versions in team as guest", + "tags": [ + "Helm Charts" + ], + "x-ssa-scopes": [] + } + }, + "/v1/helm-charts/{org-name}/{team-name}/{artifact-name}/versions/{version-id}": { + "get": { + "description": "Get chart version in team as guest", + "operationId": "getHelmChartVersionInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get chart version in team as guest", + "tags": [ + "Helm Charts" + ], + "x-ssa-scopes": [] + } + }, + "/v1/malware-scan-notification": { + "post": { + "description": "Update artifact's malware scan result with MalwareScanNotification", + "operationId": "notifyScanResult", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MalwareScanNotification" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NotifyMalwareScanResultResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "notifyScanResult" + ] + } + ], + "summary": "Update artifact's malware scan result with MalwareScanNotification", + "tags": [ + "MalwareScan" + ], + "x-ssa-scopes": [ + "notifyScanResult", + "kas" + ] + } + }, + "/v1/models": { + "get": { + "description": "This operation lists public models.", + "operationId": "listPublicModels", + "parameters": [ + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List public models", + "tags": [ + "Models" + ], + "x-ssa-scopes": [] + } + }, + "/v1/models/{org-name}/{model-name}": { + "get": { + "description": "This operation gets info of a model in the org as guest.", + "operationId": "getModelInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get model in org as guest", + "tags": [ + "Models" + ], + "x-ssa-scopes": [] + } + }, + "/v1/models/{org-name}/{model-name}/versions": { + "get": { + "description": "List model versions in org as guest", + "operationId": "listModelVersionsInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List model versions in org as guest", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [] + } + }, + "/v1/models/{org-name}/{model-name}/versions/{version-id}": { + "get": { + "description": "Get model version in org as guest", + "operationId": "getModelVersionInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get model version in org as guest", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [] + } + }, + "/v1/models/{org-name}/{model-name}/versions/{version-id}/files": { + "get": { + "description": "List files of the model version in org as guest", + "operationId": "listModeFilesInOrgAsGuest_2", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List model files in org as guest", + "tags": [ + "Model Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v1/models/{org-name}/{team-name}/{model-name}": { + "get": { + "description": "This operation gets info of a model in the org/team as guest.", + "operationId": "getModelInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get model in team as guest", + "tags": [ + "Models" + ], + "x-ssa-scopes": [] + } + }, + "/v1/models/{org-name}/{team-name}/{model-name}/versions": { + "get": { + "description": "List model versions in team as guest", + "operationId": "listModelVersionsInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List model versions in team as guest", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [] + } + }, + "/v1/models/{org-name}/{team-name}/{model-name}/versions/{version-id}": { + "get": { + "description": "Get model version in team as guest", + "operationId": "getModelVersionInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get model version in team as guest", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [] + } + }, + "/v1/models/{org-name}/{team-name}/{model-name}/versions/{version-id}/files": { + "get": { + "description": "List files of the model version in team as guest", + "operationId": "listModeFilesInTeamAsGuest_2", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List model files in team as guest", + "tags": [ + "Model Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v1/nim/{team}/{nimName}/{tag}/metadata": { + "post": { + "description": "Registers NIM profile metadata for the given team, NIM name, and tag. This is a placeholder that validates the supplied profiles and echoes the provided fields back to the caller.\nSSA: requires the following scope `createNimMetadata`\n", + "operationId": "createNimMetadata", + "parameters": [ + { + "description": "Team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "pattern": "^[a-zA-Z0-9._-]+$", + "type": "string" + } + }, + { + "description": "NIM name", + "in": "path", + "name": "nimName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "pattern": "^[a-zA-Z0-9._-]+$", + "type": "string" + } + }, + { + "description": "NIM tag", + "in": "path", + "name": "tag", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "pattern": "^[a-zA-Z0-9._-]+$", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NimManifestMetadataRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NimManifestMetadataResponse" + } + } + }, + "description": "Created" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createNimMetadata" + ] + } + ], + "summary": "Create NIM metadata", + "tags": [ + "NIM Metadata" + ], + "x-ssa-scopes": [ + "createNimMetadata", + "kas" + ] + } + }, + "/v1/org/{org-name}/collections": { + "get": { + "description": "List collections the user can access in the specified org", + "operationId": "listCollectionsInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Order by", + "in": "query", + "name": "order-by", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List collections in org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "post": { + "description": "Create collection in org", + "operationId": "createCollectionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createCollection" + ] + } + ], + "summary": "Create collection in org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas", + "createCollection" + ] + } + }, + "/v1/org/{org-name}/collections/{collection-name}": { + "delete": { + "description": "Delete collection in the specified org", + "operationId": "deleteCollectionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Delete collection in org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "description": "Get collection details in org", + "operationId": "getCollectionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getCollection" + ] + } + ], + "summary": "Get collection in org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "getCollection", + "kas" + ] + }, + "patch": { + "description": "Update collection details in org", + "operationId": "updateCollectionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateCollection" + ] + } + ], + "summary": "Update collection in org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "updateCollection", + "kas" + ] + } + }, + "/v1/org/{org-name}/collections/{collection-name}/artifacts": { + "patch": { + "description": "Patch collection in the specified org", + "operationId": "patchCollectionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionPatchRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "patchCollectionArtifacts" + ] + } + ], + "summary": "Patch collection in org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "patchCollectionArtifacts", + "kas" + ] + } + }, + "/v1/org/{org-name}/collections/{collection-name}/artifacts/org/{artifact-org-name}/team/{artifact-team-name}/{artifact-type}/{artifact-name}": { + "delete": { + "description": "Remove artifact from the specified collection in the specified org from another org", + "operationId": "removeArtifactFromCollectionInOrgFromAnotherOrgAndTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact organization name", + "in": "path", + "name": "artifact-org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact team name", + "in": "path", + "name": "artifact-team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Remove artifact from collection in org from another org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "description": "Add artifact to the specified collection in the specified org from another org and team", + "operationId": "addArtifactToCollectionInOrgFromAnotherOrgAndTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact organization name", + "in": "path", + "name": "artifact-org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact team name", + "in": "path", + "name": "artifact-team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "addArtifactToCollectionFromAnotherOrgOrTeam" + ] + } + ], + "summary": "Add artifact to collection in org from another org and team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "addArtifactToCollectionFromAnotherOrgOrTeam", + "kas" + ] + } + }, + "/v1/org/{org-name}/collections/{collection-name}/artifacts/org/{artifact-org-name}/{artifact-type}/{artifact-name}": { + "delete": { + "description": "Remove artifact from the specified collection in the specified org from another org", + "operationId": "removeArtifactFromCollectionInOrgFromAnotherOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact organization name", + "in": "path", + "name": "artifact-org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Remove artifact from collection in org from another org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "description": "Add artifact to the specified collection in the specified org from another org", + "operationId": "addArtifactToCollectionInOrgFromAnotherOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact organization name", + "in": "path", + "name": "artifact-org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "addArtifactToCollectionFromAnotherOrgOrTeam" + ] + } + ], + "summary": "Add artifact to collection in org from another org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "addArtifactToCollectionFromAnotherOrgOrTeam", + "kas" + ] + } + }, + "/v1/org/{org-name}/collections/{collection-name}/artifacts/{artifact-type}": { + "get": { + "description": "List collection artifacts the user can access in the specified org", + "operationId": "listCollectionArtifactsInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Order by", + "in": "query", + "name": "order-by", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listCollectionArtifacts" + ] + } + ], + "summary": "List collection artifacts in org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas", + "listCollectionArtifacts" + ] + } + }, + "/v1/org/{org-name}/collections/{collection-name}/share": { + "delete": { + "description": "Undo publishing of collection to public", + "operationId": "undoPublishCollection_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "undoPublishCollection" + ] + } + ], + "summary": "Undo publishing of collection to public", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "undoPublishCollection" + ] + }, + "put": { + "deprecated": true, + "description": "Publish collection to public", + "operationId": "publishCollection_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Indicates if guest users can download this collection", + "in": "query", + "name": "guest-can-download", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "description": "Indicates if collection is listed publicly", + "in": "query", + "name": "public-can-list", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishCollection" + ] + } + ], + "summary": "Publish collection to public", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishCollection" + ] + } + }, + "/v1/org/{org-name}/collections/{collection-name}/share/product": { + "put": { + "description": "Publish collection to product", + "operationId": "publishCollectionFromRequest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionPublishRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishCollection" + ] + } + ], + "summary": "Publish collection to product", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishCollection" + ] + } + }, + "/v1/org/{org-name}/collections/{collection-name}/shares/org": { + "delete": { + "deprecated": true, + "description": "Revoke shared org collection with the org", + "operationId": "revokeShareCollectionInOrgWithOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Revoke shared org collection with the org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "deprecated": true, + "description": "Share org collection with the org", + "operationId": "shareCollectionInOrgWithOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Share org collection with the org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/collections/{collection-name}/shares/team/{target-team}": { + "delete": { + "deprecated": true, + "description": "Revoke shared org collection with the specified team", + "operationId": "revokeShareCollectionInOrgWithTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Target team name", + "in": "path", + "name": "target-team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Revoke shared org collection with the specified team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "deprecated": true, + "description": "Share org collection with the specified team", + "operationId": "shareCollectionInOrgWithTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Target team name", + "in": "path", + "name": "target-team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Share org collection with the specified team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/collections/{collection-name}/{artifact-type}/{artifact-name}": { + "delete": { + "description": "Remove artifact from the specified collection in the specified org", + "operationId": "removeArtifactFromCollectionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Remove artifact from collection in org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "description": "Add artifact to the specified collection in the specified org", + "operationId": "addArtifactToCollectionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Add artifact to collection in org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/files/commit": { + "post": { + "description": "Commit artifact files metadata to database given request", + "operationId": "commitArtifactFiles", + "parameters": [ + { + "description": "Org Name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Upload pending flag - if set to true, leaves the artifact version in UPLOAD PENDING state without marking it complete", + "in": "query", + "name": "upload-pending", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Set version to latest", + "in": "query", + "name": "set-latest", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactFilesCommitRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Commit artifact files metadata to database", + "tags": [ + "ArtifactChecksum" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/helm-charts/{artifact-name}/versions": { + "get": { + "description": "List chart versions in org", + "operationId": "listHelmChartVersionsInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listArtifactVersions" + ] + } + ], + "summary": "List chart versions in org", + "tags": [ + "Helm Charts" + ], + "x-ssa-scopes": [ + "kas", + "listArtifactVersions" + ] + } + }, + "/v1/org/{org-name}/helm-charts/{artifact-name}/versions/{version-id}": { + "get": { + "description": "Get chart version in org", + "operationId": "getHelmChartVersionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getArtifactVersion" + ] + } + ], + "summary": "Get chart version in org", + "tags": [ + "Helm Charts" + ], + "x-ssa-scopes": [ + "getArtifactVersion", + "kas" + ] + }, + "patch": { + "description": "Update chart version information in org e.g. upload status", + "operationId": "updateHelmChartVersionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateArtifactVersion" + ] + } + ], + "summary": "Update chart version in org", + "tags": [ + "Helm Charts" + ], + "x-ssa-scopes": [ + "updateArtifactVersion", + "kas" + ] + } + }, + "/v1/org/{org-name}/models": { + "get": { + "description": "This operation lists models the user can access in the org.", + "operationId": "listModelsInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "deprecated": true, + "description": "Application name", + "in": "query", + "name": "app-name", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "deprecated": true, + "description": "[Deprecated] Page reference, Use page-number instead", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listModels" + ] + } + ], + "summary": "List models in org", + "tags": [ + "Models" + ], + "x-ssa-scopes": [ + "kas", + "listModels" + ] + }, + "post": { + "description": "This operation creates a model in the org.", + "operationId": "createModelInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createModel" + ] + } + ], + "summary": "Create model in org", + "tags": [ + "Models" + ], + "x-ssa-scopes": [ + "createModel", + "kas" + ] + } + }, + "/v1/org/{org-name}/models/{artifact-name}/versions/{version-id}/stash": { + "patch": { + "description": "Stash artifact version information in org during upload paused state", + "operationId": "stashArtifactVersionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateModelVersion" + ] + } + ], + "summary": "Stash artifact version in org", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "updateModelVersion", + "kas" + ] + } + }, + "/v1/org/{org-name}/models/{model-name}": { + "get": { + "description": "This operation gets info of a model in the org.", + "operationId": "getModelInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getModel" + ] + } + ], + "summary": "Get model details in org", + "tags": [ + "Models" + ], + "x-ssa-scopes": [ + "getModel", + "kas" + ] + }, + "patch": { + "description": "This operation updates details of a model in the org.", + "operationId": "updateModelInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateModel" + ] + } + ], + "summary": "Update model in org", + "tags": [ + "Models" + ], + "x-ssa-scopes": [ + "updateModel", + "kas" + ] + } + }, + "/v1/org/{org-name}/models/{model-name}/encryption-key": { + "delete": { + "description": "Disassociate encryption key from model in org and mark it for offline deletion", + "operationId": "disassociateKeyFromModelInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkflowStatusUrlResponse" + } + } + }, + "description": "Accepted" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Disassociate encryption key from model in org", + "tags": [ + "Models" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/models/{model-name}/versions": { + "get": { + "description": "List model versions in org", + "operationId": "listModelVersionsInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listModelVersions" + ] + } + ], + "summary": "List model versions in org", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "listModelVersions", + "kas" + ] + }, + "post": { + "description": "Create a new and empty model version in org. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org", + "operationId": "createModelVersionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createModelVersion" + ] + } + ], + "summary": "Create model version in org", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "kas", + "createModelVersion" + ] + } + }, + "/v1/org/{org-name}/models/{model-name}/versions/{version-id}": { + "get": { + "description": "Get model version in org", + "operationId": "getModelVersionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getModelVersion", + "getModelVersionFilterByOrgEnablement" + ] + } + ], + "summary": "Get model version in org", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "getModelVersionFilterByOrgEnablement", + "getModelVersion", + "kas" + ] + }, + "patch": { + "description": "Update model version information in org e.g. upload status", + "operationId": "updateModelVersionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Create zip of version content", + "in": "query", + "name": "create-zip", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Set version to latest", + "in": "query", + "name": "set-latest", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateModelVersion" + ] + } + ], + "summary": "Update model version in org", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "updateModelVersion", + "kas" + ] + } + }, + "/v1/org/{org-name}/models/{model-name}/versions/{version-id}/files": { + "get": { + "description": "List files of the model version in org", + "operationId": "listModeFilesInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + }, + { + "ssa": [ + "listModelVersionFilesFilterByOrgEnablement" + ] + }, + { + "ssa": [ + "listModelVersionFiles" + ] + } + ], + "summary": "List model files in org", + "tags": [ + "Model Version Files" + ], + "x-ssa-scopes": [ + "listModelVersionFiles", + "listModelVersionFilesFilterByOrgEnablement", + "kas" + ] + } + }, + "/v1/org/{org-name}/recipes": { + "get": { + "description": "List recipes the user can access in the specified org", + "operationId": "listRecipesInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Application name", + "in": "query", + "name": "app-name", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listRecipes" + ] + } + ], + "summary": "List recipes in org", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "listRecipes", + "kas" + ] + }, + "post": { + "description": "Create recipe in org", + "operationId": "createRecipeInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createRecipe" + ] + } + ], + "summary": "Create recipe in org", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "createRecipe", + "kas" + ] + } + }, + "/v1/org/{org-name}/recipes/{recipe-name}": { + "get": { + "description": "Get recipe in org", + "operationId": "getRecipeInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getRecipe" + ] + } + ], + "summary": "Get recipe in org", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "getRecipe", + "kas" + ] + }, + "patch": { + "description": "Update recipe details in org", + "operationId": "updateRecipeInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateRecipe" + ] + } + ], + "summary": "Update recipe in org", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "updateRecipe", + "kas" + ] + } + }, + "/v1/org/{org-name}/recipes/{recipe-name}/versions": { + "get": { + "description": "List recipe versions in org", + "operationId": "listRecipeVersionsInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listRecipeVersions" + ] + } + ], + "summary": "List recipe versions in org", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "listRecipeVersions", + "kas" + ] + }, + "post": { + "description": "Create recipe version in org. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org", + "operationId": "createRecipeVersionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createRecipeVersion" + ] + } + ], + "summary": "Create recipe version in org", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "createRecipeVersion", + "kas" + ] + } + }, + "/v1/org/{org-name}/recipes/{recipe-name}/versions/{version-id}": { + "get": { + "description": "Get recipe version in org", + "operationId": "getRecipeVersionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getRecipeVersion", + "getRecipeVersionFilterByOrgEnablement" + ] + } + ], + "summary": "Get recipe version in org", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "getRecipeVersion", + "getRecipeVersionFilterByOrgEnablement", + "kas" + ] + }, + "patch": { + "description": "Update recipe version information in org e.g. upload status", + "operationId": "updateRecipeVersionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Create zip of version content", + "in": "query", + "name": "create-zip", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Set version to latest", + "in": "query", + "name": "set-latest", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateRecipeVersion" + ] + } + ], + "summary": "Update recipe version in org", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "updateRecipeVersion", + "kas" + ] + } + }, + "/v1/org/{org-name}/recipes/{recipe-name}/versions/{version-id}/files": { + "get": { + "description": "List recipe files in org", + "operationId": "listRecipeFilesInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "listRecipeVersionFilesFilterByOrgEnablement" + ] + }, + { + "ssa": [ + "kas" + ] + }, + { + "ssa": [ + "listRecipeVersionFiles" + ] + } + ], + "summary": "List recipe files in org", + "tags": [ + "Resource Version Files endpoints" + ], + "x-ssa-scopes": [ + "listRecipeVersionFiles", + "listRecipeVersionFilesFilterByOrgEnablement", + "kas" + ] + } + }, + "/v1/org/{org-name}/repositories/{container-name}/associated-models": { + "get": { + "description": "List associated model versions by container", + "operationId": "listModelVersionsAssociatedByContainer", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Container name", + "in": "path", + "name": "container-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listModelVersions" + ] + } + ], + "summary": "List associated model versions by container", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "listModelVersions", + "kas" + ] + } + }, + "/v1/org/{org-name}/repositories/{container-name}/tags/{container-tag}/associated-models": { + "get": { + "description": "List associated model versions by container", + "operationId": "listModelVersionsAssociatedByContainer_2", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Container name", + "in": "path", + "name": "container-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Container tag", + "in": "path", + "name": "container-tag", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listModelVersions" + ] + } + ], + "summary": "List associated model versions by container", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "listModelVersions", + "kas" + ] + } + }, + "/v1/org/{org-name}/resources": { + "get": { + "description": "List recipes the user can access in the specified org", + "operationId": "listRecipesInOrg_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Application name", + "in": "query", + "name": "app-name", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listRecipes" + ] + } + ], + "summary": "List recipes in org", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "listRecipes", + "kas" + ] + }, + "post": { + "description": "Create recipe in org", + "operationId": "createRecipeInOrg_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createRecipe" + ] + } + ], + "summary": "Create recipe in org", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "createRecipe", + "kas" + ] + } + }, + "/v1/org/{org-name}/resources/{recipe-name}": { + "get": { + "description": "Get recipe in org", + "operationId": "getRecipeInOrg_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getRecipe" + ] + } + ], + "summary": "Get recipe in org", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "getRecipe", + "kas" + ] + }, + "patch": { + "description": "Update recipe details in org", + "operationId": "updateRecipeInOrg_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateRecipe" + ] + } + ], + "summary": "Update recipe in org", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "updateRecipe", + "kas" + ] + } + }, + "/v1/org/{org-name}/resources/{recipe-name}/versions": { + "get": { + "description": "List recipe versions in org", + "operationId": "listRecipeVersionsInOrg_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listRecipeVersions" + ] + } + ], + "summary": "List recipe versions in org", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "listRecipeVersions", + "kas" + ] + }, + "post": { + "description": "Create recipe version in org. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org", + "operationId": "createRecipeVersionInOrg_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createRecipeVersion" + ] + } + ], + "summary": "Create recipe version in org", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "createRecipeVersion", + "kas" + ] + } + }, + "/v1/org/{org-name}/resources/{recipe-name}/versions/{version-id}": { + "get": { + "description": "Get recipe version in org", + "operationId": "getRecipeVersionInOrg_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getRecipeVersion", + "getRecipeVersionFilterByOrgEnablement" + ] + } + ], + "summary": "Get recipe version in org", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "getRecipeVersion", + "getRecipeVersionFilterByOrgEnablement", + "kas" + ] + }, + "patch": { + "description": "Update recipe version information in org e.g. upload status", + "operationId": "updateRecipeVersionInOrg_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Create zip of version content", + "in": "query", + "name": "create-zip", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Set version to latest", + "in": "query", + "name": "set-latest", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateRecipeVersion" + ] + } + ], + "summary": "Update recipe version in org", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "updateRecipeVersion", + "kas" + ] + } + }, + "/v1/org/{org-name}/resources/{recipe-name}/versions/{version-id}/files": { + "get": { + "description": "List recipe files in org", + "operationId": "listRecipeFilesInOrg_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "listRecipeVersionFilesFilterByOrgEnablement" + ] + }, + { + "ssa": [ + "kas" + ] + }, + { + "ssa": [ + "listRecipeVersionFiles" + ] + } + ], + "summary": "List recipe files in org", + "tags": [ + "Resource Version Files endpoints" + ], + "x-ssa-scopes": [ + "listRecipeVersionFiles", + "listRecipeVersionFilesFilterByOrgEnablement", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/collections": { + "get": { + "description": "List collections the user can access in the specified org and team", + "operationId": "listCollectionsInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Order by", + "in": "query", + "name": "order-by", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List collections in team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "post": { + "description": "Create collection in org and team", + "operationId": "createCollectionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createCollection" + ] + } + ], + "summary": "Create collection in org and team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas", + "createCollection" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/collections/{collection-name}": { + "delete": { + "description": "Delete collection in the specified org and team", + "operationId": "deleteCollectionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Delete collection in org and team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "description": "Get collection details in team", + "operationId": "getCollectionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getCollection" + ] + } + ], + "summary": "Get collection in team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "getCollection", + "kas" + ] + }, + "patch": { + "description": "Update collection details in team", + "operationId": "updateCollectionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateCollection" + ] + } + ], + "summary": "Update collection in team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "updateCollection", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/collections/{collection-name}/artifacts": { + "patch": { + "description": "Patch collection in the specified org and team", + "operationId": "patchCollectionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionPatchRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "patchCollectionArtifacts" + ] + } + ], + "summary": "Patch collection in org and team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "patchCollectionArtifacts", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/collections/{collection-name}/artifacts/org/{artifact-org-name}/team/{artifact-team-name}/{artifact-type}/{artifact-name}": { + "delete": { + "description": "Remove artifact from the specified collection in the specified org and team from another org and team", + "operationId": "removeArtifactFromCollectionInTeamFromAnotherOrgAndTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact organization name", + "in": "path", + "name": "artifact-org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact team name", + "in": "path", + "name": "artifact-team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Remove artifact from collection in org and team from another org and team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "description": "Add artifact to the specified collection in the specified org and team from another org and team", + "operationId": "addArtifactToCollectionInTeamFromAnotherOrgAndTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact organization name", + "in": "path", + "name": "artifact-org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact team name", + "in": "path", + "name": "artifact-team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "addArtifactToCollectionFromAnotherOrgOrTeam" + ] + } + ], + "summary": "Add artifact to collection in org and team from another org and team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "addArtifactToCollectionFromAnotherOrgOrTeam", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/collections/{collection-name}/artifacts/org/{artifact-org-name}/{artifact-type}/{artifact-name}": { + "delete": { + "description": "Remove artifact from the specified collection in the specified org and team from another org", + "operationId": "removeArtifactFromCollectionInTeamFromAnotherOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact organization name", + "in": "path", + "name": "artifact-org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Remove artifact from collection in org and team from another org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "description": "Add artifact to the specified collection in the specified org and team from another org", + "operationId": "addArtifactToCollectionInTeamFromAnotherOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact organization name", + "in": "path", + "name": "artifact-org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "addArtifactToCollectionFromAnotherOrgOrTeam" + ] + } + ], + "summary": "Add artifact to collection in org and team from another org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "addArtifactToCollectionFromAnotherOrgOrTeam", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/collections/{collection-name}/artifacts/{artifact-type}": { + "get": { + "description": "List collection artifacts the user can access in the specified org and team", + "operationId": "listCollectionArtifactsInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Order by", + "in": "query", + "name": "order-by", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listCollectionArtifacts" + ] + } + ], + "summary": "List collection artifacts in org and team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas", + "listCollectionArtifacts" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/collections/{collection-name}/share": { + "delete": { + "description": "Undo publishing of collection to public", + "operationId": "undoPublishCollection", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "undoPublishCollection" + ] + } + ], + "summary": "Undo publishing of collection to public", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "undoPublishCollection" + ] + }, + "put": { + "description": "Publish collection to public", + "operationId": "publishCollection", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Indicates if guest users can download this collection", + "in": "query", + "name": "guest-can-download", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "description": "Indicates if collection is listed publicly", + "in": "query", + "name": "public-can-list", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishCollection" + ] + } + ], + "summary": "Publish collection to public", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishCollection" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/collections/{collection-name}/share/product": { + "put": { + "description": "Publish collection to product", + "operationId": "publishCollectionFromRequest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionPublishRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishCollection" + ] + } + ], + "summary": "Publish collection to product", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishCollection" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/collections/{collection-name}/shares/org": { + "delete": { + "deprecated": true, + "description": "Revoke shared team collection with the org", + "operationId": "revokeShareCollectionInTeamWithOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Revoke shared team collection with the org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "deprecated": true, + "description": "Share team collection with the org", + "operationId": "shareCollectionInTeamWithOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Share team collection with the org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/collections/{collection-name}/shares/team/{target-team}": { + "delete": { + "deprecated": true, + "description": "Revoke shared team collection with the specified team", + "operationId": "revokeShareCollectionInTeamWithTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Target team name", + "in": "path", + "name": "target-team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Revoke shared team collection with the specified team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "deprecated": true, + "description": "Share team collection with the specified team", + "operationId": "shareCollectionInTeamWithTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Target team name", + "in": "path", + "name": "target-team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Share team collection with the specified team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/collections/{collection-name}/{artifact-type}/{artifact-name}": { + "delete": { + "description": "Remove artifact from the specified collection in the specified org and team", + "operationId": "removeArtifactFromCollectionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Remove artifact from collection in org and team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "description": "Add artifact to the specified collection in the specified org and team", + "operationId": "addArtifactToCollectionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Collection name", + "in": "path", + "name": "collection-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Add artifact to collection in org and team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/files/commit": { + "post": { + "description": "Commit artifact files metadata to database given request", + "operationId": "commitArtifactFiles_1", + "parameters": [ + { + "description": "Org Name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team Name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Upload pending flag - if set to true, leaves the artifact version in UPLOAD PENDING state without marking it complete", + "in": "query", + "name": "upload-pending", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Set version to latest", + "in": "query", + "name": "set-latest", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactFilesCommitRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Commit artifact files metadata to database", + "tags": [ + "ArtifactChecksum" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/helm-charts/{artifact-name}/versions": { + "get": { + "description": "List chart versions in team", + "operationId": "listHelmChartVersionsInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listArtifactVersions" + ] + } + ], + "summary": "List chart versions in team", + "tags": [ + "Helm Charts" + ], + "x-ssa-scopes": [ + "kas", + "listArtifactVersions" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/helm-charts/{artifact-name}/versions/{version-id}": { + "get": { + "description": "Get chart version in team", + "operationId": "getHelmChartVersionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getArtifactVersion" + ] + } + ], + "summary": "Get chart version in team", + "tags": [ + "Helm Charts" + ], + "x-ssa-scopes": [ + "getArtifactVersion", + "kas" + ] + }, + "patch": { + "description": "Update chart version information in team e.g. upload status", + "operationId": "updateHelmChartVersionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateArtifactVersion" + ] + } + ], + "summary": "Update chart version in team", + "tags": [ + "Helm Charts" + ], + "x-ssa-scopes": [ + "updateArtifactVersion", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/models": { + "get": { + "description": "This operation lists models the user can access in the org/team.", + "operationId": "listModelsInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "deprecated": true, + "description": "Application name", + "in": "query", + "name": "app-name", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "deprecated": true, + "description": "[Deprecated] Page reference, Use page-number instead", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listModels" + ] + } + ], + "summary": "List models in team", + "tags": [ + "Models" + ], + "x-ssa-scopes": [ + "kas", + "listModels" + ] + }, + "post": { + "description": "This operation creates a model in the org/team.", + "operationId": "createModelInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createModel" + ] + } + ], + "summary": "Create model in team", + "tags": [ + "Models" + ], + "x-ssa-scopes": [ + "createModel", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/models/{artifact-name}/versions/{version-id}/stash": { + "patch": { + "description": "Stash artifact version information in team in model version upload paused state", + "operationId": "stashArtifactVersionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateModelVersion" + ] + } + ], + "summary": "Stash artifact version in team", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "updateModelVersion", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/models/{model-name}": { + "get": { + "description": "This operation gets info of a model in the org/team.", + "operationId": "getModelInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getModel" + ] + } + ], + "summary": "Get model in team", + "tags": [ + "Models" + ], + "x-ssa-scopes": [ + "getModel", + "kas" + ] + }, + "patch": { + "description": "This operation updates details of a model in the org/team.", + "operationId": "updateModelInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateModel" + ] + } + ], + "summary": "Update model in team", + "tags": [ + "Models" + ], + "x-ssa-scopes": [ + "updateModel", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/models/{model-name}/encryption-key": { + "delete": { + "description": "Disassociate encryption key from model in team and mark it for offline deletion", + "operationId": "disassociateKeyFromModelInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkflowStatusUrlResponse" + } + } + }, + "description": "Accepted" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Disassociate encryption key from model in team", + "tags": [ + "Models" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/models/{model-name}/versions": { + "get": { + "description": "List model versions in team", + "operationId": "listModelVersionsInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listModelVersions" + ] + } + ], + "summary": "List model versions in team", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "listModelVersions", + "kas" + ] + }, + "post": { + "description": "Create model version in team. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org", + "operationId": "createModelVersionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createModelVersion" + ] + } + ], + "summary": "Create model version in team.", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "kas", + "createModelVersion" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/models/{model-name}/versions/{version-id}": { + "get": { + "description": "Get model version in team", + "operationId": "getModelVersionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getModelVersion", + "getModelVersionFilterByOrgEnablement" + ] + } + ], + "summary": "Get model version in team", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "getModelVersionFilterByOrgEnablement", + "getModelVersion", + "kas" + ] + }, + "patch": { + "description": "Update model version information in team e.g. upload status", + "operationId": "updateModelVersionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Create zip of version content", + "in": "query", + "name": "create-zip", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Set version to latest", + "in": "query", + "name": "set-latest", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateModelVersion" + ] + } + ], + "summary": "Update model version in team", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "updateModelVersion", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/models/{model-name}/versions/{version-id}/apps/{app-name}": { + "delete": { + "deprecated": true, + "description": "Delete model app association", + "operationId": "deleteModelAppAssociation", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + }, + { + "description": "App Name", + "in": "path", + "name": "app-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Delete model app association", + "tags": [ + "Apps" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "deprecated": true, + "description": "Update model app association", + "operationId": "updateModelAppAssociation", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + }, + { + "description": "App Name", + "in": "path", + "name": "app-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Update model app association", + "tags": [ + "Apps" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/models/{model-name}/versions/{version-id}/files": { + "get": { + "description": "List files of the model version in team", + "operationId": "listModeFilesInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "model-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + }, + { + "ssa": [ + "listModelVersionFilesFilterByOrgEnablement" + ] + }, + { + "ssa": [ + "listModelVersionFiles" + ] + } + ], + "summary": "List model files in team", + "tags": [ + "Model Version Files" + ], + "x-ssa-scopes": [ + "listModelVersionFiles", + "listModelVersionFilesFilterByOrgEnablement", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/recipes": { + "get": { + "description": "List recipes the user can access in the specified org and team", + "operationId": "listRecipesInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Application name", + "in": "query", + "name": "app-name", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listRecipes" + ] + } + ], + "summary": "List recipes in team", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "listRecipes", + "kas" + ] + }, + "post": { + "description": "Create recipe in team", + "operationId": "createRecipeInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createRecipe" + ] + } + ], + "summary": "Create recipe in team", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "createRecipe", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/recipes/{recipe-name}": { + "get": { + "description": "Get recipe details in team", + "operationId": "getRecipeInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getRecipe" + ] + } + ], + "summary": "Get recipe in team", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "getRecipe", + "kas" + ] + }, + "patch": { + "description": "Update recipe details in team", + "operationId": "updateRecipeInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateRecipe" + ] + } + ], + "summary": "Update recipe in team", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "updateRecipe", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/recipes/{recipe-name}/versions": { + "get": { + "description": "List recipe versions in team", + "operationId": "listRecipeVersionsInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listRecipeVersions" + ] + } + ], + "summary": "List recipe versions in team", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "listRecipeVersions", + "kas" + ] + }, + "post": { + "description": "Create recipe version in team. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org", + "operationId": "createRecipeVersionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createRecipeVersion" + ] + } + ], + "summary": "Create recipe version in team", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "createRecipeVersion", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/recipes/{recipe-name}/versions/{version-id}": { + "get": { + "description": "Get recipe version in team", + "operationId": "getRecipeVersionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getRecipeVersion", + "getRecipeVersionFilterByOrgEnablement" + ] + } + ], + "summary": "Get recipe version in team", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "getRecipeVersion", + "getRecipeVersionFilterByOrgEnablement", + "kas" + ] + }, + "patch": { + "description": "Update recipe version information in team e.g. upload status", + "operationId": "updateRecipeVersionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Create zip of version content", + "in": "query", + "name": "create-zip", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Set version to latest", + "in": "query", + "name": "set-latest", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateRecipeVersion" + ] + } + ], + "summary": "Update recipe version in team", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "updateRecipeVersion", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/recipes/{recipe-name}/versions/{version-id}/files": { + "get": { + "description": "List recipe files in team", + "operationId": "listRecipeFilesInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "listRecipeVersionFilesFilterByOrgEnablement" + ] + }, + { + "ssa": [ + "kas" + ] + }, + { + "ssa": [ + "listRecipeVersionFiles" + ] + } + ], + "summary": "List recipe files in team", + "tags": [ + "Resource Version Files endpoints" + ], + "x-ssa-scopes": [ + "listRecipeVersionFiles", + "listRecipeVersionFilesFilterByOrgEnablement", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/repositories/{container-name}/associated-models": { + "get": { + "description": "List associated model versions by container", + "operationId": "listModelVersionsAssociatedByContainer_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Container name", + "in": "path", + "name": "container-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listModelVersions" + ] + } + ], + "summary": "List associated model versions by container", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "listModelVersions", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/repositories/{container-name}/tags/{container-tag}/associated-models": { + "get": { + "description": "List associated model versions by container", + "operationId": "listModelVersionsAssociatedByContainer_3", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Container name", + "in": "path", + "name": "container-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Container tag", + "in": "path", + "name": "container-tag", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModelVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listModelVersions" + ] + } + ], + "summary": "List associated model versions by container", + "tags": [ + "Model Version" + ], + "x-ssa-scopes": [ + "listModelVersions", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/resources": { + "get": { + "description": "List recipes the user can access in the specified org and team", + "operationId": "listRecipesInTeam_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Application name", + "in": "query", + "name": "app-name", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listRecipes" + ] + } + ], + "summary": "List recipes in team", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "listRecipes", + "kas" + ] + }, + "post": { + "description": "Create recipe in team", + "operationId": "createRecipeInTeam_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createRecipe" + ] + } + ], + "summary": "Create recipe in team", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "createRecipe", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/resources/{recipe-name}": { + "get": { + "description": "Get recipe details in team", + "operationId": "getRecipeInTeam_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getRecipe" + ] + } + ], + "summary": "Get recipe in team", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "getRecipe", + "kas" + ] + }, + "patch": { + "description": "Update recipe details in team", + "operationId": "updateRecipeInTeam_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateRecipe" + ] + } + ], + "summary": "Update recipe in team", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [ + "updateRecipe", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/resources/{recipe-name}/versions": { + "get": { + "description": "List recipe versions in team", + "operationId": "listRecipeVersionsInTeam_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listRecipeVersions" + ] + } + ], + "summary": "List recipe versions in team", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "listRecipeVersions", + "kas" + ] + }, + "post": { + "description": "Create recipe version in team. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org", + "operationId": "createRecipeVersionInTeam_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createRecipeVersion" + ] + } + ], + "summary": "Create recipe version in team", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "createRecipeVersion", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/resources/{recipe-name}/versions/{version-id}": { + "get": { + "description": "Get recipe version in team", + "operationId": "getRecipeVersionInTeam_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getRecipeVersion", + "getRecipeVersionFilterByOrgEnablement" + ] + } + ], + "summary": "Get recipe version in team", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "getRecipeVersion", + "getRecipeVersionFilterByOrgEnablement", + "kas" + ] + }, + "patch": { + "description": "Update recipe version information in team e.g. upload status", + "operationId": "updateRecipeVersionInTeam_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Create zip of version content", + "in": "query", + "name": "create-zip", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Set version to latest", + "in": "query", + "name": "set-latest", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateRecipeVersion" + ] + } + ], + "summary": "Update recipe version in team", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [ + "updateRecipeVersion", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/resources/{recipe-name}/versions/{version-id}/files": { + "get": { + "description": "List recipe files in team", + "operationId": "listRecipeFilesInTeam_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "listRecipeVersionFilesFilterByOrgEnablement" + ] + }, + { + "ssa": [ + "kas" + ] + }, + { + "ssa": [ + "listRecipeVersionFiles" + ] + } + ], + "summary": "List recipe files in team", + "tags": [ + "Resource Version Files endpoints" + ], + "x-ssa-scopes": [ + "listRecipeVersionFiles", + "listRecipeVersionFilesFilterByOrgEnablement", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}": { + "get": { + "description": "List artifacts the user can access in the specified org and team", + "operationId": "listArtifactsInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listArtifacts" + ] + } + ], + "summary": "List artifacts in team", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "listArtifacts", + "kas" + ] + }, + "post": { + "description": "Create artifact in team", + "operationId": "createArtifactInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createArtifact" + ] + } + ], + "summary": "Create artifact in team", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "createArtifact", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}": { + "delete": { + "description": "Delete artifact in team", + "operationId": "deleteArtifactInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "deleteArtifact" + ] + } + ], + "summary": "Delete artifact in team", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "deleteArtifact", + "kas" + ] + }, + "get": { + "description": "Get artifact details in team", + "operationId": "getArtifactInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getArtifact" + ] + } + ], + "summary": "Get artifact in team", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "getArtifact", + "kas" + ] + }, + "patch": { + "description": "Update artifact details in team", + "operationId": "updateArtifactInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateArtifact" + ] + } + ], + "summary": "Update artifact in team", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "updateArtifact", + "kas" + ] + }, + "put": { + "description": "Replace artifact details in team", + "operationId": "replaceArtifactInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateArtifact" + ] + } + ], + "summary": "Replace artifact in team", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "updateArtifact", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/catalog/flags": { + "get": { + "description": "Get the Catalog Public flags for artifact in team", + "operationId": "getPublicFlagsInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactCatalogFlags" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "getPublicFlags" + ] + } + ], + "summary": "Get Catalog flags", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "getPublicFlags" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/collections": { + "get": { + "description": "List artifact collections the user can access in the specified org and team", + "operationId": "listArtifactCollectionsInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Order by", + "in": "query", + "name": "order-by", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List artifact collections in org and team", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/collections/sync-release-type-labels": { + "post": { + "description": "Sync release type labels for all collections containing this artifact. Internal API for service-to-service communication.", + "operationId": "syncCollectionReleaseTypeLabelsForArtifact_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "syncReleaseTypeLabels" + ] + } + ], + "summary": "Sync collection release type labels for artifact", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas", + "syncReleaseTypeLabels" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/deployments/params": { + "get": { + "description": "List artifact deployment parameters in team", + "operationId": "listArtifactDeploymentParametersInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List artifact deployment parameters in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/deployments/{csp-name}/parameters": { + "post": { + "description": "Create artifact deployment parameters in team", + "operationId": "createArtifactDeploymentParametersInTeam_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "No auto labels", + "in": "query", + "name": "no-auto-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Merge CSP parameters in response", + "in": "query", + "name": "merge-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create artifact deployment parameters in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/deployments/{csp-name}/params": { + "delete": { + "description": "Delete artifact deployment parameters in team", + "operationId": "deleteArtifactDeploymentParametersInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Delete artifact deployment parameters in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "description": "Get artifact deployment parameters details in team", + "operationId": "getArtifactDeploymentParametersInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Get artifact deployment parameters details in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "patch": { + "description": "Update artifact deployment parameters in team", + "operationId": "updateArtifactDeploymentParametersInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Merge CSP parameters in response", + "in": "query", + "name": "merge-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Update artifact deployment parameters in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "post": { + "description": "Create artifact deployment parameters in team", + "operationId": "createArtifactDeploymentParametersInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "No auto labels", + "in": "query", + "name": "no-auto-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Merge CSP parameters in response", + "in": "query", + "name": "merge-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create artifact deployment parameters in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/files": { + "post": { + "description": "Check if file exists based on checksum provided in request", + "operationId": "checkArtifactFilesExistByChecksum_1", + "parameters": [ + { + "description": "Org Name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team Name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact Type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact Name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactFilesChecksumExistsRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactFilesChecksumExistsResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Check if file exists based on checksum", + "tags": [ + "ArtifactChecksum" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/license/acceptance": { + "get": { + "description": "Check if user needs to accept license. Checks against uam", + "operationId": "getOrgArtifactLicenseAcceptance_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Check if user needs to accept license", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "post": { + "description": "Record license acceptance for an org artifact.", + "operationId": "acceptArtifactLicense_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AcceptArtifactLicenseRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Accept artifact license", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/release-type": { + "put": { + "description": "Updates the release type (for example GA, EA, beta) of an artifact version within the specified organization and optional team.", + "operationId": "updateReleaseLabel_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateReleaseTypeRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "publishArtifact" + ] + } + ], + "summary": "Update artifact version release type", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishArtifact", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/share": { + "delete": { + "description": "Undo publishing of artifact to public", + "operationId": "undoPublishArtifact_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "undoPublishArtifact" + ] + } + ], + "summary": "Undo publishing of artifact to public", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "undoPublishArtifact" + ] + }, + "put": { + "description": "Publish artifact to public", + "operationId": "publishArtifact_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Indicates if guest users can download this artifact", + "in": "query", + "name": "guest-can-download", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "description": "Indicates if artifact is listed publicly", + "in": "query", + "name": "public-can-list", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishArtifact" + ] + } + ], + "summary": "Publish artifact to public", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishArtifact" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/share/product": { + "delete": { + "description": "Undo publishing of product artifacts", + "operationId": "undoPublishProduct_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "undoPublishArtifact" + ] + } + ], + "summary": "Undo publishing of product artifacts", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "undoPublishArtifact" + ] + }, + "put": { + "description": "Publish artifact to product", + "operationId": "publishArtifactFromRequest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactPublishRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishArtifact" + ] + } + ], + "summary": "Publish artifact to product", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishArtifact" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/terms-of-service": { + "put": { + "description": "Update artifact terms of service", + "operationId": "updateTermsOfService_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactPublishRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishArtifact", + "kas" + ] + } + ], + "summary": "Update artifact terms of service", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishArtifact", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/versions/{version-id}": { + "delete": { + "description": "Delete a artifact version in team", + "operationId": "deleteArtifactVersionInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "deleteArtifactVersion" + ] + } + ], + "summary": "Delete a artifact version in team", + "tags": [ + "Artifact Versions" + ], + "x-ssa-scopes": [ + "deleteArtifactVersion", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/versions/{version-id}/configs": { + "patch": { + "description": "Update artifact version with configs like policy badge", + "operationId": "updateTagLevelPublishConfigs_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateArtifactVersionConfigs" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishArtifact" + ] + } + ], + "summary": "Publish artifact version with configs like policy badge", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishArtifact" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/versions/{version-id}/deployments/{csp-name}": { + "post": { + "description": "Create artifact version deployment url in team", + "operationId": "createArtifactDeploymentUrlInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlResponse" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create artifact version deployment url in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/versions/{version-id}/files": { + "get": { + "description": "List files of the artifact version in team", + "operationId": "listArtifactFilesInTeam", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "listArtifactVersionFiles" + ] + }, + { + "ssa": [ + "listArtifactVersionFilesFilterByOrgEnablement" + ] + }, + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List artifact files in team", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [ + "listArtifactVersionFiles", + "kas", + "listArtifactVersionFilesFilterByOrgEnablement" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/versions/{version-id}/files/**": { + "delete": { + "description": "Delete artifact file in team", + "operationId": "deleteArtifactFileInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Delete artifact file in team", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "deprecated": true, + "description": "Download the specified file of the artifact version in team", + "operationId": "downloadArtifactFileInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "downloadArtifactVersionFile" + ] + } + ], + "summary": "Download artifact file in team", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [ + "kas", + "downloadArtifactVersionFile" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/versions/{version-id}/files/**/deployments/{csp-name}": { + "post": { + "description": "Create artifact version file deployment url in team", + "operationId": "createArtifactVersionFileDeploymentUrlInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlResponse" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create artifact version file deployment url in team", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/versions/{version-id}/files/**/zip/download": { + "get": { + "deprecated": true, + "description": "Download the specified file of the artifact version in team as zip", + "operationId": "downloadArtifactFileInTeamAsZip", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "binary", + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Download artifact file in team as zip", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/versions/{version-id}/signature": { + "get": { + "description": "Request to retrieve a pre-signed Download URL for the signature of an artifact version", + "operationId": "getArtifactVersionSignature_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Get redirect URL", + "in": "query", + "name": "redirect", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "tags": [ + "ArtifactSigning" + ], + "x-ssa-scopes": [] + }, + "put": { + "description": "Request to sign artifact version", + "operationId": "signArtifactVersion_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactDownloadResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "signArtifactVersion" + ] + } + ], + "tags": [ + "ArtifactSigning" + ], + "x-ssa-scopes": [ + "signArtifactVersion", + "kas" + ] + } + }, + "/v1/org/{org-name}/team/{team-name}/{artifact-type}/{artifact-name}/versions/{version-id}/zip": { + "get": { + "deprecated": true, + "description": "Download all files of a team artifact in a zip", + "operationId": "downloadAllFilesInTeam", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Download all files of a team artifact in a zip", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}": { + "get": { + "description": "List artifacts the user can access in the specified org", + "operationId": "listArtifactsInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "listArtifacts" + ] + } + ], + "summary": "List artifacts in org", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "listArtifacts", + "kas" + ] + }, + "post": { + "description": "Create artifact in org", + "operationId": "createArtifactInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "createArtifact" + ] + } + ], + "summary": "Create artifact in org", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "createArtifact", + "kas" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}": { + "delete": { + "description": "Delete artifact in org", + "operationId": "deleteArtifactInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "deleteArtifact" + ] + } + ], + "summary": "Delete artifact in org", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "deleteArtifact", + "kas" + ] + }, + "get": { + "description": "Get artifact details in org", + "operationId": "getArtifactInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getArtifact" + ] + } + ], + "summary": "Get artifact in org", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "getArtifact", + "kas" + ] + }, + "patch": { + "description": "Update artifact details in org", + "operationId": "updateArtifactInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateArtifact" + ] + } + ], + "summary": "Update artifact in org", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "updateArtifact", + "kas" + ] + }, + "put": { + "description": "Replace artifact details in org", + "operationId": "replaceArtifactInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "updateArtifact" + ] + } + ], + "summary": "Replace artifact in org", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "updateArtifact", + "kas" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}/catalog/flags": { + "get": { + "description": "Get the Catalog Public flags for artifact in org", + "operationId": "getPublicFlagsInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactCatalogFlags" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "getPublicFlags" + ] + } + ], + "summary": "Get Catalog flags", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "getPublicFlags" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}/collections": { + "get": { + "description": "List artifact collections the user can access in the specified org", + "operationId": "listArtifactCollectionsInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Order by", + "in": "query", + "name": "order-by", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List artifact collections in org", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}/collections/sync-release-type-labels": { + "post": { + "description": "Sync release type labels for all collections containing this artifact. Internal API for service-to-service communication.", + "operationId": "syncCollectionReleaseTypeLabelsForArtifact", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "syncReleaseTypeLabels" + ] + } + ], + "summary": "Sync collection release type labels for artifact", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [ + "kas", + "syncReleaseTypeLabels" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}/deployments/params": { + "get": { + "description": "List artifact deployment parameters in org", + "operationId": "listArtifactDeploymentParametersInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List artifact deployment parameters in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}/deployments/{csp-name}/params": { + "delete": { + "description": "Delete artifact deployment parameters in org", + "operationId": "deleteArtifactDeploymentParametersInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Delete artifact deployment parameters in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "description": "Get artifact deployment parameters details in org", + "operationId": "getArtifactDeploymentParametersInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Inherit CSP parameters", + "in": "query", + "name": "inherit-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Get artifact deployment parameters details in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "patch": { + "description": "Update artifact deployment parameters in org", + "operationId": "updateArtifactDeploymentParametersInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Merge CSP parameters in response", + "in": "query", + "name": "merge-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Update artifact deployment parameters in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "post": { + "description": "Create artifact deployment parameters in org", + "operationId": "createArtifactDeploymentParametersInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "No auto labels", + "in": "query", + "name": "no-auto-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Merge CSP parameters in response", + "in": "query", + "name": "merge-csp-parameters", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParametersCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentParameters" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create artifact deployment parameters in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}/files": { + "post": { + "description": "Check if file exists based on checksum provided in request", + "operationId": "checkArtifactFilesExistByChecksum", + "parameters": [ + { + "description": "Org Name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact Type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact Name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 1000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactFilesChecksumExistsRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactFilesChecksumExistsResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Check if file exists based on checksum", + "tags": [ + "ArtifactChecksum" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}/license/acceptance": { + "get": { + "description": "Check if user needs to accept license. Checks against uam", + "operationId": "getOrgArtifactLicenseAcceptance", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Check if user needs to accept license", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "post": { + "description": "Record license acceptance for an org artifact.", + "operationId": "acceptArtifactLicense", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AcceptArtifactLicenseRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Accept artifact license", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}/release-type": { + "put": { + "description": "Updates the release type (for example GA, EA, beta) of an artifact version within the specified organization and optional team.", + "operationId": "updateReleaseLabel", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateReleaseTypeRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "publishArtifact" + ] + } + ], + "summary": "Update artifact version release type", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishArtifact", + "kas" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}/share": { + "delete": { + "description": "Undo publishing of artifact to public", + "operationId": "undoPublishArtifact", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "undoPublishArtifact" + ] + } + ], + "summary": "Undo publishing of artifact to public", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "undoPublishArtifact" + ] + }, + "put": { + "description": "Publish artifact to public", + "operationId": "publishArtifact", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Indicates if guest users can download this artifact", + "in": "query", + "name": "guest-can-download", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "description": "Indicates if artifact is listed publicly", + "in": "query", + "name": "public-can-list", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishArtifact" + ] + } + ], + "summary": "Publish artifact to public", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishArtifact" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}/share/product": { + "delete": { + "description": "Undo publishing of product artifacts", + "operationId": "undoPublishProduct", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "undoPublishArtifact" + ] + } + ], + "summary": "Undo publishing of product artifacts", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "undoPublishArtifact" + ] + }, + "put": { + "description": "Publish artifact to product", + "operationId": "publishArtifactFromRequest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactPublishRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishArtifact" + ] + } + ], + "summary": "Publish artifact to product", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishArtifact" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}/terms-of-service": { + "put": { + "description": "Update artifact terms of service", + "operationId": "updateTermsOfService", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactPublishRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishArtifact", + "kas" + ] + } + ], + "summary": "Update artifact terms of service", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishArtifact", + "kas" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}/versions/{version-id}": { + "delete": { + "description": "Delete a artifact version in org", + "operationId": "deleteArtifactVersionInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "deleteArtifactVersion" + ] + } + ], + "summary": "Delete a artifact version in org", + "tags": [ + "Artifact Versions" + ], + "x-ssa-scopes": [ + "deleteArtifactVersion", + "kas" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}/versions/{version-id}/configs": { + "patch": { + "description": "Update artifact version with configs like policy badge", + "operationId": "updateTagLevelPublishConfigs", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateArtifactVersionConfigs" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "publishArtifact" + ] + } + ], + "summary": "Publish artifact version with configs like policy badge", + "tags": [ + "Publish" + ], + "x-ssa-scopes": [ + "publishArtifact" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}/versions/{version-id}/deployments/{csp-name}": { + "post": { + "description": "Create artifact version deployment url in org", + "operationId": "createArtifactDeploymentUrlInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlResponse" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create artifact version deployment url in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}/versions/{version-id}/files": { + "get": { + "description": "List files of the artifact version in org", + "operationId": "listArtifactFilesInOrg", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "listArtifactVersionFiles" + ] + }, + { + "ssa": [ + "listArtifactVersionFilesFilterByOrgEnablement" + ] + }, + { + "ssa": [ + "kas" + ] + } + ], + "summary": "List artifact files in org", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [ + "listArtifactVersionFiles", + "kas", + "listArtifactVersionFilesFilterByOrgEnablement" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}/versions/{version-id}/files/**": { + "delete": { + "description": "Delete artifact file in org", + "operationId": "deleteArtifactFileInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Delete artifact file in org", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "get": { + "deprecated": true, + "description": "Download the specified file of the artifact version in org", + "operationId": "downloadArtifactFileInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "downloadArtifactVersionFile" + ] + } + ], + "summary": "Download artifact file in org", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [ + "kas", + "downloadArtifactVersionFile" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}/versions/{version-id}/files/**/deployments/{csp-name}": { + "post": { + "description": "Create artifact version file deployment url in org", + "operationId": "createArtifactVerionFileDeploymentUrlInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "repositories", + "recipes", + "models" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Cloud service provider name", + "in": "path", + "name": "csp-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentUrlResponse" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Conflict" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Create artifact version file deployment url in org", + "tags": [ + "Artifact deployment parameters" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}/versions/{version-id}/files/*/zip/download": { + "get": { + "deprecated": true, + "description": "Download the specified file of the artifact version in org as zip", + "operationId": "downloadArtifactFileInOrgAsZip", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "binary", + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Download artifact file in org as zip", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}/versions/{version-id}/signature": { + "get": { + "description": "Request to retrieve a pre-signed Download URL for the signature of an artifact version", + "operationId": "getArtifactVersionSignature", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Get redirect URL", + "in": "query", + "name": "redirect", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "tags": [ + "ArtifactSigning" + ], + "x-ssa-scopes": [] + }, + "put": { + "description": "Request to sign artifact version", + "operationId": "signArtifactVersion", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactDownloadResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "signArtifactVersion" + ] + } + ], + "tags": [ + "ArtifactSigning" + ], + "x-ssa-scopes": [ + "signArtifactVersion", + "kas" + ] + } + }, + "/v1/org/{org-name}/{artifact-type}/{artifact-name}/versions/{version-id}/zip": { + "get": { + "deprecated": true, + "description": "Download all files of an org artifact in a zip", + "operationId": "downloadAllFilesInOrg", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Download all files of an org artifact in a zip", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{orgName}/team/{teamName}/{artifact-type}/{artifact-name}/versions/{version-id}/malware-scan": { + "post": { + "description": "Initiates malwares can for the artifact", + "operationId": "initiateMalwareScan_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "teamName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Contact email", + "in": "query", + "name": "contact-email", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 320, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Nspect identifier", + "in": "query", + "name": "nspect-id", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 64, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Initiates malwares can for the artifact", + "tags": [ + "MalwareScan" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{orgName}/team/{teamName}/{artifactType}/playground": { + "post": { + "deprecated": true, + "description": "Create AI Playground for model", + "operationId": "createModelAIPlayground_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "teamName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "writeArtifacts" + ] + } + ], + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "writeArtifacts", + "kas" + ] + } + }, + "/v1/org/{orgName}/team/{teamName}/{artifactType}/playground/{artifactName}": { + "delete": { + "deprecated": true, + "description": "Delete AI Playground for model", + "operationId": "deleteModelAIPlayground_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "teamName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifactName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "deleteArtifacts" + ] + } + ], + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "deleteArtifacts", + "kas" + ] + }, + "get": { + "deprecated": true, + "description": "Get AI Playground for model", + "operationId": "getModelAIPlayground_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "teamName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifactName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getArtifact" + ] + } + ], + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "getArtifact", + "kas" + ] + }, + "put": { + "deprecated": true, + "description": "Update AI Playground for model", + "operationId": "updateModelAIPlayground_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "teamName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifactName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "writeArtifacts" + ] + } + ], + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "writeArtifacts", + "kas" + ] + } + }, + "/v1/org/{orgName}/team/{teamName}/{artifactType}/spec": { + "post": { + "description": "Create AI Playground for artifactType", + "operationId": "createModelArtifactsSpec_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "teamName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "writeArtifacts" + ] + } + ], + "summary": "Create AI Playground for artifactType", + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "writeArtifacts", + "kas" + ] + } + }, + "/v1/org/{orgName}/team/{teamName}/{artifactType}/{artifactName}/purge": { + "delete": { + "description": "Purge Search DB for deleted artifacts", + "operationId": "purgeDeletedArtifact_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "teamName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifactName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "purgeArtifact" + ] + } + ], + "summary": "Purge Search DB", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "kas", + "purgeArtifact" + ] + } + }, + "/v1/org/{orgName}/team/{teamName}/{artifactType}/{artifactName}/spec": { + "delete": { + "description": "Delete AI Playground for artifactType", + "operationId": "deleteModelArtifactsSpec_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "teamName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifactName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "deleteArtifacts" + ] + } + ], + "summary": "Delete AI Playground for artifactType", + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "deleteArtifacts", + "kas" + ] + }, + "get": { + "description": "Get AI Playground for artifactType", + "operationId": "getModelArtifactsSpec_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "teamName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifactName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getArtifact" + ] + } + ], + "summary": "Get AI Playground for artifactType", + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "getArtifact", + "kas" + ] + }, + "put": { + "description": "Update AI Playground for artifactType", + "operationId": "updateModelArtifactsSpec_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "teamName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifactName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "writeArtifacts" + ] + } + ], + "summary": "Update AI Playground for artifactType", + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "writeArtifacts", + "kas" + ] + } + }, + "/v1/org/{orgName}/{artifact-type}/{artifact-name}/versions/{version-id}/malware-scan": { + "post": { + "description": "Initiates malwares can for the artifact", + "operationId": "initiateMalwareScan", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 512, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Contact email", + "in": "query", + "name": "contact-email", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 320, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Nspect identifier", + "in": "query", + "name": "nspect-id", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 64, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Initiates malwares can for the artifact", + "tags": [ + "MalwareScan" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{orgName}/{artifactType}/playground": { + "post": { + "deprecated": true, + "description": "Create AI Playground for model", + "operationId": "createModelAIPlayground", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "writeArtifacts" + ] + } + ], + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "writeArtifacts", + "kas" + ] + } + }, + "/v1/org/{orgName}/{artifactType}/playground/{artifactName}": { + "delete": { + "deprecated": true, + "description": "Delete AI Playground for model", + "operationId": "deleteModelAIPlayground", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifactName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "deleteArtifacts" + ] + } + ], + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "deleteArtifacts", + "kas" + ] + }, + "get": { + "deprecated": true, + "description": "Get AI Playground for model", + "operationId": "getModelAIPlayground", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifactName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getArtifact" + ] + } + ], + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "getArtifact", + "kas" + ] + }, + "put": { + "deprecated": true, + "description": "Update AI Playground for model", + "operationId": "updateModelAIPlayground", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifactName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "writeArtifacts" + ] + } + ], + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "writeArtifacts", + "kas" + ] + } + }, + "/v1/org/{orgName}/{artifactType}/spec": { + "post": { + "description": "Create AI Playground for artifactType", + "operationId": "createModelArtifactsSpec", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "writeArtifacts" + ] + } + ], + "summary": "Create AI Playground for artifactType", + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "writeArtifacts", + "kas" + ] + } + }, + "/v1/org/{orgName}/{artifactType}/{artifactName}/purge": { + "delete": { + "description": "Purge Search DB for deleted artifacts", + "operationId": "purgeDeletedArtifact", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifactName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "purgeArtifact" + ] + } + ], + "summary": "Purge Search DB", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [ + "kas", + "purgeArtifact" + ] + } + }, + "/v1/org/{orgName}/{artifactType}/{artifactName}/spec": { + "delete": { + "description": "Delete AI Playground for artifactType", + "operationId": "deleteModelArtifactsSpec", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifactName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "deleteArtifacts" + ] + } + ], + "summary": "Delete AI Playground for artifactType", + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "deleteArtifacts", + "kas" + ] + }, + "get": { + "description": "Get AI Playground for artifactType", + "operationId": "getModelArtifactsSpec", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifactName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "getArtifact" + ] + } + ], + "summary": "Get AI Playground for artifactType", + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "getArtifact", + "kas" + ] + }, + "put": { + "description": "Update AI Playground for artifactType", + "operationId": "updateModelArtifactsSpec", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifactName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "writeArtifacts" + ] + } + ], + "summary": "Update AI Playground for artifactType", + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [ + "writeArtifacts", + "kas" + ] + } + }, + "/v1/org/{org}/files/clone": { + "put": { + "description": "Synchronously copies the files of a source artifact version into a target artifact version within the organization (and optional team).", + "operationId": "cloneArtifactVersionFiles", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloneArtifactVersionFilesRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "cloneArtifact" + ] + } + ], + "summary": "Clone Artifact files", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "kas", + "cloneArtifact" + ] + } + }, + "/v1/org/{org}/files/clone/status": { + "put": { + "description": "Returns the current status (pending, running, completed, or failed) of an asynchronous artifact file clone workflow.", + "operationId": "cloneArtifactVersionFilesStatus", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloneArtifactVersionFilesRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloneArtifactFilesStatusResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "cloneArtifact" + ] + } + ], + "summary": "Clone Artifact files Status", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "kas", + "cloneArtifact" + ] + } + }, + "/v1/org/{org}/files/multipart": { + "delete": { + "description": "Cancels an in-progress multipart upload and releases any partially uploaded parts associated with the upload session.", + "operationId": "abortFileUpload", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MultipartUploadAbortRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Abort a multipart upload for an artifact file.", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "post": { + "description": "Starts a multipart upload session for a file belonging to an artifact version and returns the pre-signed URLs needed to upload each part.", + "operationId": "fileUpload", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MultipartUploadCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MultipartUploadCreateResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Initiate a multipart upload for an artifact file.", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "description": "Finalizes a previously initiated multipart upload by assembling the uploaded parts into the target artifact file and validating checksums.", + "operationId": "completeFileUpload", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MultipartUploadCompleteRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Complete a multipart upload for an artifact file.", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org}/team/{team}/files/clone": { + "put": { + "description": "Synchronously copies the files of a source artifact version into a target artifact version within the organization (and optional team).", + "operationId": "cloneArtifactVersionFiles_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloneArtifactVersionFilesRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "cloneArtifact" + ] + } + ], + "summary": "Clone Artifact files", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "kas", + "cloneArtifact" + ] + } + }, + "/v1/org/{org}/team/{team}/files/clone/status": { + "put": { + "description": "Returns the current status (pending, running, completed, or failed) of an asynchronous artifact file clone workflow.", + "operationId": "cloneArtifactVersionFilesStatus_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloneArtifactVersionFilesRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloneArtifactFilesStatusResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "cloneArtifact" + ] + } + ], + "summary": "Clone Artifact files Status", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "kas", + "cloneArtifact" + ] + } + }, + "/v1/org/{org}/team/{team}/files/multipart": { + "delete": { + "description": "Cancels an in-progress multipart upload and releases any partially uploaded parts associated with the upload session.", + "operationId": "abortFileUpload_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MultipartUploadAbortRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Abort a multipart upload for an artifact file.", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "post": { + "description": "Starts a multipart upload session for a file belonging to an artifact version and returns the pre-signed URLs needed to upload each part.", + "operationId": "fileUpload_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MultipartUploadCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MultipartUploadCreateResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Initiate a multipart upload for an artifact file.", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "kas" + ] + }, + "put": { + "description": "Finalizes a previously initiated multipart upload by assembling the uploaded parts into the target artifact file and validating checksums.", + "operationId": "completeFileUpload_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MultipartUploadCompleteRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas" + ] + } + ], + "summary": "Complete a multipart upload for an artifact file.", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "kas" + ] + } + }, + "/v1/org/{org}/team/{team}/{type}/{name}/versions/{version}/async-clone": { + "put": { + "description": "Starts an asynchronous Temporal workflow to clone the files of a source artifact version into the target artifact version and returns a URL to poll for workflow status.", + "operationId": "cloneArtifactVersionFilesAsync_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "type", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Target artifact name", + "in": "path", + "name": "name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Target version ID", + "in": "path", + "name": "version", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AsyncCloneArtifactVersionFilesRequest" + } + } + }, + "required": true + }, + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkflowStatusUrlResponse" + } + } + }, + "description": "Accepted" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "cloneArtifact" + ] + } + ], + "summary": "Clone Artifact files asynchronously", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "cloneArtifact" + ] + } + }, + "/v1/org/{org}/team/{team}/{type}/{name}/{version}/files": { + "get": { + "description": "Returns pre-signed download URLs for every file of a given artifact version, enabling authenticated clients to download the complete contents of the version.", + "operationId": "downloadAllArtifactFiles_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "type", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "File path", + "in": "query", + "name": "path", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactDownloadAllResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "downloadArtifactVersionFile", + "downloadArtifactVersionFileFilterByOrgEnablement" + ] + } + ], + "summary": "Provide a list of presigned urls for the download of all files belonging to an artifact version", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "downloadArtifactVersionFileFilterByOrgEnablement", + "kas", + "downloadArtifactVersionFile" + ] + } + }, + "/v1/org/{org}/{type}/{name}/versions/{version}/async-clone": { + "put": { + "description": "Starts an asynchronous Temporal workflow to clone the files of a source artifact version into the target artifact version and returns a URL to poll for workflow status.", + "operationId": "cloneArtifactVersionFilesAsync", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "type", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Target artifact name", + "in": "path", + "name": "name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Target version ID", + "in": "path", + "name": "version", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AsyncCloneArtifactVersionFilesRequest" + } + } + }, + "required": true + }, + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkflowStatusUrlResponse" + } + } + }, + "description": "Accepted" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "cloneArtifact" + ] + } + ], + "summary": "Clone Artifact files asynchronously", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "cloneArtifact" + ] + } + }, + "/v1/org/{org}/{type}/{name}/{version}/files": { + "get": { + "description": "Returns pre-signed download URLs for every file of a given artifact version, enabling authenticated clients to download the complete contents of the version.", + "operationId": "downloadAllArtifactFiles", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "type", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "File path", + "in": "query", + "name": "path", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactDownloadAllResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "security": [ + { + "ssa": [ + "kas", + "downloadArtifactVersionFile", + "downloadArtifactVersionFileFilterByOrgEnablement" + ] + } + ], + "summary": "Provide a list of presigned urls for the download of all files belonging to an artifact version", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [ + "downloadArtifactVersionFileFilterByOrgEnablement", + "kas", + "downloadArtifactVersionFile" + ] + } + }, + "/v1/recipes": { + "get": { + "description": "List public recipes", + "operationId": "listPublicRecipes", + "parameters": [ + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List public recipes", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [] + } + }, + "/v1/recipes/{org-name}/{recipe-name}": { + "get": { + "description": "Get recipe details in org as guest", + "operationId": "getRecipeInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get recipe in org as guest", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [] + } + }, + "/v1/recipes/{org-name}/{recipe-name}/versions": { + "get": { + "description": "List recipe versions in org as guest", + "operationId": "listRecipeVersionsInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List recipe versions in org as guest", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [] + } + }, + "/v1/recipes/{org-name}/{recipe-name}/versions/{version-id}": { + "get": { + "description": "Get recipe version in org as guest", + "operationId": "getRecipeVersionInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get recipe version in org as guest", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [] + } + }, + "/v1/recipes/{org-name}/{recipe-name}/versions/{version-id}/files": { + "get": { + "description": "List files of the recipe version in org as guest", + "operationId": "listModeFilesInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List recipe files in org as guest", + "tags": [ + "Resource Version Files endpoints" + ], + "x-ssa-scopes": [] + } + }, + "/v1/recipes/{org-name}/{team-name}/{recipe-name}": { + "get": { + "description": "Get recipe details in team as guest", + "operationId": "getRecipeInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get recipe in team as guest", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [] + } + }, + "/v1/recipes/{org-name}/{team-name}/{recipe-name}/versions": { + "get": { + "description": "List recipe versions in team as guest", + "operationId": "listRecipeVersionsInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List recipe versions in team as guest", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [] + } + }, + "/v1/recipes/{org-name}/{team-name}/{recipe-name}/versions/{version-id}": { + "get": { + "description": "Get recipe version in team as guest", + "operationId": "getRecipeVersionInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get recipe version in team as guest", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [] + } + }, + "/v1/recipes/{org-name}/{team-name}/{recipe-name}/versions/{version-id}/files": { + "get": { + "description": "List files of the recipe version in team as guest", + "operationId": "listModeFilesInTeamAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List recipe files in team as guest", + "tags": [ + "Resource Version Files endpoints" + ], + "x-ssa-scopes": [] + } + }, + "/v1/resources": { + "get": { + "description": "List public recipes", + "operationId": "listPublicRecipes_1", + "parameters": [ + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List public recipes", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [] + } + }, + "/v1/resources/{org-name}/{recipe-name}": { + "get": { + "description": "Get recipe details in org as guest", + "operationId": "getRecipeInOrgAsGuest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get recipe in org as guest", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [] + } + }, + "/v1/resources/{org-name}/{recipe-name}/versions": { + "get": { + "description": "List recipe versions in org as guest", + "operationId": "listRecipeVersionsInOrgAsGuest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List recipe versions in org as guest", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [] + } + }, + "/v1/resources/{org-name}/{recipe-name}/versions/{version-id}": { + "get": { + "description": "Get recipe version in org as guest", + "operationId": "getRecipeVersionInOrgAsGuest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get recipe version in org as guest", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [] + } + }, + "/v1/resources/{org-name}/{recipe-name}/versions/{version-id}/files": { + "get": { + "description": "List files of the recipe version in org as guest", + "operationId": "listModeFilesInOrgAsGuest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List recipe files in org as guest", + "tags": [ + "Resource Version Files endpoints" + ], + "x-ssa-scopes": [] + } + }, + "/v1/resources/{org-name}/{team-name}/{recipe-name}": { + "get": { + "description": "Get recipe details in team as guest", + "operationId": "getRecipeInTeamAsGuest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get recipe in team as guest", + "tags": [ + "Resources" + ], + "x-ssa-scopes": [] + } + }, + "/v1/resources/{org-name}/{team-name}/{recipe-name}/versions": { + "get": { + "description": "List recipe versions in team as guest", + "operationId": "listRecipeVersionsInTeamAsGuest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Sort order", + "in": "query", + "name": "sort-order", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Release Type", + "in": "query", + "name": "release-type", + "required": false, + "schema": { + "enum": [ + "BETA", + "GA", + "EA", + "FEATURE", + "PRODUCTION", + "LTSB" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List recipe versions in team as guest", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [] + } + }, + "/v1/resources/{org-name}/{team-name}/{recipe-name}/versions/{version-id}": { + "get": { + "description": "Get recipe version in team as guest", + "operationId": "getRecipeVersionInTeamAsGuest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get recipe version in team as guest", + "tags": [ + "Resource Versions" + ], + "x-ssa-scopes": [] + } + }, + "/v1/resources/{org-name}/{team-name}/{recipe-name}/versions/{version-id}/files": { + "get": { + "description": "List files of the recipe version in team as guest", + "operationId": "listModeFilesInTeamAsGuest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Recipe name", + "in": "path", + "name": "recipe-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecipeVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List recipe files in team as guest", + "tags": [ + "Resource Version Files endpoints" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifact-type}": { + "get": { + "description": "List public artifacts", + "operationId": "listPublicArtifacts", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List public artifacts", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifact-type}/org/{org-name}/team/{team-name}/{artifact-name}/collections": { + "get": { + "description": "List artifact collections the user can access in the specified org and team as guest", + "operationId": "listArtifactCollectionsInTeamAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Order by", + "in": "query", + "name": "order-by", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List artifact collections in org and team as guest", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifact-type}/org/{org-name}/{artifact-name}/collections": { + "get": { + "description": "List artifact collections the user can access in the specified org as guest", + "operationId": "listArtifactCollectionsInOrgAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + }, + { + "description": "Order by", + "in": "query", + "name": "order-by", + "required": false, + "schema": { + "enum": [ + "ALPHABETIC_ASC", + "ALPHABETIC_DESC", + "CREATED_DATE_ASC", + "CREATED_DATE_DESC", + "SEMVER_ASC", + "SEMVER_DESC", + "DISPLAY_NAME_ASC", + "DISPLAY_NAME_DESC", + "UPDATED_DATE_ASC", + "UPDATED_DATE_DESC", + "PUBLISHER_ASC", + "PUBLISHER_DESC", + "BUILT_BY_ASC", + "BUILT_BY_DESC", + "RESOURCE_ID_ASC", + "RESOURCE_ID_DESC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List artifact collections in org as guest", + "tags": [ + "Collections" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifact-type}/{org-name}/{artifact-name}": { + "get": { + "description": "Get artifact details in org as guest", + "operationId": "getArtifactInOrgAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get artifact in org as guest", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifact-type}/{org-name}/{artifact-name}/latest-version/zip": { + "get": { + "deprecated": true, + "description": "Download all files of an org artifact's latest version in a zip as guest", + "operationId": "downloadAllFilesOfLatestVersionInOrgAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Download all files of an org artifact's latest version in a zip as guest", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifact-type}/{org-name}/{artifact-name}/versions/{version-id}/files": { + "get": { + "description": "List files of the artifact version in org as guest", + "operationId": "listArtifactFilesInOrgAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page reference", + "in": "query", + "name": "page-reference", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List artifact files in org as guest", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifact-type}/{org-name}/{artifact-name}/versions/{version-id}/files/**": { + "get": { + "deprecated": true, + "description": "Download the specified file of the artifact version in org as guest", + "operationId": "downloadArtifactFileInOrgAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Download artifact file in org as guest", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifact-type}/{org-name}/{artifact-name}/versions/{version-id}/files/**/zip/download": { + "get": { + "deprecated": true, + "description": "Download the specified file of the artifact version in org as guest as zip", + "operationId": "downloadArtifactFileInOrgAsGuestAsZip", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "binary", + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Download artifact file in org as guest as zip", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifact-type}/{org-name}/{artifact-name}/versions/{version-id}/signature": { + "get": { + "description": "Request to retrieve a pre-signed Download URL for the signature of an artifact version as a guest.", + "operationId": "getArtifactVersionSignatureAsGuest", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Get redirect URL", + "in": "query", + "name": "redirect", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "tags": [ + "ArtifactSigning" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifact-type}/{org-name}/{artifact-name}/versions/{version-id}/zip": { + "get": { + "deprecated": true, + "description": "Download all files of an org artifact in a zip as guest", + "operationId": "downloadAllFilesInOrgAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Download all files of an org artifact in a zip as guest", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifact-type}/{org-name}/{artifact-name}/versions/{version-id}/zip/download": { + "get": { + "deprecated": true, + "description": "Direct download all files of a org artifact in a zip as guest", + "operationId": "directDownloadAllFilesInOrgAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "binary", + "type": "string" + } + }, + "application/zip": { + "schema": { + "format": "binary", + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Direct download all files of a org artifact in a zip as guest", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifact-type}/{org-name}/{team-name}/{artifact-name}": { + "get": { + "description": "Get artifact details in team as guest", + "operationId": "getChartInTeamAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Resolve labels", + "in": "query", + "name": "resolve-labels", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Remove unresolved labels", + "in": "query", + "name": "remove-unresolved-labels", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get artifact in team as guest", + "tags": [ + "Artifacts" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifact-type}/{org-name}/{team-name}/{artifact-name}/latest-version/zip": { + "get": { + "deprecated": true, + "description": "Download all files of a team artifact's latest version in a zip as guest", + "operationId": "downloadAllFilesInTeamAsGuest_1", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Download all files of a team artifact's latest version in a zip as guest", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifact-type}/{org-name}/{team-name}/{artifact-name}/versions/{version-id}/files": { + "get": { + "description": "List files of the artifact version in team as guest", + "operationId": "listArtifactFilesInTeamAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArtifactVersionFileListResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "List artifact files in team as guest", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifact-type}/{org-name}/{team-name}/{artifact-name}/versions/{version-id}/files/**": { + "get": { + "deprecated": true, + "description": "Download the specified file of the artifact version in team as guest", + "operationId": "downloadArtifactFileInTeamAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Download artifact file in team as guest", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifact-type}/{org-name}/{team-name}/{artifact-name}/versions/{version-id}/files/**/zip/download": { + "get": { + "deprecated": true, + "description": "Download the specified file of the artifact version in team as guest as zip", + "operationId": "downloadArtifactFileInTeamAsGuestAsZip", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "binary", + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Download artifact file in team as guest as zip", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifact-type}/{org-name}/{team-name}/{artifact-name}/versions/{version-id}/signature": { + "get": { + "description": "Request to retrieve a pre-signed Download URL for the signature of an artifact version as a guest.", + "operationId": "getArtifactVersionSignatureAsGuest_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Get redirect URL", + "in": "query", + "name": "redirect", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "tags": [ + "ArtifactSigning" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifact-type}/{org-name}/{team-name}/{artifact-name}/versions/{version-id}/zip": { + "get": { + "deprecated": true, + "description": "Download all files of a team artifact in a zip as guest", + "operationId": "downloadAllFilesInTeamAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Download all files of a team artifact in a zip as guest", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifact-type}/{org-name}/{team-name}/{artifact-name}/versions/{version-id}/zip/download": { + "get": { + "deprecated": true, + "description": "Direct download all files of a team artifact in a zip as guest", + "operationId": "directDownloadAllFilesInTeamAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "artifact-type", + "required": true, + "schema": { + "enum": [ + "MODEL", + "MODEL_SCRIPT", + "HELM_CHART", + "REPOSITORY", + "COLLECTION", + "ENDPOINT", + "BLUEPRINT", + "PLAYBOOK", + "AGENT", + "API", + "SKILL" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "artifact-name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version-id", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "binary", + "type": "string" + } + }, + "application/zip": { + "schema": { + "format": "binary", + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Direct download all files of a team artifact in a zip as guest", + "tags": [ + "Artifact Version Files" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifactType}/{orgName}/{artifactName}/playground": { + "get": { + "deprecated": true, + "description": "Get AI Playground for public model", + "operationId": "getPublicModelAIPlayground", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifactName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifactType}/{orgName}/{artifactName}/spec": { + "get": { + "description": "Get AI Playground for public artifactType", + "operationId": "getPublicModelArtifactsSpec", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifactName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get AI Playground for public artifactType", + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifactType}/{orgName}/{teamName}/{artifactName}/playground": { + "get": { + "deprecated": true, + "description": "Get AI Playground for public model", + "operationId": "getPublicModelAIPlayground_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "teamName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifactName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{artifactType}/{orgName}/{teamName}/{artifactName}/spec": { + "get": { + "description": "Get AI Playground for public artifactType", + "operationId": "getPublicModelArtifactsSpec_1", + "parameters": [ + { + "description": "Organization name", + "in": "path", + "name": "orgName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "teamName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact type", + "in": "path", + "name": "artifactType", + "required": true, + "schema": { + "enum": [ + "models", + "helm-charts", + "endpoints", + "agents", + "blueprints", + "apis", + "playbooks", + "skills" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Model name", + "in": "path", + "name": "artifactName", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AIPlaygroundResponse" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "Get AI Playground for public artifactType", + "tags": [ + "AIPlayground" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{type}/org/{org}/team/{team}/{name}/{version}/files": { + "get": { + "description": "Returns pre-signed download URLs for every file of a public artifact version, allowing unauthenticated guest clients to download the version's contents.", + "operationId": "downloadAllArtifactFilesAsGuest_1", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "type", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Team name", + "in": "path", + "name": "team", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "File path", + "in": "query", + "name": "path", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Get redirect URL", + "in": "query", + "name": "redirect", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "As a guest provide a list of presigned urls for the download of all files belonging to a public artifact version", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [] + } + }, + "/v1/{type}/org/{org}/{name}/{version}/files": { + "get": { + "description": "Returns pre-signed download URLs for every file of a public artifact version, allowing unauthenticated guest clients to download the version's contents.", + "operationId": "downloadAllArtifactFilesAsGuest", + "parameters": [ + { + "description": "Artifact type", + "in": "path", + "name": "type", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Organization name", + "in": "path", + "name": "org", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Artifact name", + "in": "path", + "name": "name", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 255, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Version ID", + "in": "path", + "name": "version", + "required": true, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + { + "description": "File path", + "in": "query", + "name": "path", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + { + "description": "Get redirect URL", + "in": "query", + "name": "redirect", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Page size", + "in": "query", + "name": "page-size", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 5000, + "minLength": 0, + "minimum": 1, + "type": "string" + } + }, + { + "description": "Page number - zero based index", + "in": "query", + "name": "page-number", + "required": false, + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "maximum": 10000, + "minLength": 0, + "minimum": 0, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + } + }, + "description": "OK" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Too many requests" + }, + "500": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Internal Error" + } + }, + "summary": "As a guest provide a list of presigned urls for the download of all files belonging to a public artifact version", + "tags": [ + "Artifact File" + ], + "x-ssa-scopes": [] + } + } + }, + "servers": [ + { + "description": "Generated server url - production", + "url": "https://models.ngc.nvidia.com", + "x-internal": true + } + ], + "tags": [ + { + "description": "Artifact file checksum verification and commit endpoints", + "name": "ArtifactChecksum" + }, + { + "description": "Artifact-level overrides for cloud deployment parameters", + "name": "Artifact deployment parameters" + }, + { + "description": "Artifact signing and signature verification", + "name": "ArtifactSigning" + }, + { + "description": "Publish artifacts to the NGC catalog", + "name": "Publish" + }, + { + "description": "Artifact (resource, model, helm chart) Version endpoints", + "name": "Artifact Versions" + }, + { + "description": "App-to-artifact associations", + "name": "Apps" + }, + { + "description": "NIM profile metadata registration (placeholder)", + "name": "NIM Metadata" + }, + { + "description": "Metadata describing cloud deployment parameter schemas", + "name": "Deployment parameters meta" + }, + { + "description": "AI Playground demo metadata endpoints", + "name": "AIPlayground" + }, + { + "description": "Collections endpoints", + "name": "Collections" + }, + { + "description": "Model endpoints", + "name": "Models" + }, + { + "description": "Default CSP-level cloud deployment parameters", + "name": "Cloud service provider deployment parameters" + }, + { + "description": "Service health checks", + "name": "Health" + }, + { + "description": "Model endpoints", + "name": "Model Version Files" + }, + { + "description": "Artifact (resource, model, helm chart) endpoints", + "name": "Artifacts" + }, + { + "description": "Resources endpoints, previously known as 'recipes'", + "name": "Resources" + }, + { + "description": "Malware scan status for artifact files", + "name": "MalwareScan" + }, + { + "description": "Asynchronous artifact-registry workflow status endpoints", + "name": "Workflows" + }, + { + "description": "GPU metadata lookup by PCI identifier", + "name": "GpuByPci" + }, + { + "description": "Helm chart version management", + "name": "Helm Charts" + }, + { + "description": "Cloud service provider registry entries", + "name": "Cloud service providers" + }, + { + "description": "Artifact (resource, model, helm chart) Version File endpoints", + "name": "Artifact Version Files" + }, + { + "description": "Customer-managed encryption keys for artifact storage", + "name": "Encryption Keys" + }, + { + "description": "Resource and Model File endpoints", + "name": "Artifact File" + }, + { + "description": "Resource Versions endpoints, previously known as 'recipes'", + "name": "Resource Versions" + }, + { + "description": "Resource Version File endpoints, previously known as 'recipes'", + "name": "Resource Version Files endpoints" + }, + { + "description": "Model endpoints", + "name": "Model Version" + }, + { + "description": "NSPECT-LOEJ-50BP", + "name": "nspect_id" + } + ] +} diff --git a/provider-dev/downloaded/ngc_sdk_schemas.json b/provider-dev/downloaded/ngc_sdk_schemas.json new file mode 100644 index 0000000..dc64e17 --- /dev/null +++ b/provider-dev/downloaded/ngc_sdk_schemas.json @@ -0,0 +1,4852 @@ +{ + "package": "ngcsdk", + "version": "4.36.6", + "wheel": "ngcsdk-4.36.6-py3-none-any.whl", + "url": "https://files.pythonhosted.org/packages/3c/cf/e4901fd5a50621d3f058d0ba4f732651a86d672fb76b7a404473b2b23ac1/ngcsdk-4.36.6-py3-none-any.whl", + "sha256": "8cf4ce3bd071b3d2e24d40f2c66abc2c2b49022b53d400a2eb9fe6018fe3f343", + "packages": [ + "registry/data/model/" + ], + "classes": 149, + "enumModulesSkipped": [ + "AccessTypeEnum", + "ApplicationType", + "ArtifactFileCommitType", + "ArtifactTypeEnum", + "AssetCdnProviderTypeEnum", + "AssetStatusTypeEnum", + "AssetStorageTypeEnum", + "CollectionCategoryType", + "CollectionOperationType", + "FrameworkType", + "MalwareScanStatusEnum", + "ModelFormatType", + "PolicyEnum", + "PrecisionType", + "ReleaseTypeEnum", + "SortOrderEnum", + "StatusCode", + "VersionStatusEnum" + ], + "schemas": { + "AIFoundationModel": { + "type": "object", + "description": "Get AI Playground Response", + "properties": { + "artifactName": { + "type": "string", + "description": "Unique name of the model" + }, + "attributes": { + "type": "string", + "description": "Metadata json string" + }, + "createdDate": { + "type": "string", + "description": "Creation date in ISO-8601 format" + }, + "namespace": { + "type": "string", + "description": "org/team of the model" + }, + "nvcfFunctionId": { + "type": "string", + "description": "NVCF function id for the model playground" + }, + "openAPISpec": { + "type": "string", + "description": "OpenAPI specification for this model" + }, + "updatedDate": { + "type": "string", + "description": "Updated date in ISO-8601 format" + } + } + }, + "AIPlaygroundCreateRequest": { + "type": "object", + "description": "Request to create a new AI Playground config", + "properties": { + "artifactName": { + "type": "string", + "description": "Unique name of the model" + }, + "attributes": { + "type": "string", + "description": "Metadata json string" + }, + "nvcfFunctionId": { + "type": "string", + "description": "NVCF function id for the model playground" + }, + "openAPISpec": { + "type": "string", + "description": "OpenAPI specification for this model" + } + } + }, + "AIPlaygroundResponse": { + "type": "object", + "description": "Request to fetch an AI Playground config", + "properties": { + "artifactName": { + "type": "string", + "description": "Unique name of the model" + }, + "artifactType": { + "type": "string", + "description": "ArtifactTypeEnum of the artifact" + }, + "attributes": { + "type": "string", + "description": "Metadata json string" + }, + "createdDate": { + "type": "string", + "description": "Creation date in ISO-8601 format" + }, + "namespace": { + "type": "string", + "description": "org/team of the model" + }, + "nvcfFunctionId": { + "type": "string", + "description": "NVCF function id for the model playground" + }, + "openAPISpec": { + "type": "string", + "description": "OpenAPI specification for this model" + }, + "updatedDate": { + "type": "string", + "description": "Updated date in ISO-8601 format" + } + } + }, + "AIPlaygroundUpdateRequest": { + "type": "object", + "description": "Request to update an AI Playground config", + "properties": { + "attributes": { + "type": "string", + "description": "Metadata json string" + }, + "nvcfFunctionId": { + "type": "string", + "description": "NVCF function id for the model playground" + }, + "openAPISpec": { + "type": "string", + "description": "OpenAPI specification for this model" + } + } + }, + "AcceptArtifactLicenseRequest": { + "type": "object", + "description": "Request body to accept an org-scoped artifact license.", + "properties": { + "licenseId": { + "type": "string", + "description": "License identifier to accept (must match a licenseId from the \n artifact's published licenseTerms)." + }, + "licenseVersion": { + "type": "string", + "description": "License version to accept (must match licenseVersion for that \n license on the artifact)." + } + } + }, + "Artifact": { + "type": "object", + "description": "Artifact object", + "properties": { + "accessType": { + "type": "string" + }, + "artifactType": { + "type": "string", + "description": "Artifact type" + }, + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "Attribute key/value pairs" + }, + "bias": { + "type": "string", + "description": "Text describing bias in the artifact" + }, + "builtBy": { + "type": "string", + "description": "Organization that built the helm chart" + }, + "canGuestDownload": { + "type": "boolean", + "description": "Indicates if a guest user can download" + }, + "createdDate": { + "type": "string", + "description": "Creation date in ISO-8601 format" + }, + "description": { + "type": "string", + "description": "Description of the helm chart" + }, + "displayName": { + "type": "string", + "description": "Display name" + }, + "encryptionKeyId": { + "type": "string", + "description": "ID of the customer managed encryption key associated with this\n artifact" + }, + "explainability": { + "type": "string", + "description": "Text describing the explainability for this artifact" + }, + "hasSignedVersion": { + "type": "boolean", + "description": "Indicates if the artifact has any signed versions" + }, + "isFavourite": { + "type": "boolean", + "description": "Flag indicating if helm chart is user's favorite" + }, + "isPublic": { + "type": "boolean", + "description": "Determines if this helm chart is publicly accessible" + }, + "isReadOnly": { + "type": "boolean", + "description": "indicate if current user has read only permissions" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "latestVersionId": { + "type": "string", + "description": "ID of the latest version" + }, + "latestVersionSizeInBytes": { + "type": "integer", + "format": "int64", + "description": "Size of the latest version in bytes" + }, + "licenseTerms": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "description": "License information for the model" + }, + "logo": { + "type": "string", + "description": "URL for the logo image" + }, + "name": { + "type": "string", + "description": "Unique name of the helm chart" + }, + "orgName": { + "type": "string", + "description": "Name of the org that the helm chart belongs to" + }, + "ownerName": { + "type": "string", + "description": "Name of the user who owns this version" + }, + "policyLabels": { + "type": "array", + "items": { + "type": "string" + }, + "description": "list of policy labels on the artifact" + }, + "privacy": { + "type": "string", + "description": "Text describing the privacy for this artifact" + }, + "productNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Product names" + }, + "publisher": { + "type": "string", + "description": "Organization that published this helm chart" + }, + "safetyAndSecurity": { + "type": "string", + "description": "Text for describing the safety and security in the artifact" + }, + "shortDescription": { + "type": "string", + "description": "Short description of the helm chart" + }, + "teamName": { + "type": "string", + "description": "Name of the team that the helm chart belongs to" + }, + "updatedDate": { + "type": "string", + "description": "Updated date in ISO-8601 format" + } + } + }, + "ArtifactAttribute": { + "type": "object", + "description": "Attribute on the artifact", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "ArtifactCatalogFlags": { + "type": "object", + "description": "Artifact Catalog Flags object", + "properties": { + "canGuestDownload": { + "type": "boolean", + "description": "Indicates if a guest user can download" + }, + "isListedToPublic": { + "type": "boolean", + "description": "Flag indicating if artifact is listed and searchable" + }, + "isPublic": { + "type": "boolean", + "description": "Determines if this artifact is publicly accessible" + } + } + }, + "ArtifactCreateRequest": { + "type": "object", + "description": "Request to create a new artifact", + "properties": { + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "Attribute key/value pairs" + }, + "bias": { + "type": "string", + "description": "Text describing bias in the model" + }, + "builtBy": { + "type": "string", + "description": "organization that built the artifact" + }, + "description": { + "type": "string", + "description": "Description of the artifact" + }, + "displayName": { + "type": "string", + "description": "Display name" + }, + "explainability": { + "type": "string", + "description": "Text describing explainability for this model" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "labelsV2": { + "type": "array", + "items": { + "type": "string" + } + }, + "licenseTerms": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "description": "License information for the model" + }, + "logo": { + "type": "string", + "description": "URL for the logo image" + }, + "name": { + "type": "string", + "description": "Unique name of the artifact" + }, + "privacy": { + "type": "string", + "description": "Text describing the privacy for this model" + }, + "publisher": { + "type": "string", + "description": "organization that published the artifact" + }, + "safetyAndSecurity": { + "type": "string", + "description": "Text for describing the safety and security in the model" + }, + "shortDescription": { + "type": "string", + "description": "Short description of the artifact" + } + } + }, + "ArtifactDeploymentParameters": { + "type": "object", + "description": "Artifact Deployment Parameters object", + "properties": { + "container": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "x-description": "Deployment Artifact Parameters object" + }, + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParameters", + "x-description": "Deployment CPU Parameters object" + }, + "csp": { + "type": "string", + "description": "Cloud Service Provider name" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParameters", + "x-description": "Deployment GPU Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParameters", + "x-description": "Deployment Memory Parameters object" + }, + "model": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "x-description": "Deployment Artifact Parameters object" + }, + "resource": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "x-description": "Deployment Artifact Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParameters", + "x-description": "Deployment Storage Parameters object" + } + } + }, + "ArtifactDownloadAllRequest": { + "type": "object", + "description": "Request to download all files of an artifact", + "properties": { + "artifactType": { + "type": "string", + "description": "Type of artifact" + }, + "name": { + "type": "string", + "description": "Name of the artifact" + }, + "version": { + "type": "string", + "description": "Artifact version" + } + } + }, + "ArtifactDownloadAllResponse": { + "type": "object", + "description": "Response body to download all files of an artifact", + "properties": { + "filepath": { + "type": "array", + "items": { + "type": "string" + }, + "description": "All of the filepath of the artifact" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "x-description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + }, + "sha256_base64": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of base64 encoded sha256 hash of the files" + }, + "urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of presigned urls of download" + } + } + }, + "ArtifactDownloadRequest": { + "type": "object", + "description": "Request to download a single file of an artifact", + "properties": { + "artifactType": { + "type": "string", + "description": "Type of artifact" + }, + "filePath": { + "type": "string", + "description": "The file path of the artifact" + }, + "name": { + "type": "string", + "description": "Name of the artifact" + }, + "version": { + "type": "string", + "description": "Artifact version" + } + } + }, + "ArtifactDownloadResponse": { + "type": "object", + "description": "Response body to download a single file of an artifact", + "properties": { + "filepath": { + "type": "string", + "description": "The filepath of the artifact" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + }, + "url": { + "type": "string", + "description": "Presigned url for single file download" + } + } + }, + "ArtifactEvent": { + "type": "object", + "description": "This event in the topic means that some change happened to the artifact", + "properties": { + "artifactType": { + "type": "string", + "description": "Artifact type" + }, + "eventType": { + "type": "string", + "description": "Artifact event type" + }, + "name": { + "type": "string", + "description": "Artifact name" + }, + "namespace": { + "type": "string", + "description": "Artifact namespace" + } + } + }, + "ArtifactFileChecksumToValidate": { + "type": "object", + "description": "Artifact file checksum object in request to validate artifact file chec\n ksum exists or not", + "properties": { + "sha256": { + "type": "string", + "description": "Base64 encoded sha256 hash of the artifact file" + } + } + }, + "ArtifactFileChecksumValidated": { + "type": "object", + "properties": { + "exists": { + "type": "boolean", + "description": "Boolean to indicate whether sha256 exists or not" + }, + "sha256": { + "type": "string", + "description": "Base64 encoded sha256 hash of the artifact file" + }, + "size": { + "type": "integer", + "format": "int64", + "description": "Size of the artifact file" + } + } + }, + "ArtifactFileCommitMetadata": { + "type": "object", + "properties": { + "commitType": { + "type": "string" + }, + "filePath": { + "type": "string", + "description": "Artifact file path" + }, + "sha256": { + "type": "string", + "description": "Base64 encoded sha256 hash of the artifact file. Required for \n addition and not required for deletion" + } + } + }, + "ArtifactFilesChecksumExistsRequest": { + "type": "object", + "description": "Request to check if files exist by checksum", + "properties": { + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactFileChecksumToValidate" + }, + "description": "An array of file checksums" + } + } + }, + "ArtifactFilesChecksumExistsResponse": { + "type": "object", + "description": "Request to check if file exists by checksum", + "properties": { + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactFileChecksumValidated" + }, + "description": "An array of file checksums and checksum metadata" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "x-description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "ArtifactFilesCommitRequest": { + "type": "object", + "description": "Request to commit the artifact files metadata to database", + "properties": { + "artifactType": { + "type": "string", + "description": "Artifact type - could be either model or resource" + }, + "baseVersion": { + "type": "string", + "description": "Artifact version that the commit is based on" + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactFileCommitMetadata" + }, + "description": "An array of artifact files identified by their base64 encoded\n SHA256 hash" + }, + "name": { + "type": "string", + "description": "Artifact name" + }, + "version": { + "type": "string", + "description": "Artifact version" + } + } + }, + "ArtifactItem": { + "type": "object", + "description": "Artifact item with name and description", + "properties": { + "artifactType": { + "type": "string", + "description": "Artifact type" + }, + "description": { + "type": "string", + "description": "Description of the artifact" + }, + "displayName": { + "type": "string", + "description": "Display name of the artifact" + }, + "name": { + "type": "string", + "description": "Name of the artifact" + } + } + }, + "ArtifactListResponse": { + "type": "object", + "description": "Response to list artifacts request", + "properties": { + "artifacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Artifact" + } + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "x-description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "ArtifactOwnerDetails": { + "type": "object", + "properties": { + "createdDate": { + "type": "string", + "description": "Version pushed date in ISO-8601 format" + }, + "creatorUserEmail": { + "type": "string", + "description": "Email address of account used to create" + }, + "orgAlternateContact": { + "type": "string", + "description": "Email address of alternate contact for organization the image \n was pushed to" + }, + "orgOwnersEmails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Email addresses of all owners of organization the image was p\n ushed to" + }, + "pushedByUserEmail": { + "type": "string", + "description": "Email address of account used to create the Version" + }, + "repositoryName": { + "type": "string", + "description": "The repository name" + }, + "updatedDate": { + "type": "string", + "description": "Version update date in ISO-8601 format" + }, + "version": { + "type": "string", + "description": "Version" + } + } + }, + "ArtifactPublishRequest": { + "type": "object", + "description": "Request to publish an artifact", + "properties": { + "accessType": { + "type": "string" + }, + "canGuestPull": { + "type": "boolean" + }, + "canPublicList": { + "type": "boolean" + }, + "isPublic": { + "type": "boolean" + }, + "licenseTerms": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "description": "License information for the model" + }, + "productNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Product names" + } + } + }, + "ArtifactResponse": { + "type": "object", + "description": "Response to artifact request", + "properties": { + "artifact": { + "$ref": "#/components/schemas/Artifact", + "x-description": "Artifact object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "ArtifactUpdateRequest": { + "type": "object", + "description": "Request to update a artifact", + "properties": { + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "Attribute key/value pairs" + }, + "bias": { + "type": "string", + "description": "Text describing bias in the model" + }, + "builtBy": { + "type": "string", + "description": "organization that built the artifact" + }, + "description": { + "type": "string", + "description": "Description of the artifact" + }, + "displayName": { + "type": "string", + "description": "Display name" + }, + "explainability": { + "type": "string", + "description": "Text describing explainability for this model" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "labelsV2": { + "type": "array", + "items": { + "type": "string" + } + }, + "licenseTerms": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "description": "License information for the model" + }, + "logo": { + "type": "string", + "description": "URL for the logo image" + }, + "privacy": { + "type": "string", + "description": "Text describing the privacy for this model" + }, + "publisher": { + "type": "string", + "description": "organization that published the artifact" + }, + "safetyAndSecurity": { + "type": "string", + "description": "Text for describing the safety and security in the model" + }, + "shortDescription": { + "type": "string", + "description": "Short description of the artifact" + } + } + }, + "ArtifactVersion": { + "type": "object", + "description": "Artifact version object", + "properties": { + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "Attribute key/value pairs" + }, + "createdByUser": { + "type": "string", + "description": "Id of the user who created this version" + }, + "createdDate": { + "type": "string", + "description": "Creation date in ISO-8601 format" + }, + "customMetrics": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "description": "Custom Metrics key/value pairs" + }, + "description": { + "type": "string", + "description": "Description of the version" + }, + "id": { + "type": "string", + "description": "Unique ID of the version" + }, + "isSigned": { + "type": "boolean", + "description": "Indicates if the version is signed" + }, + "malwareScanDate": { + "type": "string", + "description": "Scan date in ISO-8601 format" + }, + "malwareScanStatus": { + "type": "string", + "description": "Malware scan status" + }, + "policy": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Policy label to be added to a specific version" + }, + "releaseType": { + "type": "string", + "description": "Release type enum for the artifact version in the \n product lifecycle." + }, + "status": { + "type": "string", + "description": "Version status" + }, + "storageVersion": { + "type": "string", + "description": "The storage version i.e. the format the file and their content\n s are persisted in in object store. Possible values include V1\n - for legacy artifact versions with files, V2 - for new artifact vers\n ions with blob registry, `` - for artifact versions without any files." + }, + "totalFileCount": { + "type": "integer", + "format": "int64", + "description": "Total file count" + }, + "totalSizeInBytes": { + "type": "integer", + "format": "int64", + "description": "Total size of the version in bytes" + }, + "updatedDate": { + "type": "string", + "description": "Updated date in ISO-8601 format" + } + } + }, + "ArtifactVersionCreateRequest": { + "type": "object", + "description": "Request to create a new artifact version", + "properties": { + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "Attribute key/value pairs" + }, + "description": { + "type": "string", + "description": "Description of the artifact version" + }, + "id": { + "type": "string", + "description": "Unique ID of the version" + } + } + }, + "ArtifactVersionFileListResponse": { + "type": "object", + "description": "Response to list files for artifact version request", + "properties": { + "artifact": { + "$ref": "#/components/schemas/Artifact", + "x-description": "Artifact object" + }, + "artifactFiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/File" + } + }, + "artifactVersion": { + "$ref": "#/components/schemas/ArtifactVersion", + "x-description": "Artifact version object" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "x-description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "ArtifactVersionListResponse": { + "type": "object", + "description": "Response to list artifact versions request", + "properties": { + "artifact": { + "$ref": "#/components/schemas/Artifact", + "x-description": "Artifact object" + }, + "artifactVersions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactVersion" + } + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "x-description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "ArtifactVersionResponse": { + "type": "object", + "description": "Response to artifact version request", + "properties": { + "artifact": { + "$ref": "#/components/schemas/Artifact", + "x-description": "Artifact object" + }, + "artifactVersion": { + "$ref": "#/components/schemas/ArtifactVersion", + "x-description": "Artifact version object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "ArtifactVersionUpdateRequest": { + "type": "object", + "description": "Request to create a new artifact version", + "properties": { + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "Attribute key/value pairs" + }, + "description": { + "type": "string", + "description": "Description of the artifact version" + }, + "status": { + "type": "string", + "description": "Version status" + } + } + }, + "Asset": { + "type": "object", + "description": "Asset object", + "properties": { + "artifactName": { + "type": "string", + "description": "Artifact name that asset belongs to" + }, + "artifactType": { + "type": "string", + "description": "Artifact type" + }, + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "Attribute key/value pairs" + }, + "cdnProvider": { + "type": "string", + "description": "Asset content delivery network provider t\n ype" + }, + "createdDate": { + "type": "string", + "description": "Creation date in ISO-8601 format" + }, + "fileName": { + "type": "string", + "description": "Asset file name" + }, + "hostedAt": { + "type": "array", + "items": { + "type": "string" + }, + "description": "URLs where the asset is hosted" + }, + "mimeType": { + "type": "string", + "description": "Asset mime type" + }, + "name": { + "type": "string", + "description": "Unique name of the asset" + }, + "orgName": { + "type": "string", + "description": "Name of the org that the collection belongs to" + }, + "originUrl": { + "type": "string", + "description": "Asset origin URL" + }, + "ownerName": { + "type": "string", + "description": "Name of the user who owns this version" + }, + "sizeInBytes": { + "type": "integer", + "format": "int64", + "description": "Size in bytes" + }, + "status": { + "type": "string", + "description": "Asset status type" + }, + "storageProvider": { + "type": "string", + "description": "Asset storage provider type" + }, + "teamName": { + "type": "string", + "description": "Name of the team that the collection belongs to" + }, + "updatedDate": { + "type": "string", + "description": "Updated date in ISO-8601 format" + }, + "uploadUrl": { + "type": "string", + "description": "Asset upload URL" + } + } + }, + "AssetResponse": { + "type": "object", + "description": "Response to asset request", + "properties": { + "asset": { + "$ref": "#/components/schemas/Asset", + "x-description": "Asset object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "AssetSimplified": { + "type": "object", + "description": "Asset object", + "properties": { + "name": { + "type": "string", + "description": "Unique name of the asset" + }, + "orgName": { + "type": "string", + "description": "Name of the org that the asset belongs to" + }, + "teamName": { + "type": "string", + "description": "Name of the team that the asset belongs to" + } + } + }, + "AssetStorageEvent": { + "type": "object", + "description": "This event in the topic means that some change happened to the asset st\n orage object", + "properties": { + "asset": { + "$ref": "#/components/schemas/Asset", + "x-description": "Asset object" + }, + "eventType": { + "type": "string", + "description": "Asset storage event type" + }, + "timestamp": { + "type": "string", + "description": "Timestamp in ISO-8601 format" + } + } + }, + "AssetUpdateRequest": { + "type": "object", + "description": "Request to update an asset", + "properties": { + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "Attribute key/value pairs" + }, + "fileName": { + "type": "string", + "description": "Asset file name" + }, + "mimeType": { + "type": "string", + "description": "MIME type" + }, + "originUrl": { + "type": "string", + "description": "Asset origin URL" + }, + "owner": { + "type": "string", + "description": "Owner of asset" + }, + "sizeInBytes": { + "type": "integer", + "format": "int64", + "description": "Size in bytes" + } + } + }, + "AsyncCloneArtifactVersionFilesRequest": { + "type": "object", + "description": "Request to asynchronously clone artifact version files. Artifact type, \n target artifact name, version, org, and team are provided via URL path\n parameters.", + "properties": { + "sourceArtifact": { + "$ref": "#/components/schemas/CloneableArtifact", + "x-description": "Cloneable Artifact Parameters object" + }, + "uploadPending": { + "type": "boolean", + "description": "Allow the cloned model version to continue to be updated with\n files. A follow up commit is needed to update status to 'Uplo\n ad Complete'." + } + } + }, + "BlobMetadata": { + "type": "object", + "description": "Blob metadata - its size, dek-metadata (if applicable)", + "properties": { + "blobSize": { + "type": "integer", + "format": "int64", + "description": "BLOB size" + }, + "dekMetadata": { + "type": "string", + "description": "DEK metadata of the blob" + } + } + }, + "CatalogArtifactMetadata": { + "type": "object", + "properties": { + "accessType": { + "type": "string" + }, + "canGuestPull": { + "type": "boolean", + "description": "Guest users can download from the Catalog registry" + }, + "canPublicList": { + "type": "boolean", + "description": "Publicly listed/searchable in the Catalog registry" + }, + "isPublic": { + "type": "boolean", + "description": "Publicly available in the Catalog registry" + }, + "licenseTerms": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CatalogLicenseMetadata" + }, + "description": "License information for the model" + }, + "productNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Product names" + }, + "releaseType": { + "type": "string", + "description": "Release type enum for the artifact version in the \n product lifecycle." + } + } + }, + "CatalogArtifactVersionMetadata": { + "type": "object", + "properties": { + "accessType": { + "type": "string" + }, + "canGuestPull": { + "type": "boolean", + "description": "Guest users can download from the Catalog registry" + }, + "canPublicList": { + "type": "boolean", + "description": "Publicly listed/searchable in the Catalog registry" + }, + "isPublic": { + "type": "boolean", + "description": "Publicly available in the Catalog registry" + }, + "productNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Product names" + }, + "releaseType": { + "type": "string", + "description": "Release type enum for the artifact version in the \n product lifecycle." + } + } + }, + "CatalogLicenseMetadata": { + "type": "object", + "description": "License information for the artifact", + "properties": { + "licenseId": { + "type": "string", + "description": "License ID" + }, + "licenseVersion": { + "type": "string", + "description": "License version ID" + }, + "needsAcceptance": { + "type": "boolean", + "description": "Indicator if user needs to accept this license" + } + } + }, + "CloneArtifactFilesStatusResponse": { + "type": "object", + "description": "Progress of cloning artifact version files", + "properties": { + "filesCopied": { + "type": "integer", + "format": "int64", + "description": "Number of files copied" + }, + "percentageCloned": { + "type": "number", + "description": "Percentage of files cloned" + }, + "sizeCopied": { + "type": "integer", + "format": "int64", + "description": "Combined file size copied" + }, + "totalFiles": { + "type": "integer", + "format": "int64", + "description": "Total files at source" + }, + "totalSize": { + "type": "integer", + "format": "int64", + "description": "Combined file size at source" + } + } + }, + "CloneArtifactVersionFilesRequest": { + "type": "object", + "description": "Request to clone artifact version files", + "properties": { + "artifactType": { + "type": "string", + "description": "Artifact type" + }, + "sourceArtifact": { + "$ref": "#/components/schemas/CloneableArtifact", + "x-description": "Cloneable Artifact Parameters object" + }, + "targetArtifact": { + "$ref": "#/components/schemas/CloneableArtifact", + "x-description": "Cloneable Artifact Parameters object" + }, + "uploadPending": { + "type": "boolean", + "description": "Allow the cloned model version to continue to be updated with\n files. A follow up commit is needed to update status to 'Uplo\n ad Complete'." + } + } + }, + "CloneStatus": { + "type": "object", + "description": "Progress of cloning artifact version files", + "properties": { + "filesCopied": { + "type": "integer", + "format": "int64", + "description": "Number of files copied" + }, + "internalCheckpointStateCleanup": { + "type": "string", + "description": "Internal-only: When the async c\n lone workflow is completed, this field shows if the internal c\n heckpoint files were successfully cleaned up in the storage - CLEAN if\n no objects remain (cleanup succeeded or unused), NOT_EMPTY if objects\n remain, ERROR if verification could not be performed. Omitted when no\n t applicable." + }, + "percentageFilesCloned": { + "type": "number", + "description": "Percentage of files cloned" + }, + "sizeCopied": { + "type": "integer", + "format": "int64", + "description": "Combined file size copied" + }, + "totalFiles": { + "type": "integer", + "format": "int64", + "description": "Total files at source" + }, + "totalSize": { + "type": "integer", + "format": "int64", + "description": "Combined file size at source" + } + } + }, + "CloneableArtifact": { + "type": "object", + "description": "Cloneable Artifact Parameters object", + "properties": { + "name": { + "type": "string", + "description": "Unique name of the artifact" + }, + "org": { + "type": "string", + "description": "Name of the org that the artifact belongs to" + }, + "team": { + "type": "string", + "description": "Name of the team that the artifact belongs to" + }, + "version": { + "type": "string", + "description": "ID of the version or tag" + } + } + }, + "CloudServiceProvider": { + "type": "object", + "description": "Cloud Service Provider object", + "properties": { + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "Attribute key/value pairs" + }, + "createdDate": { + "type": "string", + "description": "Creation date in ISO-8601 format" + }, + "description": { + "type": "string", + "description": "Description of the Cloud Service Provider" + }, + "displayName": { + "type": "string", + "description": "Display name of the Cloud Service Provider" + }, + "isDeployable": { + "type": "boolean", + "description": "Determines if this Cloud Service Provider can be used to depl\n oy artifacts" + }, + "isEnabled": { + "type": "boolean", + "description": "Determines if this Cloud Service Provider is enabled" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Labels that are associated with the Cloud Service Provider" + }, + "logo": { + "type": "string", + "description": "URL for the logo image" + }, + "name": { + "type": "string", + "description": "Unique name of the Cloud Service Provider" + }, + "updatedDate": { + "type": "string", + "description": "Updated date in ISO-8601 format" + } + } + }, + "CloudServiceProviderCreateRequest": { + "type": "object", + "description": "Request to create a new Cloud Service Provider", + "properties": { + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "Attribute key/value pairs" + }, + "description": { + "type": "string", + "description": "Description of the Cloud Service Provider" + }, + "displayName": { + "type": "string", + "description": "Display name of the Cloud Service Provider" + }, + "isEnabled": { + "type": "boolean", + "description": "Determines if this Cloud Service Provider is enabled" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Labels that are associated with the Cloud Service Provider" + }, + "logo": { + "type": "string", + "description": "URL for the logo image" + }, + "name": { + "type": "string", + "description": "Unique name of the Cloud Service Provider" + } + } + }, + "CloudServiceProviderListResponse": { + "type": "object", + "description": "Response to list Cloud Service Providers request", + "properties": { + "cloudServiceProviders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CloudServiceProvider" + } + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "x-description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "CloudServiceProviderUpdateRequest": { + "type": "object", + "description": "Request to update existing Cloud Service Provider", + "properties": { + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "Attribute key/value pairs" + }, + "description": { + "type": "string", + "description": "Description of the Cloud Service Provider" + }, + "displayName": { + "type": "string", + "description": "Display name of the Cloud Service Provider" + }, + "isEnabled": { + "type": "boolean", + "description": "Determines if this Cloud Service Provider is enabled" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Labels that are associated with the Cloud Service Provider" + }, + "logo": { + "type": "string", + "description": "URL for the logo image" + } + } + }, + "Collection": { + "type": "object", + "description": "Collection object", + "properties": { + "accessType": { + "type": "string" + }, + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "Attribute key/value pairs" + }, + "builtBy": { + "type": "string", + "description": "Organization that built the collection" + }, + "canGuestDownload": { + "type": "boolean", + "description": "Indicates if a guest user can download" + }, + "category": { + "type": "string" + }, + "createdDate": { + "type": "string", + "description": "Creation date in ISO-8601 format" + }, + "description": { + "type": "string", + "description": "Description of the collection" + }, + "displayName": { + "type": "string", + "description": "Display name" + }, + "isPublic": { + "type": "boolean", + "description": "Determines if this collection is publicly accessible" + }, + "isReadOnly": { + "type": "boolean", + "description": "indicate if current user has read only permissions" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "logo": { + "type": "string", + "description": "URL for the logo image" + }, + "name": { + "type": "string", + "description": "Unique name of the collection" + }, + "orgName": { + "type": "string", + "description": "Name of the org that the collection belongs to" + }, + "ownerName": { + "type": "string", + "description": "Name of the user who owns this version" + }, + "policyLabels": { + "type": "array", + "items": { + "type": "string" + }, + "description": "list of policy labels on the collection" + }, + "productNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Product names" + }, + "publisher": { + "type": "string", + "description": "Organization that published this collection" + }, + "shortDescription": { + "type": "string", + "description": "Short description of the collection" + }, + "size": { + "type": "integer", + "format": "int64", + "description": "Total count of collection items" + }, + "teamName": { + "type": "string", + "description": "Name of the team that the collection belongs to" + }, + "updatedDate": { + "type": "string", + "description": "Updated date in ISO-8601 format" + } + } + }, + "CollectionCreateRequest": { + "type": "object", + "description": "Request to create a new collection", + "properties": { + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "Attribute key/value pairs" + }, + "builtBy": { + "type": "string", + "description": "organization that built the collection" + }, + "category": { + "type": "string" + }, + "description": { + "type": "string", + "description": "Description of the collection" + }, + "displayName": { + "type": "string", + "description": "Display name" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "labelsV2": { + "type": "array", + "items": { + "type": "string" + } + }, + "logo": { + "type": "string", + "description": "URL for the logo image" + }, + "name": { + "type": "string", + "description": "Unique name of the collection" + }, + "ownerName": { + "type": "string", + "description": "Name of the user who owns this collection" + }, + "publisher": { + "type": "string", + "description": "organization that published the collection" + }, + "shortDescription": { + "type": "string", + "description": "Short description of the collection" + } + } + }, + "CollectionListResponse": { + "type": "object", + "description": "Response to list collections request", + "properties": { + "collections": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Collection" + } + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "x-description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "CollectionOperation": { + "type": "object", + "description": "Collection operation object", + "properties": { + "operation": { + "type": "string", + "description": "Collection operation" + }, + "path": { + "type": "string", + "description": "Path to a collection item in a scoped format" + } + } + }, + "CollectionPatchRequest": { + "type": "object", + "description": "Request to patch a collection", + "properties": { + "operations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CollectionOperation" + } + } + } + }, + "CollectionPublishRequest": { + "type": "object", + "description": "Request to publish a collection", + "properties": { + "accessType": { + "type": "string" + }, + "canGuestPull": { + "type": "boolean" + }, + "canPublicList": { + "type": "boolean" + }, + "isPublic": { + "type": "boolean" + }, + "productNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Product names" + } + } + }, + "CollectionResponse": { + "type": "object", + "description": "Response to create collection request", + "properties": { + "collection": { + "$ref": "#/components/schemas/Collection", + "x-description": "Collection object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "CollectionSimplified": { + "type": "object", + "description": "Collection object", + "properties": { + "name": { + "type": "string", + "description": "Unique name of the collection" + }, + "orgName": { + "type": "string", + "description": "Name of the org that the collection belongs to" + }, + "teamName": { + "type": "string", + "description": "Name of the team that the collection belongs to" + } + } + }, + "CollectionUpdateRequest": { + "type": "object", + "description": "Request to update a collection", + "properties": { + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "Attribute key/value pairs" + }, + "builtBy": { + "type": "string", + "description": "organization that built the collection" + }, + "category": { + "type": "string" + }, + "description": { + "type": "string", + "description": "Description of the collection" + }, + "displayName": { + "type": "string", + "description": "Display name" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "labelsV2": { + "type": "array", + "items": { + "type": "string" + } + }, + "logo": { + "type": "string", + "description": "URL for the logo image" + }, + "ownerName": { + "type": "string", + "description": "Name of the user who owns this collection" + }, + "publisher": { + "type": "string", + "description": "organization that published the collection" + }, + "shortDescription": { + "type": "string", + "description": "Short description of the collection" + } + } + }, + "ConfiguredLicenseTerm": { + "type": "object", + "description": "License information for the artifact", + "properties": { + "artifactType": { + "type": "string", + "description": "Artifact type" + }, + "generatedHtml": { + "type": "string", + "description": "Generated html" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LicenseTag" + } + } + } + }, + "ConfiguredLicenseTerms": { + "type": "object", + "description": "License information for the artifact", + "properties": { + "download": { + "$ref": "#/components/schemas/ConfiguredLicenseTerm", + "x-description": "License information for the artifact" + }, + "hosting": { + "$ref": "#/components/schemas/ConfiguredLicenseTerm", + "x-description": "License information for the artifact" + } + } + }, + "CountableResource": { + "type": "object", + "description": "Countable Resource object", + "properties": { + "defaultValue": { + "type": "integer", + "format": "int64", + "description": "Deprecated: Default value. Please use actual CloudServiceProv\n ider values instead" + }, + "maxValue": { + "type": "integer", + "format": "int64", + "description": "Maximum value" + }, + "minValue": { + "type": "integer", + "format": "int64", + "description": "Minimum value" + } + } + }, + "CustomMetric": { + "type": "object", + "description": "Custom metrics", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "CustomMetricGroup": { + "type": "object", + "description": "Defines the group of custom metrics.", + "properties": { + "attributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomMetric" + }, + "description": "Custom Metric key/value pairs" + }, + "name": { + "type": "string" + } + } + }, + "Dataset": { + "type": "object", + "properties": { + "license": { + "type": "string", + "description": "License of the dataset" + }, + "link": { + "type": "string", + "description": "Link to the dataset" + }, + "name": { + "type": "string", + "description": "Name of the dataset" + } + } + }, + "DeploymentArtifactParameters": { + "type": "object", + "description": "Deployment Artifact Parameters object", + "properties": { + "artifactType": { + "type": "string", + "description": "Artifact type" + }, + "displayName": { + "type": "string", + "description": "Display name of the artifact" + }, + "filePath": { + "type": "string", + "description": "Path to a file in an artifact version" + }, + "name": { + "type": "string", + "description": "Unique name of the artifact" + }, + "orgName": { + "type": "string", + "description": "Name of the org that the artifact belongs to" + }, + "teamName": { + "type": "string", + "description": "Name of the team that the artifact belongs to" + }, + "versionId": { + "type": "string", + "description": "ID of the version or tag" + } + } + }, + "DeploymentCpuParameters": { + "type": "object", + "description": "Deployment CPU Parameters object", + "properties": { + "count": { + "type": "integer", + "format": "int64", + "description": "Total count of CPUs" + } + } + }, + "DeploymentCpuParametersMeta": { + "type": "object", + "description": "Cloud Service Provider Deployment CPU Parameters object", + "properties": { + "count": { + "$ref": "#/components/schemas/CountableResource", + "x-description": "Countable Resource object" + } + } + }, + "DeploymentGpuParameters": { + "type": "object", + "description": "Deployment GPU Parameters object", + "properties": { + "count": { + "type": "integer", + "format": "int64", + "description": "Total count of GPUs" + }, + "type": { + "type": "string", + "description": "GPU Type" + } + } + }, + "DeploymentGpuParametersMeta": { + "type": "object", + "description": "Cloud Service Provider Deployment GPU Parameters object", + "properties": { + "count": { + "$ref": "#/components/schemas/CountableResource", + "x-description": "Countable Resource object" + }, + "type": { + "$ref": "#/components/schemas/EnumerableResource", + "x-description": "Enumerable Resource object" + } + } + }, + "DeploymentMemoryParameters": { + "type": "object", + "description": "Deployment Memory Parameters object", + "properties": { + "capacityInGB": { + "type": "integer", + "format": "int64", + "description": "Capacity in GB" + } + } + }, + "DeploymentMemoryParametersMeta": { + "type": "object", + "description": "Cloud Service Provider Deployment Memory Parameters object", + "properties": { + "capacityInGB": { + "$ref": "#/components/schemas/CountableResource", + "x-description": "Countable Resource object" + } + } + }, + "DeploymentParameters": { + "type": "object", + "description": "Deployment Artifact Parameters object", + "properties": { + "container": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "x-description": "Deployment Artifact Parameters object" + }, + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParameters", + "x-description": "Deployment CPU Parameters object" + }, + "csp": { + "type": "string", + "description": "Cloud Service Provider name" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParameters", + "x-description": "Deployment GPU Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParameters", + "x-description": "Deployment Memory Parameters object" + }, + "model": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "x-description": "Deployment Artifact Parameters object" + }, + "resource": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "x-description": "Deployment Artifact Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParameters", + "x-description": "Deployment Storage Parameters object" + } + } + }, + "DeploymentParametersCreateRequest": { + "type": "object", + "description": "Request to create a new deployment parameters", + "properties": { + "container": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "x-description": "Deployment Artifact Parameters object" + }, + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParameters", + "x-description": "Deployment CPU Parameters object" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParameters", + "x-description": "Deployment GPU Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParameters", + "x-description": "Deployment Memory Parameters object" + }, + "model": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "x-description": "Deployment Artifact Parameters object" + }, + "resource": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "x-description": "Deployment Artifact Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParameters", + "x-description": "Deployment Storage Parameters object" + } + } + }, + "DeploymentParametersListResponse": { + "type": "object", + "description": "Response to list deployment parameters request", + "properties": { + "artifact": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "x-description": "Deployment Artifact Parameters object" + }, + "csp": { + "type": "string", + "description": "Cloud Service Provider name" + }, + "deploymentParameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeploymentParameters" + } + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "x-description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "DeploymentParametersMeta": { + "type": "object", + "description": "Cloud Service Provider Deployment Parameters object", + "properties": { + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParametersMeta", + "x-description": "Cloud Service Provider Deployment CPU \n Parameters object" + }, + "csp": { + "type": "string", + "description": "Cloud Service Provider name" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParametersMeta", + "x-description": "Cloud Service Provider Deployment GPU \n Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParametersMeta", + "x-description": "Cloud Service Provider Deployment M\n emory Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParametersMeta", + "x-description": "Cloud Service Provider Deployment \n Storage Parameters object" + } + } + }, + "DeploymentParametersMetaCreateRequest": { + "type": "object", + "description": "Request to create a new Cloud Service Provider deployment parameters", + "properties": { + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParametersMeta", + "x-description": "Cloud Service Provider Deployment CPU \n Parameters object" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParametersMeta", + "x-description": "Cloud Service Provider Deployment GPU \n Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParametersMeta", + "x-description": "Cloud Service Provider Deployment M\n emory Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParametersMeta", + "x-description": "Cloud Service Provider Deployment \n Storage Parameters object" + } + } + }, + "DeploymentParametersMetaListResponse": { + "type": "object", + "description": "Response to list deployment parameters metadata request", + "properties": { + "csp": { + "type": "string", + "description": "Cloud Service Provider name" + }, + "deploymentParametersMetas": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeploymentParametersMeta" + } + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "x-description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "DeploymentParametersMetaUpdateRequest": { + "type": "object", + "description": "Request to create a new Cloud Service Provider deployment parameters me\n tadata", + "properties": { + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParametersMeta", + "x-description": "Cloud Service Provider Deployment CPU \n Parameters object" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParametersMeta", + "x-description": "Cloud Service Provider Deployment GPU \n Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParametersMeta", + "x-description": "Cloud Service Provider Deployment M\n emory Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParametersMeta", + "x-description": "Cloud Service Provider Deployment \n Storage Parameters object" + } + } + }, + "DeploymentParametersUpdateRequest": { + "type": "object", + "description": "Request to update existing deployment parameters", + "properties": { + "container": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "x-description": "Deployment Artifact Parameters object" + }, + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParameters", + "x-description": "Deployment CPU Parameters object" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParameters", + "x-description": "Deployment GPU Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParameters", + "x-description": "Deployment Memory Parameters object" + }, + "model": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "x-description": "Deployment Artifact Parameters object" + }, + "resource": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "x-description": "Deployment Artifact Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParameters", + "x-description": "Deployment Storage Parameters object" + } + } + }, + "DeploymentStorageParameters": { + "type": "object", + "description": "Deployment Storage Parameters object", + "properties": { + "capacityInGB": { + "type": "integer", + "format": "int64", + "description": "Capacity in GB" + } + } + }, + "DeploymentStorageParametersMeta": { + "type": "object", + "description": "Cloud Service Provider Deployment Storage Parameters object", + "properties": { + "capacityInGB": { + "$ref": "#/components/schemas/CountableResource", + "x-description": "Countable Resource object" + } + } + }, + "DeploymentUrlCreateRequest": { + "type": "object", + "description": "Request to create a new deployment url", + "properties": { + "container": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "x-description": "Deployment Artifact Parameters object" + }, + "cpu": { + "$ref": "#/components/schemas/DeploymentCpuParameters", + "x-description": "Deployment CPU Parameters object" + }, + "gpu": { + "$ref": "#/components/schemas/DeploymentGpuParameters", + "x-description": "Deployment GPU Parameters object" + }, + "memory": { + "$ref": "#/components/schemas/DeploymentMemoryParameters", + "x-description": "Deployment Memory Parameters object" + }, + "model": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "x-description": "Deployment Artifact Parameters object" + }, + "resource": { + "$ref": "#/components/schemas/DeploymentArtifactParameters", + "x-description": "Deployment Artifact Parameters object" + }, + "storage": { + "$ref": "#/components/schemas/DeploymentStorageParameters", + "x-description": "Deployment Storage Parameters object" + } + } + }, + "DeploymentUrlResponse": { + "type": "object", + "description": "Response to create a new deployment url", + "properties": { + "csp": { + "type": "string", + "description": "Cloud Service Provider name" + }, + "deploymentParameters": { + "$ref": "#/components/schemas/DeploymentParameters", + "x-description": "Deployment Artifact Parameters object" + }, + "deploymentUrl": { + "type": "string", + "description": "Deployment URL" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "EncryptionKey": { + "type": "object", + "description": "Customer Managed Key shard configuration for the model", + "properties": { + "description": { + "type": "string", + "description": "Description for a new customer key shard" + }, + "encryptionKeyId": { + "type": "string", + "description": "ID of the existing customer key shard to use" + }, + "useExistingKey": { + "type": "boolean", + "description": "Whether to use an existing customer key shard or should a new\n one be created" + } + } + }, + "EnumerableResource": { + "type": "object", + "description": "Enumerable Resource object", + "properties": { + "defaultItemName": { + "type": "string", + "description": "Deprecated: Default item name. Please use actual CloudServiceP\n rovider values instead" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EnumerableResourceItem" + } + } + } + }, + "EnumerableResourceItem": { + "type": "object", + "description": "Enumerable Resource Item object", + "properties": { + "displayName": { + "type": "string", + "description": "Display name" + }, + "logo": { + "type": "string", + "description": "Logo URL" + }, + "name": { + "type": "string", + "description": "Name" + } + } + }, + "File": { + "type": "object", + "description": "File object", + "properties": { + "createdDate": { + "type": "string", + "description": "Creation date in ISO-8601 format" + }, + "description": { + "type": "string", + "description": "Description of the file" + }, + "path": { + "type": "string", + "description": "Relative file path from the root of the object" + }, + "sizeInBytes": { + "type": "integer", + "format": "int64", + "description": "Size of the file in bytes" + }, + "updatedDate": { + "type": "string", + "description": "Updated date in ISO-8601 format" + } + } + }, + "GpuByPciCreateRequest": { + "type": "object", + "description": "Request to create a new GPU by PCI ID mapping", + "properties": { + "cudaMajorVersion": { + "type": "string", + "description": "CUDA major version" + }, + "cudaMinorVersion": { + "type": "string", + "description": "CUDA minor version" + }, + "displayName": { + "type": "string", + "description": "Display name for the GPU" + }, + "formFactor": { + "type": "string", + "description": "GPU form factor" + }, + "gpuCounts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Set of GPU counts (tinyint range)" + }, + "labelName": { + "type": "string", + "description": "Label name for the GPU" + }, + "memorySizeGb": { + "type": "integer", + "description": "Memory size in GB (smallint range)" + }, + "pciDeviceId": { + "type": "string", + "description": "PCI Device ID" + }, + "pciSubsystemDeviceId": { + "type": "string", + "description": "PCI Subsystem Device ID" + }, + "pciVendorId": { + "type": "string", + "description": "PCI Vendor ID" + } + } + }, + "GpuByPciResponse": { + "type": "object", + "description": "Response for GPU by PCI ID lookup", + "properties": { + "createdAt": { + "type": "string", + "description": "Creation timestamp" + }, + "cudaMajorVersion": { + "type": "string", + "description": "CUDA major version" + }, + "cudaMinorVersion": { + "type": "string", + "description": "CUDA minor version" + }, + "displayName": { + "type": "string", + "description": "Display name for the GPU" + }, + "formFactor": { + "type": "string", + "description": "GPU form factor" + }, + "gpuCounts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Set of GPU counts (tinyint range)" + }, + "labelName": { + "type": "string", + "description": "Label name for the GPU" + }, + "memorySizeGb": { + "type": "integer", + "description": "Memory size in GB (smallint range)" + }, + "pciDeviceId": { + "type": "string", + "description": "PCI Device ID" + }, + "pciSubsystemDeviceId": { + "type": "string", + "description": "PCI Subsystem Device ID" + }, + "pciVendorId": { + "type": "string", + "description": "PCI Vendor ID" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + }, + "updatedAt": { + "type": "string", + "description": "Last update timestamp" + } + } + }, + "GpuByPciUpdateRequest": { + "type": "object", + "description": "Request to update a GPU by PCI ID mapping", + "properties": { + "cudaMajorVersion": { + "type": "string", + "description": "CUDA major version" + }, + "cudaMinorVersion": { + "type": "string", + "description": "CUDA minor version" + }, + "displayName": { + "type": "string", + "description": "Display name for the GPU" + }, + "formFactor": { + "type": "string", + "description": "GPU form factor" + }, + "gpuCounts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Set of GPU counts (tinyint range)" + }, + "labelName": { + "type": "string", + "description": "Label name for the GPU" + }, + "memorySizeGb": { + "type": "integer", + "description": "Memory size in GB (smallint range)" + } + } + }, + "Health": { + "type": "object", + "description": "object that describes health of the service", + "properties": { + "healthCode": { + "type": "string", + "description": "Enum that describes health of the service" + }, + "healthCodeDescription": { + "type": "string", + "description": "Human readable description" + }, + "metaData": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetaData" + } + } + } + }, + "HealthResponse": { + "type": "object", + "description": "This API is invoked by monitoring tools, other services and infrastruct\n ure to retrieve health status the targeted service, this is unprotecte\n d method", + "properties": { + "health": { + "$ref": "#/components/schemas/Health", + "x-description": "object that describes health of the service" + } + } + }, + "HelmApiErrorResponse": { + "type": "object", + "description": "Helm API error response", + "properties": { + "error": { + "type": "string" + } + } + }, + "HelmChartDependency": { + "type": "object", + "description": "Helm chart dependency object", + "properties": { + "name": { + "type": "string", + "description": "The name of the chart (example: nginx)" + }, + "repository": { + "type": "string", + "description": "The repository URL (example: https://example.com/charts)" + }, + "version": { + "type": "string", + "description": "The version of the chart (example: 1.2.3)" + } + } + }, + "HelmChartMaintainer": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "The maintainer's email (optional for each maintainer)" + }, + "name": { + "type": "string", + "description": "The maintainer's name (required for each maintainer)" + }, + "url": { + "type": "string", + "description": "A URL for the maintainer (optional for each maintainer)" + } + } + }, + "HelmChartVersion": { + "type": "object", + "description": "Helm chart version object", + "properties": { + "apiVersion": { + "type": "string", + "description": "The chart API version (required)" + }, + "appVersion": { + "type": "string", + "description": "The version of the app that this contains (optional). This nee\n dn't be SemVer." + }, + "dependencies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HelmChartDependency" + }, + "description": "A list of the chart requirements (optional)" + }, + "deprecated": { + "type": "boolean", + "description": "Whether this chart is deprecated (optional, boolean)" + }, + "description": { + "type": "string", + "description": "A single-sentence description of this project (optional)" + }, + "home": { + "type": "string", + "description": "The URL of this project's home page (optional)" + }, + "icon": { + "type": "string", + "description": "A URL to an SVG or PNG image to be used as an icon (optional)." + }, + "keywords": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of keywords about this project (optional)" + }, + "kubeVersion": { + "type": "string", + "description": "A SemVer range of compatible Kubernetes versions (optional)" + }, + "maintainers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HelmChartMaintainer" + } + }, + "name": { + "type": "string", + "description": "The name of the chart (required)" + }, + "sources": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of URLs to source code for this project (optional)" + }, + "type": { + "type": "string", + "description": "It is the type of chart (optional)" + }, + "version": { + "type": "string", + "description": "A SemVer 2 version (required)" + } + } + }, + "HelmChartVersionCreateResponse": { + "type": "object", + "description": "Helm chart version creation response", + "properties": { + "saved": { + "type": "boolean" + } + } + }, + "KeyArtifactListResponse": { + "type": "object", + "description": "Response containing a list of artifacts associated with a key", + "properties": { + "artifacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactItem" + }, + "description": "List of artifacts associated with the key" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "KeyItem": { + "type": "object", + "description": "Key item with ID and create timestamp string", + "properties": { + "created": { + "type": "string", + "description": "The creation timestamp of the key item in ISO-8601 format. For\n mat: YYYY-MM-DDTHH:mm:ss.sssZ." + }, + "description": { + "type": "string", + "description": "Description of the encryption key" + }, + "encryptionKeyId": { + "type": "string", + "description": "The encryption key identifier in UUID format." + } + } + }, + "KeyListResponse": { + "type": "object", + "description": "Response to list keys request", + "properties": { + "encryptionKeys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/KeyItem" + } + } + } + }, + "LicenseMetadata": { + "type": "object", + "description": "License information for the artifact", + "properties": { + "configuredLicenseTerms": { + "$ref": "#/components/schemas/ConfiguredLicenseTerms", + "x-description": "License information for the artifact" + }, + "governingTerms": { + "type": "string", + "description": "Comprehensive terms and links related to the license" + }, + "licenseId": { + "type": "string", + "description": "License ID" + }, + "licenseVersion": { + "type": "string", + "description": "License version ID" + }, + "needsAcceptance": { + "type": "boolean", + "description": "Indicator if user needs to accept this license" + } + } + }, + "LicenseTag": { + "type": "object", + "description": "License tag information for individual term", + "properties": { + "category": { + "type": "string", + "description": "Category of the tag" + }, + "key": { + "type": "string", + "description": "Key identifier for the tag" + }, + "label": { + "type": "string", + "description": "License Label" + }, + "tag": { + "type": "string", + "description": "License tag name" + }, + "url": { + "type": "string", + "description": "Link to the hosted license" + } + } + }, + "MetaData": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "Model": { + "type": "object", + "description": "Model object", + "properties": { + "accessType": { + "type": "string" + }, + "application": { + "type": "string", + "description": "Application of the model" + }, + "bias": { + "type": "string", + "description": "Text describing bias in the model" + }, + "builtBy": { + "type": "string", + "description": "organization that built the repository" + }, + "canGuestDownload": { + "type": "boolean", + "description": "Indicates if a guest user can download" + }, + "createdDate": { + "type": "string", + "description": "Creation date in ISO-8601 format" + }, + "description": { + "type": "string", + "description": "Description of the model" + }, + "displayName": { + "type": "string", + "description": "Display name" + }, + "encryptionKeyId": { + "type": "string", + "description": "ID of the customer managed encryption key associated with this\n artifact" + }, + "explainability": { + "type": "string", + "description": "Text describing explainability for this model" + }, + "framework": { + "type": "string", + "description": "Framework used to train this model" + }, + "hasPlayground": { + "type": "boolean", + "description": "indicate if the Model has AI Playground configured" + }, + "hasSignedVersion": { + "type": "boolean", + "description": "Indicates if the model has any signed versions" + }, + "isFavourite": { + "type": "boolean", + "description": "Flag indicating if model is user's favorite" + }, + "isPlaygroundEnabled": { + "type": "boolean", + "description": "indicate if AI Playground is enabled in the catalog" + }, + "isPublic": { + "type": "boolean", + "description": "Determines if model is publicly accessible" + }, + "isReadOnly": { + "type": "boolean", + "description": "indicate if current user has read only permissions" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "latestVersionGpuModel": { + "type": "string", + "description": "GPU model and memory used for the latest version" + }, + "latestVersionId": { + "type": "integer", + "format": "int64", + "description": "Deprecated: Please use latestVersionIdStr instead. ID of the \n latest version" + }, + "latestVersionIdStr": { + "type": "string", + "description": "ID of the latest version" + }, + "latestVersionSizeInBytes": { + "type": "integer", + "format": "int64", + "description": "Size of the latest version in bytes" + }, + "licenseTerms": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "description": "License information for the model" + }, + "logo": { + "type": "string", + "description": "URL for the logo image" + }, + "modelFormat": { + "type": "string", + "description": "Format of the model" + }, + "name": { + "type": "string", + "description": "Unique name of the model" + }, + "orgName": { + "type": "string", + "description": "Name of the org that the model belongs to" + }, + "ownerName": { + "type": "string", + "description": "Name of model's owner" + }, + "policyLabels": { + "type": "array", + "items": { + "type": "string" + }, + "description": "list of policy labels on the artifact" + }, + "precision": { + "type": "string", + "description": "Precision this model was trained with" + }, + "privacy": { + "type": "string", + "description": "Text describing the privacy for this model" + }, + "productNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Product names" + }, + "publicDatasetUsed": { + "$ref": "#/components/schemas/Dataset" + }, + "publisher": { + "type": "string", + "description": "organization that published the repository" + }, + "safetyAndSecurity": { + "type": "string", + "description": "Text for describing the safety and security in the model" + }, + "shortDescription": { + "type": "string", + "description": "Short description of the model" + }, + "teamName": { + "type": "string", + "description": "Name of the team that the model belongs to" + }, + "updatedDate": { + "type": "string", + "description": "Updated date in ISO-8601 format" + }, + "versions": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ModelCreateRequest": { + "type": "object", + "description": "Request to create a new model", + "properties": { + "application": { + "type": "string", + "description": "Application of the model" + }, + "bias": { + "type": "string", + "description": "Text describing bias in the model" + }, + "builtBy": { + "type": "string", + "description": "organization that built the repository" + }, + "description": { + "type": "string", + "description": "Description of the model" + }, + "displayName": { + "type": "string", + "description": "Display name" + }, + "encryptionKey": { + "$ref": "#/components/schemas/EncryptionKey", + "x-description": "Customer Managed Key shard configuration for the mod\n el" + }, + "explainability": { + "type": "string", + "description": "Text describing explainability for this model" + }, + "framework": { + "type": "string", + "description": "Framework used to train this model" + }, + "hasPlayground": { + "type": "boolean", + "description": "indicate if the Model has AI Playground configured" + }, + "isPlaygroundEnabled": { + "type": "boolean", + "description": "indicate if AI Playground is enabled in the catalog" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "labelsV2": { + "type": "array", + "items": { + "type": "string" + } + }, + "licenseTerms": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "description": "License information for the model" + }, + "logo": { + "type": "string", + "description": "URL for the logo image" + }, + "modelFormat": { + "type": "string", + "description": "Format of the model" + }, + "name": { + "type": "string", + "description": "Unique name of the model" + }, + "ownerName": { + "type": "string", + "description": "Name of the user who owns this model" + }, + "precision": { + "type": "string", + "description": "Precision this model was trained with" + }, + "privacy": { + "type": "string", + "description": "Text describing the privacy for this model" + }, + "publicDatasetUsed": { + "$ref": "#/components/schemas/Dataset" + }, + "publisher": { + "type": "string", + "description": "organization that published the repository" + }, + "safetyAndSecurity": { + "type": "string", + "description": "Text for describing the safety and security in the model" + }, + "shortDescription": { + "type": "string", + "description": "Short description of the model" + } + } + }, + "ModelCreateResponse": { + "type": "object", + "description": "DEPRECATED - use ModelResponse schema", + "properties": { + "model": { + "$ref": "#/components/schemas/Model", + "x-description": "Model object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "ModelFile": { + "type": "object", + "description": "Model file object", + "properties": { + "createdDate": { + "type": "string", + "description": "Creation date in ISO-8601 format" + }, + "description": { + "type": "string", + "description": "Description of the file" + }, + "path": { + "type": "string", + "description": "Relative file path from the root of the model" + }, + "sha256_base64": { + "type": "string", + "description": "Base64 encoded sha256 hash of the artifact file" + }, + "sizeInBytes": { + "type": "integer", + "format": "int64", + "description": "Size of the file in bytes" + } + } + }, + "ModelListResponse": { + "type": "object", + "description": "Response to list models request", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Model" + } + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "x-description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "ModelResponse": { + "type": "object", + "description": "Response to create model request", + "properties": { + "model": { + "$ref": "#/components/schemas/Model", + "x-description": "Model object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "ModelSimplified": { + "type": "object", + "description": "Model object", + "properties": { + "name": { + "type": "string", + "description": "Unique name of the model" + }, + "orgName": { + "type": "string", + "description": "Name of the org that the model belongs to" + }, + "teamName": { + "type": "string", + "description": "Name of the team that the model belongs to" + } + } + }, + "ModelUpdateRequest": { + "type": "object", + "description": "Request to create a new model", + "properties": { + "application": { + "type": "string", + "description": "Application of the model" + }, + "bias": { + "type": "string", + "description": "Text describing bias in the model" + }, + "builtBy": { + "type": "string", + "description": "organization that built the repository" + }, + "description": { + "type": "string", + "description": "Description of the model" + }, + "displayName": { + "type": "string", + "description": "Display name" + }, + "explainability": { + "type": "string", + "description": "Text describing explainability for this model" + }, + "framework": { + "type": "string", + "description": "Framework used to train this model" + }, + "hasPlayground": { + "type": "boolean", + "description": "indicate if the Model has AI Playground configured" + }, + "isPlaygroundEnabled": { + "type": "boolean", + "description": "indicate if AI Playground is enabled in the catalog" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "labelsV2": { + "type": "array", + "items": { + "type": "string" + } + }, + "licenseTerms": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "description": "License information for the model" + }, + "logo": { + "type": "string", + "description": "URL for the logo image" + }, + "modelFormat": { + "type": "string", + "description": "Format of the model" + }, + "ownerName": { + "type": "string", + "description": "Name of the user who owns this model" + }, + "precision": { + "type": "string", + "description": "Precision this model was trained with" + }, + "privacy": { + "type": "string", + "description": "Text describing the privacy for this model" + }, + "publicDatasetUsed": { + "$ref": "#/components/schemas/Dataset" + }, + "publisher": { + "type": "string", + "description": "organization that published the repository" + }, + "safetyAndSecurity": { + "type": "string", + "description": "Text for describing the safety and security in the model" + }, + "shortDescription": { + "type": "string", + "description": "Short description of the model" + } + } + }, + "ModelVersion": { + "type": "object", + "description": "Model version object", + "properties": { + "accuracyReached": { + "type": "number", + "description": "Accuracy this model reached" + }, + "batchSize": { + "type": "integer", + "format": "int64", + "description": "Batch size this model was trained with" + }, + "createdByUser": { + "type": "string", + "description": "Id of the user who created this model" + }, + "createdDate": { + "type": "string", + "description": "Creation date in ISO-8601 format" + }, + "customMetrics": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "description": "Custom Metrics key/value pairs" + }, + "description": { + "type": "string", + "description": "Description of the model version" + }, + "gpuModel": { + "type": "string", + "description": "GPU model and memory" + }, + "id": { + "type": "integer", + "format": "int64", + "description": "Deprecated: Please use versionId instead. Unique ID of the ve\n rsion" + }, + "isSigned": { + "type": "boolean", + "description": "Indicates if the version is signed" + }, + "malwareScanDate": { + "type": "string", + "description": "Scan date in ISO-8601 format" + }, + "malwareScanStatus": { + "type": "string", + "description": "Malware scan status" + }, + "memoryFootprint": { + "type": "string", + "description": "Model size/memory footprint for inference" + }, + "numberOfEpochs": { + "type": "integer", + "format": "int64", + "description": "Number of epochs this model trained" + }, + "nvcfContainerConfiguration": { + "$ref": "#/components/schemas/NvcfContainerConfiguration", + "x-description": "NVCF container configuration parameters" + }, + "nvcfDeploymentSpecification": { + "$ref": "#/components/schemas/NvcfDeploymentSpecification", + "x-description": "NVCF deployment specification" + }, + "otherContents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "List of external contents" + }, + "ownerName": { + "type": "string", + "description": "Name of the user who owns this version" + }, + "policy": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Policy label to be added to a specific version" + }, + "releaseType": { + "type": "string", + "description": "Release type enum for the artifact version in the \n product lifecycle." + }, + "status": { + "type": "string", + "description": "Version status" + }, + "storageVersion": { + "type": "string", + "description": "The storage version i.e. the format the file and their content\n s are persisted in in object store. Possible values include V1\n - for legacy artifact versions with files, V2 - for new artifact vers\n ions with blob registry, `` - for artifact versions without any files." + }, + "totalFileCount": { + "type": "integer", + "format": "int64", + "description": "Total file count" + }, + "totalSizeInBytes": { + "type": "integer", + "format": "int64", + "description": "Total size of the model in bytes" + }, + "updatedDate": { + "type": "string", + "description": "Updated date in ISO-8601 format" + }, + "versionId": { + "type": "string", + "description": "Unique version id. Please use this instead of 'id'" + } + } + }, + "ModelVersionCreateRequest": { + "type": "object", + "description": "Request to create a new model version", + "properties": { + "accuracyReached": { + "type": "number", + "description": "Accuracy this model reached" + }, + "batchSize": { + "type": "integer", + "format": "int64", + "description": "Batch size this model was trained with" + }, + "customMetrics": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "description": "Custom Metrics key/value pairs" + }, + "description": { + "type": "string", + "description": "Description of the model version" + }, + "gpuModel": { + "type": "string", + "description": "GPU model and memory" + }, + "id": { + "type": "integer", + "format": "int64", + "description": "Deprecated: Please use version instead. Unique ID of the vers\n ion" + }, + "memoryFootprint": { + "type": "string", + "description": "Model size/memory footprint for inference" + }, + "numberOfEpochs": { + "type": "integer", + "format": "int64", + "description": "Number of epochs this model trained" + }, + "nvcfContainerConfiguration": { + "$ref": "#/components/schemas/NvcfContainerConfiguration", + "x-description": "NVCF container configuration parameters" + }, + "nvcfDeploymentSpecification": { + "$ref": "#/components/schemas/NvcfDeploymentSpecification", + "x-description": "NVCF deployment specification" + }, + "otherContents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "List of external contents" + }, + "ownerName": { + "type": "string", + "description": "Name of the user who owns this version" + }, + "versionId": { + "type": "string", + "description": "Unique version id. Please use this instead of 'id'" + } + } + }, + "ModelVersionCreateResponse": { + "type": "object", + "description": "DEPRECATED - use ModelVersionResponse", + "properties": { + "model": { + "$ref": "#/components/schemas/Model", + "x-description": "Model object" + }, + "modelVersion": { + "$ref": "#/components/schemas/ModelVersion", + "x-description": "Model version object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "ModelVersionFileListResponse": { + "type": "object", + "description": "Response to list files for model version request", + "properties": { + "model": { + "$ref": "#/components/schemas/Model", + "x-description": "Model object" + }, + "modelFiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ModelFile" + } + }, + "modelVersion": { + "$ref": "#/components/schemas/ModelVersion", + "x-description": "Model version object" + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "x-description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "ModelVersionListResponse": { + "type": "object", + "description": "Response to list model versions request", + "properties": { + "model": { + "$ref": "#/components/schemas/Model", + "x-description": "Model object" + }, + "modelVersions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ModelVersion" + } + }, + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "x-description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "ModelVersionResponse": { + "type": "object", + "description": "Response to create a model version request", + "properties": { + "model": { + "$ref": "#/components/schemas/Model", + "x-description": "Model object" + }, + "modelVersion": { + "$ref": "#/components/schemas/ModelVersion", + "x-description": "Model version object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "ModelVersionUpdateRequest": { + "type": "object", + "description": "Request to create a new model version", + "properties": { + "accuracyReached": { + "type": "number", + "description": "Accuracy this model reached" + }, + "batchSize": { + "type": "integer", + "format": "int64", + "description": "Batch size this model was trained with" + }, + "customMetrics": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "description": "Custom Metrics key/value pairs" + }, + "description": { + "type": "string", + "description": "Description of the model version" + }, + "gpuModel": { + "type": "string", + "description": "GPU model and memory" + }, + "memoryFootprint": { + "type": "string", + "description": "Model size/memory footprint for inference" + }, + "numberOfEpochs": { + "type": "integer", + "format": "int64", + "description": "Number of epochs this model trained" + }, + "nvcfContainerConfiguration": { + "$ref": "#/components/schemas/NvcfContainerConfiguration", + "x-description": "NVCF container configuration parameters" + }, + "nvcfDeploymentSpecification": { + "$ref": "#/components/schemas/NvcfDeploymentSpecification", + "x-description": "NVCF deployment specification" + }, + "otherContents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "List of external contents" + }, + "ownerName": { + "type": "string", + "description": "Name of the user who owns this version" + }, + "status": { + "type": "string", + "description": "Version status" + } + } + }, + "MultipartUploadAbortRequest": { + "type": "object", + "description": "Request body for aborting a multipart upload for artifacts", + "properties": { + "artifactType": { + "type": "string", + "description": "Type of artifact" + }, + "filePath": { + "type": "string", + "description": "The file path for the artifact upload" + }, + "name": { + "type": "string", + "description": "Name of the artifact" + }, + "uploadID": { + "type": "string", + "description": "The unique ID assigned for this multipart upload to associate \n all upload parts. This is the basic base64 encoded data of the\n MultipartUploadIDSchema" + }, + "version": { + "type": "string", + "description": "Artifact version" + } + } + }, + "MultipartUploadCompleteRequest": { + "type": "object", + "description": "Request body for completing a multipart upload for artifacts", + "properties": { + "artifactType": { + "type": "string", + "description": "Type of artifact" + }, + "filePath": { + "type": "string", + "description": "The file path for the artifact upload" + }, + "name": { + "type": "string", + "description": "Name of the artifact" + }, + "sha256": { + "type": "string", + "description": "Base64 encoded sha256 hash of the entire file" + }, + "uploadID": { + "type": "string", + "description": "The unique ID assigned for this multipart upload to associate \n all upload parts. This is the basic base64 encoded data of the\n MultipartUploadIDSchema" + }, + "version": { + "type": "string", + "description": "Artifact version" + } + } + }, + "MultipartUploadCreateRequest": { + "type": "object", + "description": "Request body for creating a multipart upload for artifacts", + "properties": { + "artifactType": { + "type": "string", + "description": "Type of artifact" + }, + "customPartSize": { + "type": "integer", + "format": "int64", + "description": "Custom chunk size of the file to be uploaded, in bytes. shoul\n d be >= 5MB and <= 500MB. default is 500 in MB." + }, + "filePath": { + "type": "string", + "description": "The file path for the artifact upload" + }, + "name": { + "type": "string", + "description": "Name of the artifact" + }, + "partNumberList": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of parts to re-generate urls for" + }, + "sha256": { + "type": "string", + "description": "Base64 encoded sha256 hash of the artifact file to be uploaded" + }, + "size": { + "type": "integer", + "format": "int64", + "description": "total size of the artifact, in bytes" + }, + "uploadID": { + "type": "string", + "description": "Upload id of an already initiated Multipart upload" + }, + "version": { + "type": "string", + "description": "Artifact version" + } + } + }, + "MultipartUploadCreateResponse": { + "type": "object", + "description": "Response body for creating a multipart upload for artifacts", + "properties": { + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "x-description": "Pagination Information" + }, + "partSize": { + "type": "integer", + "format": "int64", + "description": "The size of each part upload in bytes" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + }, + "uploadID": { + "type": "string", + "description": "The unique ID assigned for this multipart upload to associate \n all upload parts. This is the basic base64 encoded data of the\n MultipartUploadIDSchema" + }, + "urls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of presigned urls for upload" + } + } + }, + "MultipartUploadIDSchema": { + "type": "object", + "description": "Schema for base64 encoded stringified Upload ID that is relayed during \n multipart upload of artifacts", + "properties": { + "dekMeta": { + "type": "string", + "description": "DEK metadata for encrypted enabled orgs" + }, + "sha256": { + "type": "string", + "description": "Base64 encoded sha256 hash of the entire file" + }, + "uploadID": { + "type": "string", + "description": "CSP upload ID" + } + } + }, + "NotifyMalwareScanResultResponse": { + "type": "object", + "description": "Notify malware scan result response", + "properties": { + "status": { + "type": "string", + "description": "Malware scan status" + } + } + }, + "NvcfContainerConfiguration": { + "type": "object", + "description": "NVCF container configuration parameters", + "properties": { + "apiBodyFormat": { + "type": "string", + "description": "API body format" + }, + "containerArgs": { + "type": "string", + "description": "Container arguments" + }, + "containerEnvironment": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MetaData" + }, + "description": "Container environment consisting of key value pair" + }, + "containerImage": { + "type": "string", + "description": "Container Image" + }, + "healthUri": { + "type": "string", + "description": "Health URI" + }, + "inferencePort": { + "type": "string", + "description": "Inference port" + }, + "inferenceUrl": { + "type": "string", + "description": "Inference url" + }, + "models": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NvcfContainerModel" + }, + "description": "Models version object metadata" + } + } + }, + "NvcfContainerModel": { + "type": "object", + "description": "Models version object metadata", + "properties": { + "name": { + "type": "string", + "description": "Model name" + }, + "uri": { + "type": "string", + "description": "Model URI" + }, + "version": { + "type": "string", + "description": "Model version" + } + } + }, + "NvcfDeploymentSpecification": { + "type": "object", + "description": "NVCF deployment specification", + "properties": { + "gpuCount": { + "type": "integer", + "description": "GPU count" + }, + "gpuType": { + "type": "string", + "description": "GPU type" + }, + "instanceType": { + "type": "string", + "description": "Instance type" + }, + "maxConcurrency": { + "type": "integer", + "description": "Maximum concurrency" + } + } + }, + "PaginationInfo": { + "type": "object", + "description": "Pagination Information", + "properties": { + "index": { + "type": "integer", + "description": "Page index of results" + }, + "nextPage": { + "type": "string", + "description": "Serialized pointer to the next results page. Should be used fo\n r fetching next page. Can be empty" + }, + "size": { + "type": "integer", + "description": "Number of results in page" + }, + "totalPages": { + "type": "integer", + "format": "int64", + "description": "Total number of pages available" + }, + "totalResults": { + "type": "integer", + "format": "int64", + "description": "Total number of results available" + } + } + }, + "Recipe": { + "type": "object", + "description": "Recipe object", + "properties": { + "accessType": { + "type": "string" + }, + "advanced": { + "type": "string", + "description": "Text for describing advanced information" + }, + "application": { + "type": "string" + }, + "builtBy": { + "type": "string", + "description": "Organization that built the recipe" + }, + "canGuestDownload": { + "type": "boolean", + "description": "Indicates if a guest user can download" + }, + "createdDate": { + "type": "string", + "description": "Creation date in ISO-8601 format" + }, + "description": { + "type": "string", + "description": "Description of the recipe" + }, + "displayName": { + "type": "string", + "description": "Display name" + }, + "hasSignedVersion": { + "type": "boolean", + "description": "Indicates if the recipe has any signed versions" + }, + "isFavourite": { + "type": "boolean", + "description": "Flag indicating if recipe is user's favorite" + }, + "isPublic": { + "type": "boolean", + "description": "Determines if this recipe is publicly accessible" + }, + "isReadOnly": { + "type": "boolean", + "description": "indicate if current user has read only permissions" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "latestVersionId": { + "type": "integer", + "format": "int64", + "description": "Deprecated: Please use latestVersionIdStr instead. ID of the \n latest version" + }, + "latestVersionIdStr": { + "type": "string", + "description": "ID of the latest version" + }, + "latestVersionSizeInBytes": { + "type": "integer", + "format": "int64", + "description": "Size of the latest version in bytes" + }, + "licenseTerms": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "description": "License information for the model" + }, + "logo": { + "type": "string", + "description": "URL for the logo image" + }, + "modelFormat": { + "type": "string", + "description": "Format of the model this recipe produces" + }, + "name": { + "type": "string", + "description": "Unique name of the recipe" + }, + "orgName": { + "type": "string", + "description": "Name of the org that the recipe belongs to" + }, + "performance": { + "type": "string", + "description": "Text describing performance of the recipe results" + }, + "policyLabels": { + "type": "array", + "items": { + "type": "string" + }, + "description": "list of policy labels on the artifact" + }, + "precision": { + "type": "string" + }, + "productNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Product names" + }, + "publicDatasetUsed": { + "$ref": "#/components/schemas/Dataset" + }, + "publisher": { + "type": "string", + "description": "Organization that published this recipe" + }, + "quickStartGuide": { + "type": "string", + "description": "Text with a guide to getting started" + }, + "relatedModels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Model" + } + }, + "setup": { + "type": "string", + "description": "Text describing recipe setup" + }, + "shortDescription": { + "type": "string", + "description": "Short description of the recipe" + }, + "teamName": { + "type": "string", + "description": "Name of the team that the recipe belongs to" + }, + "trainingFramework": { + "type": "string" + }, + "updatedDate": { + "type": "string", + "description": "Updated date in ISO-8601 format" + } + } + }, + "RecipeCreateRequest": { + "type": "object", + "description": "Request to create a new recipe", + "properties": { + "advanced": { + "type": "string", + "description": "Text for describing advanced information" + }, + "application": { + "type": "string" + }, + "builtBy": { + "type": "string", + "description": "organization that built the recipe" + }, + "description": { + "type": "string", + "description": "Description of the recipe" + }, + "displayName": { + "type": "string", + "description": "Display name" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "labelsV2": { + "type": "array", + "items": { + "type": "string" + } + }, + "licenseTerms": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "description": "License information for the recipe" + }, + "logo": { + "type": "string", + "description": "URL for the logo image" + }, + "modelFormat": { + "type": "string", + "description": "Format of the model this recipe produces" + }, + "name": { + "type": "string", + "description": "Unique name of the recipe" + }, + "performance": { + "type": "string", + "description": "Text describing performance of the recipe results" + }, + "precision": { + "type": "string" + }, + "publicDatasetUsed": { + "$ref": "#/components/schemas/Dataset" + }, + "publisher": { + "type": "string", + "description": "organization that published the recipe" + }, + "quickStartGuide": { + "type": "string", + "description": "Text with a guide to getting started" + }, + "setup": { + "type": "string", + "description": "Text describing recipe setup" + }, + "shortDescription": { + "type": "string", + "description": "Short description of the recipe" + }, + "trainingFramework": { + "type": "string" + } + } + }, + "RecipeFile": { + "type": "object", + "description": "Recipe file object", + "properties": { + "createdDate": { + "type": "string", + "description": "Creation date in ISO-8601 format" + }, + "description": { + "type": "string", + "description": "Description of the file" + }, + "path": { + "type": "string", + "description": "Relative file path from the root of the recipe" + }, + "sha256_base64": { + "type": "string", + "description": "Base64 encoded sha256 hash of the artifact file" + }, + "sizeInBytes": { + "type": "integer", + "format": "int64", + "description": "Size of the file in bytes" + } + } + }, + "RecipeListResponse": { + "type": "object", + "description": "Response to list recipes request", + "properties": { + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "x-description": "Pagination Information" + }, + "recipes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Recipe" + } + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "RecipeResponse": { + "type": "object", + "description": "Response to recipe request", + "properties": { + "recipe": { + "$ref": "#/components/schemas/Recipe", + "x-description": "Recipe object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "RecipeUpdateRequest": { + "type": "object", + "description": "Request to create a new recipe", + "properties": { + "advanced": { + "type": "string", + "description": "Text for describing advanced information" + }, + "application": { + "type": "string" + }, + "builtBy": { + "type": "string", + "description": "organization that built the recipe" + }, + "description": { + "type": "string", + "description": "Description of the recipe" + }, + "displayName": { + "type": "string", + "description": "Display name" + }, + "labels": { + "type": "array", + "items": { + "type": "string" + } + }, + "labelsV2": { + "type": "array", + "items": { + "type": "string" + } + }, + "licenseTerms": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LicenseMetadata" + }, + "description": "License information for the recipe" + }, + "logo": { + "type": "string", + "description": "URL for the logo image" + }, + "modelFormat": { + "type": "string", + "description": "Format of the model this recipe produces" + }, + "performance": { + "type": "string", + "description": "Text describing performance of the recipe results" + }, + "precision": { + "type": "string" + }, + "publicDatasetUsed": { + "$ref": "#/components/schemas/Dataset" + }, + "publisher": { + "type": "string", + "description": "organization that published the recipe" + }, + "quickStartGuide": { + "type": "string", + "description": "Text with a guide to getting started" + }, + "relatedModels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ModelSimplified" + } + }, + "setup": { + "type": "string", + "description": "Text describing recipe setup" + }, + "shortDescription": { + "type": "string", + "description": "Short description of the recipe" + }, + "trainingFramework": { + "type": "string" + } + } + }, + "RecipeVersion": { + "type": "object", + "description": "Recipe version object", + "properties": { + "accuracyReached": { + "type": "number", + "description": "Accuracy this recipe reached" + }, + "batchSize": { + "type": "integer", + "format": "int64", + "description": "Batch size this recipe was trained with" + }, + "createdByUser": { + "type": "string", + "description": "Id of the user who created this recipe" + }, + "createdDate": { + "type": "string", + "description": "Creation date in ISO-8601 format" + }, + "customMetrics": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "description": "Custom Metrics key/value pairs" + }, + "description": { + "type": "string", + "description": "Description of the recipe version" + }, + "gpuModel": { + "type": "string", + "description": "GPU model and memory" + }, + "id": { + "type": "integer", + "format": "int64", + "description": "Deprecated: Please use versionId instead. Unique ID of the ve\n rsion" + }, + "isSigned": { + "type": "boolean", + "description": "Indicates if the version is signed" + }, + "malwareScanDate": { + "type": "string", + "description": "Scan date in ISO-8601 format" + }, + "malwareScanStatus": { + "type": "string", + "description": "Malware scan status" + }, + "memoryFootprint": { + "type": "string", + "description": "recipe size/memory footprint for inference" + }, + "numberOfEpochs": { + "type": "integer", + "format": "int64", + "description": "Number of epochs this recipe trained" + }, + "otherContents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "List of external contents" + }, + "performance": { + "type": "string", + "description": "Text describing performance of the recipe results" + }, + "policy": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Policy label to be added to a specific version" + }, + "quickStartGuide": { + "type": "string", + "description": "Text with a guide to getting started" + }, + "releaseNotes": { + "type": "string", + "description": "Text describing this release" + }, + "releaseType": { + "type": "string", + "description": "Release type enum for the artifact version in the \n product lifecycle." + }, + "setup": { + "type": "string", + "description": "Text describing recipe setup" + }, + "status": { + "type": "string", + "description": "Version status" + }, + "storageVersion": { + "type": "string", + "description": "The storage version i.e. the format the file and their content\n s are persisted in in object store. Possible values include V1\n - for legacy artifact versions with files, V2 - for new artifact vers\n ions with blob registry, `` - for artifact versions without any files." + }, + "totalFileCount": { + "type": "integer", + "format": "int64", + "description": "Total file count" + }, + "totalSizeInBytes": { + "type": "integer", + "format": "int64", + "description": "Total size of the recipe in bytes" + }, + "versionId": { + "type": "string", + "description": "Unique version id. Please use this instead of 'id'" + } + } + }, + "RecipeVersionCreateRequest": { + "type": "object", + "description": "Request to create a new recipe version", + "properties": { + "accuracyReached": { + "type": "number", + "description": "Accuracy this recipe reached" + }, + "batchSize": { + "type": "integer", + "format": "int64", + "description": "Batch size this recipe was trained with" + }, + "customMetrics": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "description": "Custom Metrics key/value pairs" + }, + "description": { + "type": "string", + "description": "Description of the recipe version" + }, + "gpuModel": { + "type": "string", + "description": "GPU model and memory" + }, + "id": { + "type": "integer", + "format": "int64", + "description": "Deprecated: Please use version instead. Unique ID of the vers\n ion" + }, + "memoryFootprint": { + "type": "string", + "description": "Recipe size/memory footprint for inference" + }, + "numberOfEpochs": { + "type": "integer", + "format": "int64", + "description": "Number of epochs this recipe trained" + }, + "otherContents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "List of external contents" + }, + "performance": { + "type": "string", + "description": "Text describing performance of the recipe results" + }, + "quickStartGuide": { + "type": "string", + "description": "Text with a guide to getting started" + }, + "releaseNotes": { + "type": "string", + "description": "Text describing this release" + }, + "setup": { + "type": "string", + "description": "Text describing recipe setup" + }, + "versionId": { + "type": "string", + "description": "Unique version id. Please use this instead of 'id'" + } + } + }, + "RecipeVersionFileListResponse": { + "type": "object", + "description": "Response to list files for recipe version request", + "properties": { + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "x-description": "Pagination Information" + }, + "recipe": { + "$ref": "#/components/schemas/Recipe", + "x-description": "Recipe object" + }, + "recipeFiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RecipeFile" + } + }, + "recipeVersion": { + "$ref": "#/components/schemas/RecipeVersion", + "x-description": "Recipe version object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "RecipeVersionListResponse": { + "type": "object", + "description": "Response to list recipe versions request", + "properties": { + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "x-description": "Pagination Information" + }, + "recipe": { + "$ref": "#/components/schemas/Recipe", + "x-description": "Recipe object" + }, + "recipeVersions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RecipeVersion" + } + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "RecipeVersionResponse": { + "type": "object", + "description": "Response to recipe version request", + "properties": { + "recipe": { + "$ref": "#/components/schemas/Recipe", + "x-description": "Recipe object" + }, + "recipeVersion": { + "$ref": "#/components/schemas/RecipeVersion", + "x-description": "Recipe version object" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "RecipeVersionUpdateRequest": { + "type": "object", + "description": "Request to create a new recipe version", + "properties": { + "accuracyReached": { + "type": "number", + "description": "Accuracy this recipe reached" + }, + "batchSize": { + "type": "integer", + "format": "int64", + "description": "Batch size this recipe was trained with" + }, + "customMetrics": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomMetricGroup" + }, + "description": "Custom Metrics key/value pairs" + }, + "description": { + "type": "string", + "description": "Description of the recipe version" + }, + "gpuModel": { + "type": "string", + "description": "GPU model and memory" + }, + "memoryFootprint": { + "type": "string", + "description": "Recipe size/memory footprint for inference" + }, + "numberOfEpochs": { + "type": "integer", + "format": "int64", + "description": "Number of epochs this recipe trained" + }, + "otherContents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactAttribute" + }, + "description": "List of external contents" + }, + "performance": { + "type": "string", + "description": "Text describing performance of the recipe results" + }, + "quickStartGuide": { + "type": "string", + "description": "Text with a guide to getting started" + }, + "releaseNotes": { + "type": "string", + "description": "Text describing this release" + }, + "setup": { + "type": "string", + "description": "Text describing recipe setup" + }, + "status": { + "type": "string", + "description": "Version status" + } + } + }, + "RequestStatus": { + "type": "object", + "description": "Request status information", + "properties": { + "requestId": { + "type": "string", + "description": "Request ID" + }, + "serverId": { + "type": "string", + "description": "Server ID" + }, + "statusCode": { + "type": "string", + "description": "Describes response status reported by the server." + }, + "statusDescription": { + "type": "string", + "description": "Status description" + } + } + }, + "Response": { + "type": "object", + "properties": { + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + } + } + }, + "UpdateArtifactVersionConfigs": { + "type": "object", + "description": "Request to publish an artifact", + "properties": { + "policy": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Policy label to be added to a specific version" + } + } + }, + "UpdateReleaseTypeRequest": { + "type": "object", + "description": "Request to update release type of an artifact version", + "properties": { + "releaseType": { + "type": "string", + "description": "Release type enum for the artifact version in the \n product lifecycle." + }, + "version": { + "type": "string", + "description": "Artifact version" + } + } + }, + "VersionsOwnersListResponse": { + "type": "object", + "description": "Response to list versions owners", + "properties": { + "paginationInfo": { + "$ref": "#/components/schemas/PaginationInfo", + "x-description": "Pagination Information" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + }, + "versionsOwnersList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ArtifactOwnerDetails" + } + } + } + }, + "WorkflowStatusResponse": { + "type": "object", + "description": "Response containing workflow status information", + "properties": { + "cloneStatus": { + "$ref": "#/components/schemas/CloneStatus", + "x-description": "Progress of cloning artifact version files" + }, + "duration": { + "type": "string", + "description": "Wall-clock execution duration as an ISO-8601 duration (e.g. PT\n 1H30M5S, PT0.001S); Omitted while IN_PROGRESS." + }, + "endTime": { + "type": "string", + "description": "UTC instant when the workflow reached a closed state; omitted \n while IN_PROGRESS." + }, + "message": { + "type": "string", + "description": "Human-readable message about the workflow status" + }, + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + }, + "startTime": { + "type": "string", + "description": "UTC instant when the workflow execution started." + }, + "status": { + "type": "string", + "description": "Current status of the workflow" + }, + "workflowType": { + "type": "string", + "description": "Workflow type." + } + } + }, + "WorkflowStatusUrlResponse": { + "type": "object", + "description": "Response containing workflow status URL and ID", + "properties": { + "requestStatus": { + "$ref": "#/components/schemas/RequestStatus", + "x-description": "Request status information" + }, + "statusUrl": { + "type": "string", + "description": "URL to check the workflow status" + }, + "workflowId": { + "type": "string", + "description": "ID of the workflow" + } + } + } + } +} diff --git a/provider-dev/downloaded/nvcf_openapi.json b/provider-dev/downloaded/nvcf_openapi.json new file mode 100644 index 0000000..532491c --- /dev/null +++ b/provider-dev/downloaded/nvcf_openapi.json @@ -0,0 +1,6190 @@ +{ + "components": { + "schemas": { + "AddRegistryCredentialRequest": { + "description": "Request body to add a registry credential to an account", + "properties": { + "artifactTypes": { + "description": "Artifact types that can be retrieved using this credential", + "items": { + "enum": [ + "CONTAINER", + "HELM", + "MODEL", + "RESOURCE" + ], + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "description": { + "description": "Optional registry credential description", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "registryHostname": { + "description": "Registry hostname", + "format": "UTF-8", + "maxLength": 255, + "minLength": 1, + "pattern": "(?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{1,63}(?<!-)\\.)+[a-zA-Z0-9]{2,63}$)", + "type": "string" + }, + "secret": { + "$ref": "#/components/schemas/SecretDto", + "description": "Registry credential - secret value must be base64 encoded string in username:password format" + }, + "tags": { + "description": "Optional set of tags", + "items": { + "pattern": "[a-zA-Z0-9\\-_:=]+", + "type": "string" + }, + "maxItems": 64, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + } + }, + "required": [ + "artifactTypes", + "registryHostname", + "secret" + ], + "type": "object" + }, + "ArtifactDto": { + "description": "Data Transfer Object(DTO) representing an artifact", + "properties": { + "name": { + "description": "Artifact name", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "uri": { + "description": "Artifact URI", + "format": "uri", + "type": "string" + }, + "version": { + "description": "Artifact version", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "name", + "uri", + "version" + ], + "type": "object" + }, + "AssetDto": { + "description": "Data Transfer Object(DTO) representing an asset", + "properties": { + "assetId": { + "description": "Asset id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "contentType": { + "description": "Content-type specified when creating the asset", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "createdAt": { + "description": "Timestamp specified when creating the asset", + "format": "date-time", + "maxLength": 30, + "minLength": 8, + "type": [ + "string", + "null" + ] + }, + "description": { + "description": "Description specified when creating the asset", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "AssetResponse": { + "properties": { + "asset": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "required": [ + "asset" + ], + "type": "object" + }, + "AuthorizedPartiesByFunctionDto": { + "description": "Data Transfer Object(DTO) representing a function with authorized accounts", + "properties": { + "authorizedParties": { + "description": "Authorized parties allowed to invoke the function", + "items": { + "$ref": "#/components/schemas/AuthorizedPartyDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + }, + "id": { + "description": "Function id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "ncaId": { + "description": "NVIDIA Cloud Account Id", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "versionId": { + "description": "Function version id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "ncaId" + ], + "type": "object" + }, + "AuthorizedPartiesRequest": { + "description": "Request to associated authorized parties for a specific version or allversions of a function", + "properties": { + "authorizedParties": { + "description": "Parties authorized to invoke function", + "items": { + "$ref": "#/components/schemas/AuthorizedPartyDto" + }, + "maxItems": 2147483647, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "authorizedParties" + ], + "type": "object" + }, + "AuthorizedPartiesResponse": { + "description": "Parties authorized to invoke function", + "properties": { + "function": { + "$ref": "#/components/schemas/AuthorizedPartiesByFunctionDto", + "description": "Function with authorized parties and other details" + } + }, + "required": [ + "function" + ], + "type": "object" + }, + "AuthorizedPartyDto": { + "description": "Data Transfer Object(DTO) representing an authorized party.", + "properties": { + "clientId": { + "description": "Client Id -- 'sub' claim in the JWT. This field should not be\n specified anymore.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "ncaId": { + "description": "NVIDIA Cloud Account authorized to invoke the function", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ncaId" + ], + "type": "object" + }, + "AutoscalingConfigurationDto": { + "description": "Data Transfer Object(DTO) representing autoscaling configuration", + "properties": { + "scaleDownDetails": { + "$ref": "#/components/schemas/ScalingDetails", + "description": "Configuration for scaling down" + }, + "scaleUpDetails": { + "$ref": "#/components/schemas/ScalingDetails", + "description": "Configuration for scaling up" + } + }, + "type": "object" + }, + "BasicFunctionDto": { + "description": "Basic Data Transfer Object (DTO) representing a function", + "properties": { + "functionId": { + "description": "Unique function id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "functionVersionId": { + "description": "Unique function version id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "functionId" + ], + "type": "object" + }, + "Cluster": { + "properties": { + "id": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "k8sVersion": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "name": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "ClusterGroup": { + "properties": { + "authorizedNcaIds": { + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + }, + "clusters": { + "items": { + "$ref": "#/components/schemas/Cluster" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + }, + "gpus": { + "items": { + "$ref": "#/components/schemas/Gpu" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + }, + "id": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "name": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "ncaId": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "ClusterGroupsResponse": { + "properties": { + "clusterGroups": { + "items": { + "$ref": "#/components/schemas/ClusterGroup" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ContainerEnvironmentEntryDto": { + "description": "Data Transfer Object(DTO) representing a container environment entry", + "properties": { + "key": { + "description": "Container environment key", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "value": { + "description": "Container environment value", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "key", + "value" + ], + "type": "object" + }, + "CreateAssetRequest": { + "description": "Request payload to create an asset-id and the corresponding pre-signed URL to upload an asset of specified content-type to AWS S3 bucket.", + "properties": { + "contentType": { + "description": "Content type of the asset such image/png, image/jpeg, etc.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "description": { + "description": "Asset description", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "contentType", + "description" + ], + "type": "object" + }, + "CreateAssetResponse": { + "description": "Response body containing asset-id and the corresponding pre-signed URL to upload an asset of specified content-type to AWS S3 bucket.", + "properties": { + "assetId": { + "description": "Unique id of the asset to be uploaded to AWS S3 bucket", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "contentType": { + "description": "Content type of the asset such image/png, image/jpeg, etc.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "description": { + "description": "Asset description to be used when uploading the asset", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "uploadUrl": { + "description": "Pre-signed upload URL to upload asset", + "format": "url", + "type": "string" + } + }, + "required": [ + "assetId", + "contentType", + "description", + "uploadUrl" + ], + "type": "object" + }, + "CreateFunctionRequest": { + "description": "Request payload to create function.", + "properties": { + "apiBodyFormat": { + "description": "Invocation request body format", + "enum": [ + "PREDICT_V2", + "CUSTOM" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "containerArgs": { + "description": "Args to be passed when launching the container", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "containerEnvironment": { + "description": "Environment settings for launching the container", + "items": { + "$ref": "#/components/schemas/ContainerEnvironmentEntryDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + }, + "containerImage": { + "description": "Optional custom container image", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "description": { + "description": "Optional function/version description", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "functionType": { + "description": "Optional function type, used to indicate a STREAMING function. Defaults to DEFAULT.", + "enum": [ + "DEFAULT", + "STREAMING", + "LLM" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "health": { + "$ref": "#/components/schemas/HealthDto", + "description": "Function health" + }, + "healthUri": { + "deprecated": true, + "description": "Health endpoint for the container or the helmChart", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "helmChart": { + "description": "Optional Helm Chart", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "helmChartServiceName": { + "description": "Helm Chart Service Name is required when helmChart property is specified\n", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "inferencePort": { + "description": "Optional port number where the inference listener is running. Defaults to 8000\n for Triton.\n", + "format": "int32", + "maximum": 2147483647, + "minimum": -2147483648, + "type": [ + "integer", + "null" + ] + }, + "inferenceUrl": { + "description": "Entrypoint for invoking the container to process a request", + "format": "uri", + "type": "string" + }, + "llmInvocationConfig": { + "$ref": "#/components/schemas/LlmInvocationConfigDto", + "description": "Optional function-level LLM invocation configuration. Only valid for LLM-type functions." + }, + "models": { + "description": "Optional list of models", + "items": { + "$ref": "#/components/schemas/FunctionModelDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + }, + "name": { + "description": "Function name must start with lowercase/uppercase/digit and can only contain lowercase, uppercase, digit, hyphen, and underscore characters", + "format": "UTF-8", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-z0-9A-Z][a-z0-9A-Z\\-_]*$", + "type": "string" + }, + "rateLimit": { + "$ref": "#/components/schemas/RateLimitDto", + "description": "Optional rate limit config" + }, + "resources": { + "description": "Optional set of resources", + "items": { + "$ref": "#/components/schemas/ArtifactDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "secrets": { + "description": "Optional secrets", + "items": { + "$ref": "#/components/schemas/SecretDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "tags": { + "description": "Optional set of tags - could be empty. Provided by user", + "items": { + "pattern": "[a-zA-Z0-9\\-_:=]+", + "type": "string" + }, + "maxItems": 64, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "telemetries": { + "$ref": "#/components/schemas/TelemetriesDto", + "description": "Optional telemetry configuration for logs, metrics, and traces." + } + }, + "required": [ + "inferenceUrl", + "name" + ], + "type": "object" + }, + "CreateFunctionResponse": { + "description": "Response body for create function request.", + "properties": { + "function": { + "$ref": "#/components/schemas/FunctionDto", + "description": "Details of the newly created function" + } + }, + "required": [ + "function" + ], + "type": "object" + }, + "DeploymentHealthDto": { + "description": "Data Transfer Object(DTO) representing deployment error", + "properties": { + "backend": { + "description": "Backend/CSP where the GPU powered instance will be launched", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "error": { + "description": "Deployment error", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "gpu": { + "description": "GPU Type as per SDD", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "icmsRequestId": { + "description": "ICMS Request ID", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "instanceType": { + "description": "Instance type", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "backend", + "error", + "gpu", + "icmsRequestId" + ], + "type": "object" + }, + "DeploymentResponse": { + "description": "Function Deployment Response", + "properties": { + "deployment": { + "$ref": "#/components/schemas/FunctionDeploymentDto", + "description": "Deployment details" + } + }, + "required": [ + "deployment" + ], + "type": "object" + }, + "FunctionDeploymentDto": { + "description": "Function deployment response", + "properties": { + "createdAt": { + "description": "Function deployment creation timestamp", + "format": "date-time", + "maxLength": 30, + "minLength": 8, + "type": "string" + }, + "deploymentId": { + "description": "Last deployment id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "deploymentSpecifications": { + "description": "Function deployment details", + "items": { + "$ref": "#/components/schemas/GpuSpecificationDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + }, + "functionId": { + "description": "Function id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "functionName": { + "description": "Function name", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "functionStatus": { + "description": "Function status", + "enum": [ + "ACTIVE", + "DEPLOYING", + "ERROR", + "INACTIVE", + "DELETED", + "DEGRADED", + "DEGRADING" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "functionVersionId": { + "description": "Function version id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "healthInfo": { + "description": "Health info for a deployment specification is included only if there are any\n issues/errors.\n", + "items": { + "$ref": "#/components/schemas/DeploymentHealthDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + }, + "lastUpdatedAt": { + "description": "Function deployment modification timestamp", + "format": "date-time", + "maxLength": 30, + "minLength": 8, + "type": "string" + }, + "ncaId": { + "description": "NVIDIA Cloud Account Id", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "createdAt", + "deploymentId", + "deploymentSpecifications", + "functionId", + "functionName", + "functionStatus", + "functionVersionId", + "lastUpdatedAt", + "ncaId" + ], + "type": "object" + }, + "FunctionDeploymentRequest": { + "description": "Request to deploy a function", + "properties": { + "deploymentSpecifications": { + "description": "GPU specs with GPU, instance-type, clusters etc. details", + "items": { + "$ref": "#/components/schemas/GpuSpecificationDto" + }, + "maxItems": 2147483647, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "deploymentSpecifications" + ], + "type": "object" + }, + "FunctionDto": { + "description": "Data Transfer Object (DTO) representing a function", + "properties": { + "activeInstances": { + "description": "List of active instances for this function.", + "items": { + "$ref": "#/components/schemas/InstanceDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + }, + "apiBodyFormat": { + "description": "Invocation request body format", + "enum": [ + "PREDICT_V2", + "CUSTOM" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "containerArgs": { + "description": "Args used to launch the container", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "containerEnvironment": { + "description": "Environment settings used to launch the container", + "items": { + "$ref": "#/components/schemas/ContainerEnvironmentEntryDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + }, + "containerImage": { + "description": "Optional custom container", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "createdAt": { + "description": "Function creation timestamp", + "format": "date-time", + "maxLength": 30, + "minLength": 8, + "type": "string" + }, + "description": { + "description": "Function/version description", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "functionType": { + "description": "Used to indicate a STREAMING function. Defaults to DEFAULT.", + "enum": [ + "DEFAULT", + "STREAMING", + "LLM" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "health": { + "$ref": "#/components/schemas/HealthDto", + "description": "Function health configuration" + }, + "healthUri": { + "deprecated": true, + "description": "Health endpoint for the container or helmChart. Deprecated, use health.uri instead.", + "format": "uri", + "type": "string" + }, + "helmChart": { + "description": "Optional Helm Chart", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "helmChartServiceName": { + "description": "Helm Chart Service Name specified only when helmChart property is specified\n", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "id": { + "description": "Unique function id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "inferencePort": { + "description": "Optional port number where the inference listener is running - defaults to 8000 for Triton", + "format": "int32", + "maximum": 2147483647, + "minimum": -2147483648, + "type": [ + "integer", + "null" + ] + }, + "inferenceUrl": { + "description": "Entrypoint for invoking the container to process requests", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "llmInvocationConfig": { + "$ref": "#/components/schemas/LlmInvocationConfigDto", + "description": "Optional function-level LLM invocation configuration." + }, + "models": { + "description": "Optional list of models", + "items": { + "$ref": "#/components/schemas/FunctionModelDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + }, + "name": { + "description": "Function name", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "ncaId": { + "description": "NVIDIA Cloud Account Id", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "ownedByDifferentAccount": { + "description": "Indicates whether the function is owned by another account. If the account\n that is being used to lookup functions happens to be authorized to invoke/list\n this function which is owned by a different account, then this field is set\n to true and ncaId will contain the id of the account that owns the function.\n Otherwise, this field is not set as it defaults to false.\n", + "type": [ + "boolean", + "null" + ] + }, + "rateLimit": { + "$ref": "#/components/schemas/RateLimitDto", + "description": "Optional rate limit policy" + }, + "resources": { + "description": "Optional set of resources.", + "items": { + "$ref": "#/components/schemas/ArtifactDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "secrets": { + "description": "Optional secret names", + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "status": { + "description": "Function status", + "enum": [ + "ACTIVE", + "DEPLOYING", + "ERROR", + "INACTIVE", + "DELETED", + "DEGRADED", + "DEGRADING" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "tags": { + "description": "Optional set of tags. Maximum allowed number of tags per function is 64. Maximum length of each tag is 128 chars.", + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "telemetries": { + "$ref": "#/components/schemas/TelemetriesDto", + "description": "Optional telemetry configuration for the function" + }, + "versionId": { + "description": "Unique function version id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + "required": [ + "createdAt", + "functionType", + "healthUri", + "id", + "name", + "ncaId", + "status", + "versionId" + ], + "type": "object" + }, + "FunctionModelDto": { + "description": "Model associated with a function, including optional LLM routing metadata", + "properties": { + "llmConfig": { + "$ref": "#/components/schemas/LlmConfigDto", + "description": "LLM-specific configuration for this model. Only relevant for LLM-type functions." + }, + "name": { + "description": "Model name", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "uri": { + "description": "Model URI. Optional for LLM-type functions.", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "version": { + "description": "Model version. Optional for LLM-type functions.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "FunctionResponse": { + "description": "Response body with function details", + "properties": { + "function": { + "$ref": "#/components/schemas/FunctionDto", + "description": "Function details" + } + }, + "required": [ + "function" + ], + "type": "object" + }, + "GetPositionInQueueResponse": { + "description": "Request position in queue for invocation request", + "properties": { + "functionId": { + "description": "Function id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "functionVersionId": { + "description": "Function version id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "positionInQueue": { + "description": "Position of request in queue", + "format": "int32", + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + }, + "required": [ + "functionId", + "functionVersionId" + ], + "type": "object" + }, + "GetQueuesResponse": { + "description": "Request queue details of all the functions with same id in an account", + "properties": { + "functionId": { + "description": "Function id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "queues": { + "description": "Details of all the queues associated with same named functions", + "items": { + "$ref": "#/components/schemas/QueueDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "functionId", + "queues" + ], + "type": "object" + }, + "Gpu": { + "properties": { + "instanceTypes": { + "items": { + "$ref": "#/components/schemas/InstanceType" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + }, + "name": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "GpuSpecificationDto": { + "description": "Data Transfer Object(DTO) representing GPU specification.", + "properties": { + "attributes": { + "description": "Specific cluster attributes/capabilities to deploy functions. For example,\nHIPPA Compliant, Confidential Compute Compliant, etc.\n", + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "autoscalingConfiguration": { + "$ref": "#/components/schemas/AutoscalingConfigurationDto", + "description": "Customizable autoscaling configuration" + }, + "availabilityZones": { + "description": "List of availability-zones(or clusters) in the cluster group", + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + }, + "backend": { + "description": "Use clusters instead of this property. Legacy property typically used when deploying a function to GFN.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "clusters": { + "description": "Specific clusters powered by the selected instance-type to deploy function.\n", + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "configuration": { + "additionalProperties": true, + "description": "Typically used when the function is based on Helm Charts to substitute\n placeholders in values yaml.\n", + "type": "object" + }, + "cpuArch": { + "description": "CPU Architecture details", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "driverVersion": { + "description": "GPU driver version", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "gpu": { + "description": "GPU name from the cluster", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "gpuMemory": { + "description": "Amount of GPU memory", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "gpuSpecificationId": { + "description": "GPU specification id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": [ + "string", + "null" + ] + }, + "helmValidationPolicy": { + "$ref": "#/components/schemas/HelmValidationPolicyDto", + "description": "Helm validation policy" + }, + "instanceType": { + "description": "Instance type, based on GPU, assigned to a Worker", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "maxInstances": { + "description": "Maximum number of instances for the deployment", + "format": "int32", + "maximum": 2147483647, + "minimum": 0, + "type": "integer" + }, + "maxRequestConcurrency": { + "description": "Max request concurrency between 1 (default) and 16384.", + "format": "int32", + "maximum": 16384, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "minInstances": { + "description": "Minimum number of instances for the deployment", + "format": "int32", + "maximum": 2147483647, + "minimum": 0, + "type": "integer" + }, + "os": { + "description": "Operating System details", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "regions": { + "description": "List of regions allowed to deploy. The instance or worker node will be in one of\nthe specified geographical regions.\n", + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "storage": { + "description": "Amount of available storage, e.g. 80G", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "systemMemory": { + "description": "Amount of RAM", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "gpu", + "instanceType", + "maxInstances", + "minInstances" + ], + "type": "object" + }, + "Health": { + "properties": { + "description": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "details": { + "additionalProperties": {}, + "type": "object" + }, + "status": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "HealthDto": { + "description": "Data Transfer Object(DTO) representing a function's health configuration", + "properties": { + "expectedStatusCode": { + "description": "Expected return status code considered as successful.", + "format": "int32", + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + }, + "port": { + "description": "Port number where the health listener is running", + "format": "int32", + "maximum": 2147483647, + "minimum": 0, + "type": "integer" + }, + "protocol": { + "description": "HTTP/gPRC protocol type for health endpoint", + "enum": [ + "HTTP", + "gRPC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "timeout": { + "description": "ISO 8601 duration string in PnDTnHnMn.nS format", + "example": "PT10S", + "format": "duration", + "type": "string" + }, + "uri": { + "description": "Health endpoint for the container or the helmChart", + "format": "uri", + "type": "string" + } + }, + "required": [ + "expectedStatusCode", + "port", + "protocol", + "timeout", + "uri" + ], + "type": "object" + }, + "HelmValidationPolicyDto": { + "description": "Data Transfer Object(DTO) representing Helm validation policy", + "properties": { + "extraKubernetesTypes": { + "description": "An API Group in Kubernetes is a collection of related functionality.\nWhen present, must contain at least one entry; each entry must be a valid\nKubernetesType (group, version, kind).\n", + "items": { + "$ref": "#/components/schemas/KubernetesType" + }, + "maxItems": 2147483647, + "minItems": 1, + "type": [ + "array", + "null" + ] + }, + "name": { + "description": "Helm validation policy name.", + "enum": [ + "Default", + "Unrestricted" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "InfoResponse": { + "properties": { + "commit": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "service": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "version": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "InstanceDto": { + "description": "Data Transfer Object(DTO) representing an instance", + "properties": { + "backend": { + "description": "Backend where the instance is running", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "functionId": { + "description": "Function executing on the instance", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "functionVersionId": { + "description": "Function version executing on the instance", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "gpu": { + "description": "GPU name powering the instance", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "icmsRequestId": { + "description": "ICMS request-id used to launch this instance", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "instanceCreatedAt": { + "description": "Instance creation timestamp", + "format": "date-time", + "maxLength": 30, + "minLength": 8, + "type": "string" + }, + "instanceId": { + "description": "Unique id of the instance", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "instanceStatus": { + "description": "Instance status", + "enum": [ + "ACTIVE", + "STARTING", + "RUNNING", + "ERRORED", + "PREEMPTED", + "DELETED", + "TERMINATED" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "instanceType": { + "description": "GPU instance-type powering the instance", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "instanceUpdatedAt": { + "description": "Instance's last updated timestamp", + "format": "date-time", + "maxLength": 30, + "minLength": 8, + "type": "string" + }, + "location": { + "description": "Location such as zone name or region where the instance is running", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "ncaId": { + "description": "NVIDIA Cloud Account Id that owns the function running on the instance", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "InstanceType": { + "properties": { + "default": { + "type": "boolean" + }, + "description": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "name": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "InvocationTokenRequest": { + "description": "Request body for issuing a function invocation token", + "properties": { + "clientId": { + "description": "ClientId for client to pass in to track who will eventually use the token", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "clientId" + ], + "type": "object" + }, + "InvocationTokenResponse": { + "description": "Function invocation token response", + "properties": { + "access_token": { + "description": "Token issued by Notary Service", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "expires_in": { + "description": "Token expiration time in seconds", + "format": "int32", + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + }, + "type": "object" + }, + "KubernetesType": { + "properties": { + "group": { + "description": "Name of API Group", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "kind": { + "description": "API Group resource or Kind", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "version": { + "description": "Version of API Group", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "group", + "kind", + "version" + ], + "type": "object" + }, + "ListAssetsResponse": { + "description": "Response body containing list of assets of the current nca id", + "properties": { + "assets": { + "description": "List of assets uploaded for the nca id", + "items": { + "$ref": "#/components/schemas/AssetDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "assets" + ], + "type": "object" + }, + "ListAuthorizedPartiesResponse": { + "description": "Parties authorized to invoke function", + "properties": { + "functions": { + "description": "Functions with authorized parties and other details", + "items": { + "$ref": "#/components/schemas/AuthorizedPartiesByFunctionDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "functions" + ], + "type": "object" + }, + "ListFunctionIdsResponse": { + "description": "Response body containing list of function ids in an account", + "properties": { + "functionIds": { + "description": "List of function ids", + "items": { + "format": "uuid", + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "functionIds" + ], + "type": "object" + }, + "ListFunctionsResponse": { + "description": "Response body containing list of functions", + "properties": { + "functions": { + "description": "List of functions", + "items": { + "$ref": "#/components/schemas/FunctionDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "functions" + ], + "type": "object" + }, + "ListRegistryCredentialDetailsResponse": { + "description": "Response body containing list of registry credentials", + "properties": { + "registryCredentials": { + "description": "List of registry credentials", + "items": { + "$ref": "#/components/schemas/RegistryCredentialDetailsDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "registryCredentials" + ], + "type": "object" + }, + "ListTelemetryResponse": { + "description": "Response containing a list of telemetry configurations.", + "properties": { + "telemetries": { + "description": "List of telemetry configurations.", + "items": { + "$ref": "#/components/schemas/TelemetryDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "LlmConfigDto": { + "description": "LLM-specific configuration for a model", + "properties": { + "routingMethod": { + "description": "Routing method for this model: a request router algorithm name, optionally followed by ';name=value' tuning parameters, for example pulsar;seed=stable-a. The API checks only the format. The request router checks the algorithm and parameters on each request.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "tokenRateLimit": { + "description": "Token-level rate limit for this model.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "tokenizer": { + "description": "Tokenizer identifier for this model.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "uris": { + "description": "OpenAI-compatible URIs supported by this model (e.g. /v1/chat/completions). Required for LLM models.", + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "uris" + ], + "type": "object" + }, + "LlmConfigUpdateDto": { + "description": "Partial update payload for LLM-specific model configuration fields.", + "properties": { + "routingMethod": { + "description": "Updated routing method for the model, in the same format as llmConfig.routingMethod on create. When omitted, the existing value is preserved.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "tokenRateLimit": { + "description": "Updated token-level rate limit for the model. When omitted, the existing value is preserved.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "tokenizer": { + "description": "Cannot be changed after creation. A request that sets it is rejected with 400.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "uris": { + "description": "Cannot be changed after creation. A request that sets it is rejected with 400.", + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + } + }, + "type": "object" + }, + "LlmInvocationConfigDto": { + "description": "Function-level LLM invocation configuration.", + "properties": { + "priority": { + "$ref": "#/components/schemas/PriorityDto", + "description": "Function-level request priority configuration." + } + }, + "type": "object" + }, + "ModelUpdateDto": { + "description": "Model-specific update request.", + "properties": { + "llmConfig": { + "$ref": "#/components/schemas/LlmConfigUpdateDto", + "description": "Optional updates to this model's LLM config fields." + }, + "modelName": { + "description": "Name of the model to update.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "modelName" + ], + "type": "object" + }, + "MultiFunctionsInvocationTokenRequest": { + "description": "Request body for issuing a function invocation token", + "properties": { + "clientId": { + "description": "ClientId for client to pass in to track who will eventually use the token", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "functions": { + "description": "Functions to invoke", + "items": { + "$ref": "#/components/schemas/BasicFunctionDto" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "clientId", + "functions" + ], + "type": "object" + }, + "PatchAuthorizedPartyRequest": { + "description": "Request payload to associate/disassociate authorized party with function\n", + "properties": { + "authorizedParty": { + "$ref": "#/components/schemas/AuthorizedPartyDto", + "description": "Authorized party" + } + }, + "required": [ + "authorizedParty" + ], + "type": "object" + }, + "PriorityDto": { + "description": "Function-level request priority. Lower value is higher priority, 0 is highest.", + "properties": { + "defaultPriority": { + "description": "Default priority.", + "format": "int64", + "maximum": 4294967295, + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "perAccountPriority": { + "additionalProperties": { + "format": "int64", + "type": "integer" + }, + "description": "Per-account priority overrides, keyed by account ID.", + "type": [ + "object", + "null" + ] + } + }, + "type": "object" + }, + "QueueDto": { + "description": "Data Transfer Object(DTO) representing a request queue for function version", + "properties": { + "functionName": { + "description": "Function name", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "functionStatus": { + "description": "Function status", + "enum": [ + "ACTIVE", + "DEPLOYING", + "ERROR", + "INACTIVE", + "DELETED", + "DEGRADED", + "DEGRADING" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "functionVersionId": { + "description": "Function version id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "queueDepth": { + "description": "Approximate number of messages in the request queue", + "format": "int32", + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + }, + "required": [ + "functionName", + "functionStatus", + "functionVersionId" + ], + "type": "object" + }, + "RateLimitDto": { + "description": "Data Transfer Object(DTO) representing Rate limit config", + "properties": { + "exemptedNcaIds": { + "description": "NCA ID Exemptions", + "items": { + "type": "string" + }, + "maxItems": 32, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "perNcaIdRate": { + "additionalProperties": { + "type": "string" + }, + "description": "Per NCA ID Rate", + "type": [ + "object", + "null" + ] + }, + "perUserRate": { + "description": "Per-user rate, intended for traffic authenticated with an invocation delegation token (InvocationToken). When set, this single rate is enforced individually against every unique caller identity, in addition to the NCA-tier limit.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "pattern": "^(?!.*-([SMHD]).*-\\1)[1-9]\\d*-[SMHD](,\\s*[1-9]\\d*-[SMHD])*$", + "type": [ + "string", + "null" + ] + }, + "rateLimit": { + "description": "Rate", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "pattern": "^(?!.*-([SMHD]).*-\\1)[1-9]\\d*-[SMHD](,\\s*[1-9]\\d*-[SMHD])*$", + "type": [ + "string", + "null" + ] + }, + "syncCheck": { + "description": "Sync check. Defaults to false", + "type": [ + "boolean", + "null" + ] + } + }, + "type": "object" + }, + "RecognizedRegistriesResponse": { + "description": "Response body for recognized registries endpoint", + "properties": { + "recognizedRegistries": { + "additionalProperties": { + "items": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "description": "Recognized registries", + "type": "object" + } + }, + "type": "object" + }, + "RegistryCredentialDetailsDto": { + "description": "DTO representing a registry credential", + "properties": { + "artifactTypes": { + "description": "Registry type", + "items": { + "enum": [ + "CONTAINER", + "HELM", + "MODEL", + "RESOURCE" + ], + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "createdAt": { + "description": "Timestamp for registry credential creation", + "format": "date-time", + "maxLength": 30, + "minLength": 8, + "type": "string" + }, + "description": { + "description": "Registry credential description", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "keyType": { + "description": "Optional registry credential key type", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "lastUpdatedAt": { + "description": "Timestamp for last registry credential update", + "format": "date-time", + "maxLength": 30, + "minLength": 8, + "type": "string" + }, + "ncaId": { + "description": "NVIDIA Cloud Account Id owning the Registry Credential", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "provisionedBy": { + "description": "Registry credential provisioned by system or user", + "enum": [ + "SYSTEM", + "USER" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "registryCredentialId": { + "description": "Registry Credential Id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "registryCredentialName": { + "description": "Registry Credential name", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "registryHostname": { + "description": "Registry hostname", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "registryName": { + "description": "Recognized registry name", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "tags": { + "description": "Optional set of tags", + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + } + }, + "required": [ + "artifactTypes", + "createdAt", + "lastUpdatedAt", + "ncaId", + "provisionedBy", + "registryCredentialId", + "registryCredentialName", + "registryHostname", + "registryName" + ], + "type": "object" + }, + "RegistryCredentialDetailsResponse": { + "description": "Response body for Registry Credential operations", + "properties": { + "registryCredential": { + "$ref": "#/components/schemas/RegistryCredentialDetailsDto", + "description": "Registry credential details" + } + }, + "required": [ + "registryCredential" + ], + "type": "object" + }, + "ScalingDetails": { + "properties": { + "factor": { + "description": "Scaling factor must be greater-than 1.0 for scale up and less-than 1.0 for scale down. This factor is used to multiply the currentinstance count when specified threshold is met.", + "format": "float", + "minimum": 0, + "type": "number" + }, + "metric": { + "description": "Scaling metric", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "stickiness": { + "$ref": "#/components/schemas/StickinessWindow", + "description": "Stickiness window configuration" + }, + "threshold": { + "description": "Scaling threshold (0-100) as a percentage of utilizationupon which the number of current instances are multiplied with thespecified factor.", + "format": "int32", + "maximum": 100, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "factor", + "threshold" + ], + "type": "object" + }, + "SecretDto": { + "description": "Data Transfer Object(DTO) representing secret name/value pair", + "properties": { + "name": { + "description": "Secret name", + "format": "UTF-8", + "maxLength": 48, + "minLength": 1, + "pattern": "^[a-z0-9A-Z][a-z0-9A-Z\\_\\.\\-]*$", + "type": "string" + }, + "value": { + "description": "Secret value must be a string or JSON object and 1 - 32768 chars long", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "object" + ] + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "StickinessWindow": { + "properties": { + "size": { + "description": "Window size must be less than or equal to PT1H and will berounded to the nearest minute", + "example": "PT30M", + "format": "duration", + "type": "string" + }, + "threshold": { + "description": "Window threshold must be less than size", + "example": "PT5M", + "format": "duration", + "type": "string" + } + }, + "required": [ + "size", + "threshold" + ], + "type": "object" + }, + "TelemetriesDto": { + "description": "Telemetry configuration for logs, metrics, and traces.", + "properties": { + "logsTelemetryId": { + "description": "UUID representing the logs telemetry.", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": [ + "string", + "null" + ] + }, + "metricsTelemetryId": { + "description": "UUID representing the metrics telemetry.", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": [ + "string", + "null" + ] + }, + "tracesTelemetryId": { + "description": "UUID representing the traces telemetry.", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + }, + "TelemetryDto": { + "description": "Data Transfer Object (DTO) for Telemetry configurations", + "properties": { + "createdAt": { + "description": "Telemetry creation timestamp", + "format": "date-time", + "maxLength": 30, + "minLength": 8, + "type": "string" + }, + "endpoint": { + "description": "URL for the telemetry endpoint", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "name": { + "description": "Telemetry name", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "protocol": { + "description": "Protocol used for communication", + "enum": [ + "HTTP", + "GRPC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "provider": { + "description": "Telemetry provider", + "enum": [ + "PROMETHEUS", + "GRAFANA_CLOUD", + "SPLUNK", + "DATADOG", + "SERVICENOW", + "KRATOS", + "KRATOS_THANOS", + "TIMESTREAM", + "VICTORIAMETRICS", + "AZURE_MONITOR", + "OTEL_COLLECTOR" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "telemetryId": { + "description": "Unique telemetry ID", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + }, + "types": { + "description": "Set of telemetry data types", + "items": { + "enum": [ + "LOGS", + "METRICS", + "TRACES" + ], + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "createdAt", + "endpoint", + "name", + "protocol", + "provider", + "telemetryId", + "types" + ], + "type": "object" + }, + "TelemetryRequest": { + "description": "Data Transfer Object (DTO) representing a telemetry request", + "properties": { + "endpoint": { + "description": "Telemetry endpoint URL", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 1, + "type": "string" + }, + "protocol": { + "description": "Protocol used for communication", + "enum": [ + "HTTP", + "GRPC" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "provider": { + "description": "Telemetry provider", + "enum": [ + "PROMETHEUS", + "GRAFANA_CLOUD", + "SPLUNK", + "DATADOG", + "SERVICENOW", + "KRATOS", + "KRATOS_THANOS", + "TIMESTREAM", + "VICTORIAMETRICS", + "AZURE_MONITOR", + "OTEL_COLLECTOR" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "secret": { + "$ref": "#/components/schemas/SecretDto", + "description": "Single secret associated with the telemetry configuration" + }, + "types": { + "description": "Set of telemetry data types", + "items": { + "enum": [ + "LOGS", + "METRICS", + "TRACES" + ], + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "endpoint", + "protocol", + "provider", + "secret", + "types" + ], + "type": "object" + }, + "TelemetryResponse": { + "description": "Data Transfer Object (DTO) representing a telemetry response", + "properties": { + "telemetry": { + "$ref": "#/components/schemas/TelemetryDto", + "description": "Telemetry details" + } + }, + "type": "object" + }, + "UpdateFunctionDeploymentRequest": { + "description": "Request to update function deployment spec", + "properties": { + "deploymentSpecifications": { + "description": "Deployment specs with GPU, instance-type, etc. details for update request", + "items": { + "$ref": "#/components/schemas/UpdateGpuSpecificationDto" + }, + "maxItems": 2147483647, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "deploymentSpecifications" + ], + "type": "object" + }, + "UpdateFunctionRequest": { + "description": "Request payload to update mutable function configuration fields.", + "properties": { + "llmInvocationConfig": { + "$ref": "#/components/schemas/LlmInvocationConfigDto", + "description": "Optional function-level LLM invocation configuration. When omitted, the existing value is preserved." + }, + "modelUpdates": { + "description": "Optional list of model-specific updates.", + "items": { + "$ref": "#/components/schemas/ModelUpdateDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + }, + "rateLimit": { + "$ref": "#/components/schemas/RateLimitDto", + "description": "Optional full replacement for the function rate limit configuration. When omitted, the existing value is preserved. Use the delete rate-limit endpoint to clear it." + }, + "tags": { + "description": "Optional set of function tags. When omitted, the existing value is preserved.", + "items": { + "pattern": "[a-zA-Z0-9\\-_:=]+", + "type": "string" + }, + "maxItems": 64, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + } + }, + "type": "object" + }, + "UpdateFunctionSecretsRequest": { + "description": "Request payload to update secrets", + "properties": { + "secrets": { + "description": "Secrets", + "items": { + "$ref": "#/components/schemas/SecretDto" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "secrets" + ], + "type": "object" + }, + "UpdateGpuSpecificationDto": { + "description": "Data Transfer Object (DTO) representing GPU specification for Deployment Update case.", + "properties": { + "backend": { + "description": "Backend/CSP where the GPU powered instance has been launched. The original value\nwould not be updated and it should be the same as original. The field is required\nonly for validation.\n", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "clusters": { + "description": "Specific clusters within instance or worker node powered by the selected\ninstance-type to deploy function. The original value would not be updated and it\nshould be the same as original. The field is required only for validation.\n", + "items": { + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "gpu": { + "description": "GPU name from the cluster. Deprecated: this is read-only field, should not be specified in update request.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "gpuSpecificationId": { + "description": "GPU specification id", + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": [ + "string", + "null" + ] + }, + "instanceType": { + "description": "Instance type, based on GPU, assigned to a Worker. Deprecated: this is read-only field, should not be specified in update request.", + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "maxInstances": { + "description": "Maximum number of instances for the deployment", + "format": "int32", + "maximum": 2147483647, + "minimum": 0, + "type": "integer" + }, + "maxRequestConcurrency": { + "description": "Max request concurrency between 1 (default) and 16384.", + "format": "int32", + "maximum": 16384, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "minInstances": { + "description": "Minimum number of instances for the deployment", + "format": "int32", + "maximum": 2147483647, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "maxInstances", + "minInstances" + ], + "type": "object" + }, + "UpdateGpuSpecificationRequest": { + "description": "Request to update single function deployment GPU Specification", + "properties": { + "autoscalingConfiguration": { + "$ref": "#/components/schemas/AutoscalingConfigurationDto", + "description": "Customizable Autoscaling configuration" + }, + "autoscalingConfigurationPolicy": { + "description": "Autoscaling configuration policy. CUSTOM_CONFIGURATION (default): use the provided autoscalingConfig. PLATFORM_CONFIGURATION: remove custom config and use platform defaults.", + "enum": [ + "CUSTOM_CONFIGURATION", + "PLATFORM_CONFIGURATION" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": [ + "string", + "null" + ] + }, + "maxInstances": { + "description": "Maximum number of instances for the deployment", + "format": "int32", + "maximum": 2147483647, + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "minInstances": { + "description": "Minimum number of instances for the deployment", + "format": "int32", + "maximum": 2147483647, + "minimum": 0, + "type": [ + "integer", + "null" + ] + } + }, + "type": "object" + }, + "UpdateGpuSpecificationResponse": { + "description": "Update GPU Specification Response", + "properties": { + "gpuSpecification": { + "$ref": "#/components/schemas/GpuSpecificationDto", + "description": "GPU Specification details" + } + }, + "required": [ + "gpuSpecification" + ], + "type": "object" + }, + "UpdateRegistryCredentialRequest": { + "description": "Request body to update registry credential", + "properties": { + "artifactTypeEnums": { + "description": "Optional artifact types to be added to the existing ones", + "items": { + "enum": [ + "CONTAINER", + "HELM", + "MODEL", + "RESOURCE" + ], + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ], + "uniqueItems": true + }, + "secret": { + "$ref": "#/components/schemas/SecretDto", + "description": "Registry credential - secret value must be base64 encoded string in username:password format" + } + }, + "type": "object" + }, + "UpdateTelemetrySecretRequest": { + "description": "Request payload to update secret", + "properties": { + "secret": { + "$ref": "#/components/schemas/SecretDto", + "description": "Telemetry secret" + } + }, + "required": [ + "secret" + ], + "type": "object" + } + } + }, + "info": { + "contact": { + "name": "NVIDIA", + "url": "https://www.nvidia.com/" + }, + "termsOfService": "https://www.nvidia.com/en-us/legal_info", + "title": "Cloud Functions", + "version": "2.261.2" + }, + "openapi": "3.1.0", + "paths": { + "/health": { + "get": { + "operationId": "getHealth", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/Health" + } + } + }, + "description": "OK" + } + }, + "tags": [ + "health-controller" + ] + } + }, + "/info": { + "get": { + "operationId": "getInfo", + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/InfoResponse" + } + } + }, + "description": "OK" + } + }, + "tags": [ + "info-controller" + ] + } + }, + "/v2/nvcf/assets": { + "get": { + "deprecated": true, + "description": "List assets owned by the current NVIDIA Cloud Account. Requires a bearer token with 'invoke_function' scope in the HTTP Authorization header. ", + "operationId": "getAssets", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListAssetsResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "List Assets", + "tags": [ + "Asset Management" + ] + }, + "post": { + "deprecated": true, + "description": "Creates a unique id representing an asset and a pre-signed URL to upload the asset artifact to AWS S3 bucket for the NVIDIA Cloud Account. Requires a bearer token with 'invoke_function' scope in the HTTP Authorization header. ", + "operationId": "createAsset", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateAssetRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateAssetResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Create Asset", + "tags": [ + "Asset Management" + ] + } + }, + "/v2/nvcf/assets/{assetId}": { + "delete": { + "deprecated": true, + "description": "Deletes asset belonging to the current NVIDIA Cloud Account. Requires a bearer token with 'invoke_function' scope in the HTTP Authorization header. ", + "operationId": "deleteAsset", + "parameters": [ + { + "description": "Id of the asset to be deleted", + "in": "path", + "name": "assetId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "summary": "Delete Asset", + "tags": [ + "Asset Management" + ] + }, + "get": { + "deprecated": true, + "description": "Returns details for the specified asset-id belonging to the current NVIDIA Cloud Account. Requires a bearer token with 'invoke_function' scope in the HTTP Authorization header. ", + "operationId": "getAsset", + "parameters": [ + { + "description": "Asset id", + "in": "path", + "name": "assetId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssetResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Show Asset Details", + "tags": [ + "Asset Management" + ] + } + }, + "/v2/nvcf/authorizations/functions": { + "get": { + "description": "Lists all the function versions in an account that have been shared/authorized with/to other accounts. Response includes the nca-ids of the authorized accounts. If a function version is not shared/authorized, then it is not included in the response. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "getAuthorizedPartiesForAllFunctions", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListAuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "List Functions Authorized/Shared With Other Accounts", + "tags": [ + "Function Sharing" + ] + } + }, + "/v2/nvcf/authorizations/functions/{functionId}": { + "delete": { + "description": "Deletes authorizations at the function level. This impacts all versions of the function. If a function versions has its own set of authorizations, those are not deleted. If the specified function is public, then Account Admin cannot perform this operation. Note that the response does not include any authz accounts at version level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "deleteAuthorizedPartiesForAllVersions", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Delete All Authorizations At Function Level", + "tags": [ + "Function Sharing" + ] + }, + "get": { + "description": "Lists function versions of the specified function and their corresponding authorized accounts allowed to invoke the function version. Individual versions of a function can have their own authorized accounts. So, each object in the array can have different authorized accounts listed. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "getAuthorizedPartiesForAllVersions", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListAuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "List Function Versions with Authorized Accounts For Specified Function", + "tags": [ + "Function Sharing" + ] + }, + "post": { + "description": "Authorizes additional NVIDIA Cloud Accounts to invoke any version of the specified function. By default, a function belongs to the NVIDIA Cloud Account that created it, and the credentials used for function invocation must reference the same NVIDIA Cloud Account. Upon invocation of this endpoint, any existing authorized accounts will be overwritten by the newly specified authorized accounts. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "createAuthorizedPartiesForAllVersions", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Authorize Accounts To Invoke Function", + "tags": [ + "Function Sharing" + ] + } + }, + "/v2/nvcf/authorizations/functions/{functionId}/add": { + "patch": { + "description": "Adds the specified NVIDIA Cloud Account to the set of authorized accounts that are can invoke all the versions of the specified function. If the specified function does not have any existing inheritable authorized accounts, it results in a response with status 404. If the specified account is already in the set of existing inheritable authorized accounts, it results in a response with status code 409. If a function is public, then Account Admin cannot perform this operation. Note that response only includes authz accounts at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "addAuthorizedPartyForAllVersions", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PatchAuthorizedPartyRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Authorize Another Account To Invoke, List, and Check Queue Details of Function", + "tags": [ + "Function Sharing" + ] + } + }, + "/v2/nvcf/authorizations/functions/{functionId}/remove": { + "patch": { + "description": "Removes the specified NVIDIA Cloud Account from the set of authorized accounts that can invoke all the versions of the specified function. If the specified function does not have any existing inheritable authorized parties, it results in a response with status 404. Also, if the specified account is not in the existing set of inheritable authorized accounts, it results in a response with status 404. If the specified function is public, then Account Admin cannot perform this operation. Note that response only includes the remaining authorized accounts at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "removeAuthorizedPartyForAllVersions", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PatchAuthorizedPartyRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Unauthorize Account From Invoking, Listing, and Checking Queue Details of Function", + "tags": [ + "Function Sharing" + ] + } + }, + "/v2/nvcf/authorizations/functions/{functionId}/versions/{functionVersionId}": { + "delete": { + "description": "Deletes all the authorized accounts that are directly associated with the specified function version. Authorized parties that are inherited by the function version are not deleted. If the specified function version is public, then Account Admin cannot perform this operation. Note that the response does not include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "deleteAuthorizedPartiesForSpecificVersion", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version", + "in": "path", + "name": "functionVersionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Delete All Authorizations At Version Level", + "tags": [ + "Function Sharing" + ] + }, + "get": { + "description": "Gets NVIDIA Cloud Account IDs that are authorized to invoke specified function version. Response includes authorized accounts that were added specifically at the version level and the authorized accounts that were inherited from function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "getAuthorizedPartiesForSpecificVersion", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version", + "in": "path", + "name": "functionVersionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Get Account Authorizations For Function Version", + "tags": [ + "Function Sharing" + ] + }, + "post": { + "description": "Authorizes additional NVIDIA Cloud Accounts to invoke a specific function version. By default, a function belongs to the NVIDIA Cloud Account that created it, and the credentials used for function invocation must reference the same NVIDIA Cloud Account. Upon invocation of this endpoint, any existing authorized accounts will be overwritten by the newly specified authorized accounts. Note that the response does NOT include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "createAuthorizedPartiesForSpecificVersion", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version id", + "in": "path", + "name": "functionVersionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Authorize Accounts To Invoke/List Function Version", + "tags": [ + "Function Sharing" + ] + } + }, + "/v2/nvcf/authorizations/functions/{functionId}/versions/{functionVersionId}/add": { + "patch": { + "description": "Adds the specified NVIDIA Cloud Account to the set of authorized accounts that can invoke the specified function version. If the specified function version does not have any existing inheritable authorized accounts, it results in a response with status 404. If the specified account is already in the set of existing authorized accounts that are directly associated with the function version, it results in a response wit status code 409. If a function is public, then Account Admin cannot perform this operation. Note that the response does not include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "addAuthorizedPartyForSpecificVersion", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version", + "in": "path", + "name": "functionVersionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PatchAuthorizedPartyRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Authorize Another Account To Invoke, List, and Check Queue Details of Function Version", + "tags": [ + "Function Sharing" + ] + } + }, + "/v2/nvcf/authorizations/functions/{functionId}/versions/{functionVersionId}/remove": { + "patch": { + "description": "Removes the specified NVIDIA Cloud Account from the set of authorized accounts that are directly associated with specified function version. If the specified function version does not have any of its own(not inherited) authorized accounts, it results in a response with status 404. Also, if the specified authorized account is not in the set of existing authorized parties that are directly associated with the specified function version, it results in a response with status code 404. If the specified function version is public, then Account Admin cannot perform this operation. Note that the response does not include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header ", + "operationId": "removeAuthorizedPartyForSpecificVersion", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version", + "in": "path", + "name": "functionVersionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PatchAuthorizedPartyRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthorizedPartiesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Unauthorize Account From Invoking, Listing, and Checking Queue Details of Function Version", + "tags": [ + "Function Sharing" + ] + } + }, + "/v2/nvcf/clusterGroups": { + "get": { + "deprecated": true, + "description": "Lists Cluster Groups for the current account. The response includes cluster groups defined specifically in the current account and publicly available cluster groups such as GFN, OCI, etc. Requires a bearer token with 'list_cluster_groups' scope in HTTP Authorization header. ", + "operationId": "getClusterGroups", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClusterGroupsResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "List Cluster Groups", + "tags": [ + "Cluster Groups and GPUs" + ] + } + }, + "/v2/nvcf/deployments/functions/{functionId}/versions/{functionVersionId}": { + "delete": { + "description": "Deletes the deployment associated with the specified function. Upon deletion, any active instances will be terminated, and the function's status will transition to 'INACTIVE'. To undeploy a function version gracefully, specify 'graceful=true' query parameter, allowing current tasks to complete before terminating the instances. If the specified function version is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. ", + "operationId": "deleteFunctionDeployment", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version id", + "in": "path", + "name": "functionVersionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Query param to deactivate function for graceful shutdown", + "in": "query", + "name": "graceful", + "required": false, + "schema": { + "default": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FunctionResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Delete Function Deployment", + "tags": [ + "Function Deployment" + ] + }, + "get": { + "description": "Allows Account Admins to retrieve the deployment details of the specified function version. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. ", + "operationId": "getFunctionDeployment", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version id", + "in": "path", + "name": "functionVersionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Get Function Deployment Details", + "tags": [ + "Function Deployment" + ] + }, + "post": { + "description": "Initiates deployment for the specified function version. Upon invocation of this endpoint, the function's status transitions to 'DEPLOYING'. If the specified function version is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. ", + "operationId": "createFunctionDeployment", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version id", + "in": "path", + "name": "functionVersionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FunctionDeploymentRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Deploy Function", + "tags": [ + "Function Deployment" + ] + }, + "put": { + "deprecated": true, + "description": " Deprecated and will be removed soon. Use a single GPU specification update method instead. Updates the deployment specs of the specified function version. It's important to note that GPU type and backend configurations cannot be modified through this endpoint. If the specified function is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. ", + "operationId": "updateFunctionDeployment", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version id", + "in": "path", + "name": "functionVersionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateFunctionDeploymentRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Update Function Deployment", + "tags": [ + "Function Deployment" + ] + } + }, + "/v2/nvcf/deployments/{deploymentId}": { + "get": { + "description": "Allows Account Admins to retrieve the deployment details of the specified deployment id. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. ", + "operationId": "getFunctionDeployment_1", + "parameters": [ + { + "description": "Deployment id", + "in": "path", + "name": "deploymentId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Get Function Deployment Details", + "tags": [ + "Function Deployment" + ] + } + }, + "/v2/nvcf/deployments/{deploymentId}/gpu-specifications/{gpuSpecId}": { + "patch": { + "description": " Updates the GPU specification of the specified function version's deployment. It's important to note that GPU type and backend configurations cannot be modified through this endpoint. If the specified function is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. ", + "operationId": "updateGpuSpecification", + "parameters": [ + { + "description": "Deployment id", + "in": "path", + "name": "deploymentId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "GPU Specification id", + "in": "path", + "name": "gpuSpecId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateGpuSpecificationRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateGpuSpecificationResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Update the specified GPU specification under the specified deployment", + "tags": [ + "Function Deployment" + ] + } + }, + "/v2/nvcf/functions": { + "get": { + "description": "Lists all the functions associated with the authenticated NVIDIA Cloud Account. Requires a bearer token with 'list_functions' or 'list_functions_details' scope in the HTTP Authorization header.", + "operationId": "getFunctions", + "parameters": [ + { + "description": "Query param 'visibility' indicates the kind of functions to be included\n in the response.\n", + "in": "query", + "name": "visibility", + "required": false, + "schema": { + "default": [ + "authorized", + "private", + "public" + ], + "items": { + "enum": [ + "authorized", + "private", + "public" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListFunctionsResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "List Functions", + "tags": [ + "Function Management" + ] + }, + "post": { + "description": "Creates a new function within the authenticated NVIDIA Cloud Account. Requires a bearer token with 'register_function' scope in the HTTP Authorization header. ", + "operationId": "createFunction", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateFunctionRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateFunctionResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Create Function", + "tags": [ + "Function Management" + ] + } + }, + "/v2/nvcf/functions/ids": { + "get": { + "description": "Lists ids of all the functions in the authenticated NVIDIA Cloud Account. Requires a bearer token with 'list_functions' or 'list_functions_details' scopes in the HTTP Authorization header. ", + "operationId": "getFunctionIds", + "parameters": [ + { + "description": "Query param 'visibility' indicates the kind of functions to be included\n in the response.\n", + "in": "query", + "name": "visibility", + "required": false, + "schema": { + "default": [ + "authorized", + "private", + "public" + ], + "items": { + "enum": [ + "authorized", + "private", + "public" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListFunctionIdsResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "List Function Ids", + "tags": [ + "Function Management" + ] + } + }, + "/v2/nvcf/functions/{functionId}/versions": { + "get": { + "description": "Lists details of all the versions of the specified function in the authenticated NVIDIA Cloud Account. Requires a bearer token with 'list_functions' or 'list_functions_details' scopes in the HTTP Authorization header. ", + "operationId": "getFunctions_1", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListFunctionsResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "List Function Versions", + "tags": [ + "Function Management" + ] + }, + "post": { + "description": "Creates a version of the specified function within the authenticated NVIDIA Cloud Account. If the function is public, then Account Admin cannot create a version. Requires a bearer token with 'register_function' scope in the HTTP Authorization header. ", + "operationId": "createFunction_1", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateFunctionRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateFunctionResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Create Function Version", + "tags": [ + "Function Management" + ] + } + }, + "/v2/nvcf/functions/{functionId}/versions/{functionVersionId}": { + "delete": { + "description": "Deletes the specified function version in the authenticated NVIDIA Cloud Account. Requires a bearer token with 'delete_function' scope in the HTTP Authorization header. If the function version is public, then Account Admin cannot delete the function. ", + "operationId": "deleteFunction", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Version id", + "in": "path", + "name": "functionVersionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "summary": "Delete Function", + "tags": [ + "Function Management" + ] + }, + "get": { + "description": "Retrieves detailed information of the specified function version in the authenticated NVIDIA Cloud Account. Requires a bearer token with 'list_functions' or 'list_functions_details' scopes in the HTTP Authorization header. ", + "operationId": "getFunction", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Version id ", + "in": "path", + "name": "functionVersionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Query param 'includeSecrets' indicates whether to include secret names\n for the function in the response.\n", + "in": "query", + "name": "includeSecrets", + "required": false, + "schema": { + "default": true, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FunctionResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Get Function Version Details", + "tags": [ + "Function Management" + ] + }, + "put": { + "description": "Updates mutable fields of the specified function version within the authenticated NVIDIA Cloud Account. The current request payload supports tags updates, rate limit updates, and model-specific LLM config updates. Requires a bearer token with 'update_function' scope in the HTTP Authorization header. ", + "operationId": "updateFunction", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Version id", + "in": "path", + "name": "functionVersionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateFunctionRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FunctionResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Updates mutable fields of the specified function version.", + "tags": [ + "Function Management" + ] + } + }, + "/v2/nvcf/metadata/functions/{functionId}/versions/{functionVersionId}": { + "put": { + "deprecated": true, + "description": "Deprecated: use PUT /v2/nvcf/functions/{functionId}/versions/{functionVersionId} to update tags, rate limit, model-specific LLM config, and other mutable function fields. This legacy endpoint updates the same mutable function version fields for the authenticated NVIDIA Cloud Account and requires a bearer token with 'update_function' scope in the HTTP Authorization header. ", + "operationId": "updateFunctionMetadata", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Version id", + "in": "path", + "name": "functionVersionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateFunctionRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FunctionResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Update Function Metadata", + "tags": [ + "Function Management" + ] + } + }, + "/v2/nvcf/pexec/functions/{functionId}": { + "post": { + "deprecated": true, + "description": "Deprecated and will be removed soon. Please use the new NVCF Invocation API endpoint to invoke a function. Invokes the specified function that was successfully deployed. If the version is not specified, any active function versions will handle the request. If the version is specified in the URI, then the request is exclusively processed by the designated version of the function. By default, this endpoint will block for 5 seconds. If the request is not fulfilled before the timeout, it's status is considered in-progress or pending and the response includes HTTP status code 202 with an invocation request ID, indicating that the client should commence polling for the result using the invocation request ID. Access to this endpoint mandates inclusion of a bearer token with 'invoke_function' scope in the HTTP Authorization header. Additionally, this endpoint has the capability to provide updates on the progress of the request, contingent upon the workload's provision of such information. In-progress responses are returned in order. If no in-progress response is received during polling you will receive the most recent in-progress response. Only the first 256 unread in-progress messages are kept. ", + "operationId": "invokeFunction", + "parameters": [ + { + "in": "header", + "name": "NVCF-INPUT-ASSET-REFERENCES", + "required": false, + "schema": { + "items": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + } + }, + { + "in": "header", + "name": "NVCF-POLL-SECONDS", + "required": false, + "schema": { + "format": "int32", + "maximum": 300, + "minimum": 0, + "type": [ + "null", + "integer" + ] + } + }, + { + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Invocation is fulfilled", + "headers": { + "NVCF-PERCENT-COMPLETE": { + "description": "Percentage complete", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-REQID": { + "description": "Invocation Request Id", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-STATUS": { + "description": "Invocation status", + "schema": { + "type": "string" + }, + "style": "simple" + } + } + }, + "202": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Result is pending. Client should poll using the requestId.", + "headers": { + "NVCF-PERCENT-COMPLETE": { + "description": "Percentage complete", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-REQID": { + "description": "Invocation Request Id", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-STATUS": { + "description": "Invocation status", + "schema": { + "type": "string" + }, + "style": "simple" + } + } + }, + "302": { + "description": "Client should use the URL specified in the 'Location' response header to fetch\n large result.\n", + "headers": { + "Location": { + "description": "URL to get the result", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-PERCENT-COMPLETE": { + "description": "Percentage complete", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-REQID": { + "description": "Invocation Request Id", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-STATUS": { + "description": "Invocation status", + "schema": { + "type": "string" + }, + "style": "simple" + } + } + }, + "402": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Cloud credits expired for public functions. Please contact NVIDIA representatives." + }, + "403": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry\n in the ApiKey for the function.\n" + }, + "429": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Client is doing too many requests per second and should slow down request rate." + } + }, + "summary": "Call Function", + "tags": [ + "Function Invocation" + ] + } + }, + "/v2/nvcf/pexec/functions/{functionId}/versions/{versionId}": { + "post": { + "deprecated": true, + "description": "Deprecated and will be removed soon. Please use the new NVCF Invocation API endpoint to invoke a function. Invokes the specified function that was successfully deployed. If the version is not specified, any active function versions will handle the request. If the version is specified in the URI, then the request is exclusively processed by the designated version of the function. By default, this endpoint will block for 5 seconds. If the request is not fulfilled before the timeout, it's status is considered in-progress or pending and the response includes HTTP status code 202 with an invocation request ID, indicating that the client should commence polling for the result using the invocation request ID. Access to this endpoint mandates inclusion of a bearer token with 'invoke_function' scope in the HTTP Authorization header. Additionally, this endpoint has the capability to provide updates on the progress of the request, contingent upon the workload's provision of such information. In-progress responses are returned in order. If no in-progress response is received during polling you will receive the most recent in-progress response. Only the first 256 unread in-progress messages are kept. ", + "operationId": "invokeFunction_1", + "parameters": [ + { + "in": "header", + "name": "NVCF-INPUT-ASSET-REFERENCES", + "required": false, + "schema": { + "items": { + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": [ + "array", + "null" + ] + } + }, + { + "in": "header", + "name": "NVCF-POLL-SECONDS", + "required": false, + "schema": { + "format": "int32", + "maximum": 300, + "minimum": 0, + "type": [ + "null", + "integer" + ] + } + }, + { + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version id", + "in": "path", + "name": "versionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Invocation is fulfilled", + "headers": { + "NVCF-PERCENT-COMPLETE": { + "description": "Percentage complete", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-REQID": { + "description": "Invocation Request Id", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-STATUS": { + "description": "Invocation status", + "schema": { + "type": "string" + }, + "style": "simple" + } + } + }, + "202": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Result is pending. Client should poll using the requestId.", + "headers": { + "NVCF-PERCENT-COMPLETE": { + "description": "Percentage complete", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-REQID": { + "description": "Invocation Request Id", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-STATUS": { + "description": "Invocation status", + "schema": { + "type": "string" + }, + "style": "simple" + } + } + }, + "302": { + "description": "Client should use the URL specified in the 'Location' response header to fetch\n large result.\n", + "headers": { + "Location": { + "description": "URL to get the result", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-PERCENT-COMPLETE": { + "description": "Percentage complete", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-REQID": { + "description": "Invocation Request Id", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-STATUS": { + "description": "Invocation status", + "schema": { + "type": "string" + }, + "style": "simple" + } + } + }, + "402": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Cloud credits expired for public functions. Please contact NVIDIA representatives." + }, + "403": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry\n in the ApiKey for the function.\n" + }, + "429": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Client is doing too many requests per second and should slow down request rate." + } + }, + "summary": "Call Function", + "tags": [ + "Function Invocation" + ] + } + }, + "/v2/nvcf/pexec/status/{requestId}": { + "get": { + "deprecated": true, + "description": "Deprecated and will be removed soon. Please use the new NVCF Invocation API endpoint to invoke a function and stream results without polling. Retrieves the status of an in-progress or pending request using its unique invocation request ID. If the result is available, it will be included in the response, marking the request as fulfilled. Conversely, if the result is not yet available, the request is deemed pending. Access to this endpoint mandates inclusion of a bearer token with 'invoke_function' scope in the HTTP Authorization header. In-progress responses are returned in order. If no in-progress response is received during polling you will receive the most recent in-progress response. Only the first 256 unread in-progress messages are kept. ", + "operationId": "getFunctionInvocationResult", + "parameters": [ + { + "description": "Invocation Request Id", + "in": "path", + "name": "requestId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Invocation is fulfilled", + "headers": { + "NVCF-PERCENT-COMPLETE": { + "description": "Percentage complete", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-REQID": { + "description": "Invocation Request Id", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-STATUS": { + "description": "Invocation status", + "schema": { + "type": "string" + }, + "style": "simple" + } + } + }, + "202": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Result is pending. Client should poll using the requestId.", + "headers": { + "NVCF-PERCENT-COMPLETE": { + "description": "Percentage complete", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-REQID": { + "description": "Invocation Request Id", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-STATUS": { + "description": "Invocation status", + "schema": { + "type": "string" + }, + "style": "simple" + } + } + }, + "302": { + "description": "Client should use the URL specified in the 'Location' response header to fetch\n large result.\n", + "headers": { + "Location": { + "description": "URL to get the result", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-PERCENT-COMPLETE": { + "description": "Percentage complete", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-REQID": { + "description": "Invocation Request Id", + "schema": { + "type": "string" + }, + "style": "simple" + }, + "NVCF-STATUS": { + "description": "Invocation status", + "schema": { + "type": "string" + }, + "style": "simple" + } + } + }, + "402": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Cloud credits expired for public functions. Please contact NVIDIA representatives." + }, + "403": { + "content": { + "*/*": { + "schema": { + "properties": { + "char": { + "type": "string" + }, + "direct": { + "type": "boolean" + }, + "double": { + "format": "double", + "type": "number" + }, + "float": { + "format": "float", + "type": "number" + }, + "int": { + "format": "int32", + "type": "integer" + }, + "long": { + "format": "int64", + "type": "integer" + }, + "readOnly": { + "type": "boolean" + }, + "short": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + } + } + }, + "description": "Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry\n in the ApiKey for the function.\n" + } + }, + "summary": "Poll For Result Using Function Invocation Request", + "tags": [ + "Function Invocation" + ] + } + }, + "/v2/nvcf/queues/functions/{functionId}": { + "get": { + "description": "Provides details of all the queues associated with the specified function. If a function has multiple versions and they are all deployed, then the response includes details of all the queues. If the specified function is public, then Account Admin cannot perform this operation. Requires a bearer token or an api-key with 'queue_details' scope in the HTTP Authorization header. ", + "operationId": "getQueuesDetails_1", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetQueuesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Queue Details", + "tags": [ + "Queue Details" + ] + } + }, + "/v2/nvcf/queues/functions/{functionId}/versions/{versionId}": { + "get": { + "description": "Provides details of all the queues associated with the specified function. If a function has multiple versions and they are all deployed, then the response includes details of all the queues. If the specified function is public, then Account Admin cannot perform this operation. Requires a bearer token or an api-key with 'queue_details' scope in the HTTP Authorization header. ", + "operationId": "getQueuesDetails", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version id", + "in": "path", + "name": "versionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetQueuesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Queue Details", + "tags": [ + "Queue Details" + ] + } + }, + "/v2/nvcf/queues/{requestId}/position": { + "get": { + "description": "Using the specified function invocation request id, returns the estimated position of the corresponding message up to 1000 in the queue. Requires a bearer token or an api-key with 'queue_details' scope in the HTTP Authorization header. ", + "operationId": "getPositionInQueue", + "parameters": [ + { + "description": "Function invocation request id", + "in": "path", + "name": "requestId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetPositionInQueueResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Queue Position", + "tags": [ + "Queue Details" + ] + } + }, + "/v2/nvcf/ratelimit/functions/{functionId}/versions/{versionId}": { + "delete": { + "description": "Delete ratelimit for the specified function version. This endpoint requires a bearer token with 'update_function' scope in the HTTP Authorization header. ", + "operationId": "deleteRateLimit", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version id", + "in": "path", + "name": "versionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "summary": "Delete user ratelimit for a function version", + "tags": [ + "User Ratelimit Management" + ] + }, + "put": { + "deprecated": true, + "description": "Deprecated: use PUT /v2/nvcf/functions/{functionId}/versions/{versionId} to update ratelimit and other mutable function fields. This legacy endpoint only updates ratelimit for the specified function version and requires a bearer token with 'update_function' scope in the HTTP Authorization header. ", + "operationId": "updateRateLimit", + "parameters": [ + { + "description": "Function id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version id", + "in": "path", + "name": "versionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateFunctionRequest" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "summary": "Update user ratelimit for a function version", + "tags": [ + "User Ratelimit Management" + ] + } + }, + "/v2/nvcf/recognized-registries": { + "get": { + "description": "Lists all the registries that are recognized by NVCF. Only when a registry is recognized by NVCF that the users can add its credential to their account and then use it to create functions. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. ", + "operationId": "getRecognizedRegistries", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RecognizedRegistriesResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "List Recognized Registries", + "tags": [ + "Registry Credential Management" + ] + } + }, + "/v2/nvcf/registry-credentials": { + "get": { + "description": "Lists all the registry credentials associated with the authenticated NVIDIA Cloud Account. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. ", + "operationId": "listRegistryCredentialDetails", + "parameters": [ + { + "description": "Filters registry credentials using the specified 'artifactType' query param.\n", + "in": "query", + "name": "artifactType", + "required": false, + "schema": { + "default": [ + "CONTAINER", + "HELM", + "MODEL", + "RESOURCE" + ], + "items": { + "enum": [ + "CONTAINER", + "HELM", + "MODEL", + "RESOURCE" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + }, + { + "description": "Filters registry credentials using the specified 'provisionedBy' query param.\n", + "in": "query", + "name": "provisionedBy", + "required": false, + "schema": { + "default": [ + "SYSTEM", + "USER" + ], + "items": { + "enum": [ + "SYSTEM", + "USER" + ], + "format": "UTF-8", + "maxLength": 262144, + "minLength": 0, + "type": "string" + }, + "maxItems": 2147483647, + "minItems": 0, + "type": "array", + "uniqueItems": true + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListRegistryCredentialDetailsResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "List Registry Credentials", + "tags": [ + "Registry Credential Management" + ] + }, + "post": { + "description": "Adds a new registry credential to the account. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. ", + "operationId": "addRegistryCredential", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddRegistryCredentialRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RegistryCredentialDetailsResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Add new registry credential to the account", + "tags": [ + "Registry Credential Management" + ] + } + }, + "/v2/nvcf/registry-credentials/{registryCredentialId}": { + "delete": { + "description": "Deletes the specified registry credential associated with the authenticated NVIDIA Cloud Account. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. ", + "operationId": "deleteRegistryCredential", + "parameters": [ + { + "description": "Registry Credential id", + "in": "path", + "name": "registryCredentialId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + }, + "summary": "Delete Registry Credential", + "tags": [ + "Registry Credential Management" + ] + }, + "get": { + "description": "Retrieves detailed information of the specified registry credential associated with the authenticated NVIDIA Cloud Account. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. ", + "operationId": "getRegistryCredentialDetails", + "parameters": [ + { + "description": "Registry Credential id", + "in": "path", + "name": "registryCredentialId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RegistryCredentialDetailsResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Get Registry Credential Details", + "tags": [ + "Registry Credential Management" + ] + }, + "patch": { + "description": "Updates the secret and/or the artifact types associated with the specified registry credential. Artifact types specified in the request body are added to the set of artifact types that already exist for the specified registry credential. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. ", + "operationId": "updateRegistryCredential", + "parameters": [ + { + "description": "Registry Credential id", + "in": "path", + "name": "registryCredentialId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateRegistryCredentialRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RegistryCredentialDetailsResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Update registry credential", + "tags": [ + "Registry Credential Management" + ] + } + }, + "/v2/nvcf/secrets/functions/{functionId}/versions/{versionId}": { + "put": { + "description": "Updates secrets for the specified function version. This endpoint requires a bearer token with 'update_secrets' scope in the HTTP Authorization header. ", + "operationId": "updateFunctionSecrets", + "parameters": [ + { + "description": "Function Id", + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function Version Id", + "in": "path", + "name": "versionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateFunctionSecretsRequest" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "summary": "Update user secrets for a function version", + "tags": [ + "User Secret Management" + ] + } + }, + "/v2/nvcf/secrets/telemetries/{telemetryId}": { + "put": { + "description": "Updates secret for the specific telemetry Id within NVIDIA Cloud Account. This endpoint requires a bearer token with 'update_secrets' scope in the HTTP Authorization header. ", + "operationId": "updateTelemetrySecret", + "parameters": [ + { + "description": "NVIDIA Cloud Account Id", + "in": "path", + "name": "telemetryId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateTelemetrySecretRequest" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + } + }, + "summary": "Update secret for a specific Telemetry Id", + "tags": [ + "User Secret Management" + ] + } + }, + "/v2/nvcf/telemetries": { + "get": { + "description": "Retrieves telemetry configurations for a specific NVIDIA Cloud Account. requires a bearer token with 'manage_telemetries' scope in the HTTP Authorization header. ", + "operationId": "getTelemetriesByAccount", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListTelemetryResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "List Telemetries", + "tags": [ + "Telemetry Management" + ] + }, + "post": { + "description": "Creates telemetry endpoints for NVIDIA Cloud Accounts. requires a bearer token with 'manage_telemetries' scope in the HTTP Authorization header. ", + "operationId": "createTelemetry", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TelemetryRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TelemetryResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Create Telemetry", + "tags": [ + "Telemetry Management" + ] + } + }, + "/v2/nvcf/telemetries/{telemetryId}": { + "delete": { + "description": "Deletes a specific telemetry configuration for a NVIDIA Cloud Account. requires a bearer token with 'manage_telemetries' scope in the HTTP Authorization header. If there any functions that are dependent on the Telemetry that is being deleted, then response with 400 status code will be returned. ", + "operationId": "deleteTelemetry", + "parameters": [ + { + "in": "path", + "name": "telemetryId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Cannot be deleted till Functions depend on it" + } + }, + "summary": "Delete Telemetry", + "tags": [ + "Telemetry Management" + ] + }, + "get": { + "description": "Retrieves the details of a specific telemetry configuration by its ID. requires a bearer token with 'manage_telemetries' scope in the HTTP Authorization header. ", + "operationId": "getTelemetry", + "parameters": [ + { + "in": "path", + "name": "telemetryId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TelemetryResponse" + } + } + }, + "description": "OK" + } + }, + "summary": "Get Telemetry Details", + "tags": [ + "Telemetry Management" + ] + } + }, + "/v2/nvcf/tokens/functions": { + "post": { + "description": "Issues an assertion token from Notary Service for specified functionIds and/or functionVersionIds ", + "operationId": "issueMultiFunctionsInvocationToken", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MultiFunctionsInvocationTokenRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenResponse" + } + } + }, + "description": "Invocation assertion token is issued" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenResponse" + } + } + }, + "description": "Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry\n in the ApiKey for the function.\n" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenResponse" + } + } + }, + "description": "Client is doing too many requests per second and should slow down request rate." + } + }, + "summary": "Issue Function Invocation Token", + "tags": [ + "Function Invocation Assertion Token" + ] + } + }, + "/v2/nvcf/tokens/functions/{functionId}": { + "post": { + "description": "Issues an assertion token from Notary Service for a specific functionId and/or functionVersionId ", + "operationId": "issueInvocationToken_1", + "parameters": [ + { + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenResponse" + } + } + }, + "description": "Invocation assertion token is issued" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenResponse" + } + } + }, + "description": "Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry\n in the ApiKey for the function.\n" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenResponse" + } + } + }, + "description": "Client is doing too many requests per second and should slow down request rate." + } + }, + "summary": "Issue Function Invocation Token", + "tags": [ + "Function Invocation Assertion Token" + ] + } + }, + "/v2/nvcf/tokens/functions/{functionId}/versions/{functionVersionId}": { + "post": { + "description": "Issues an assertion token from Notary Service for a specific functionId and/or functionVersionId ", + "operationId": "issueInvocationToken", + "parameters": [ + { + "in": "path", + "name": "functionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + }, + { + "description": "Function version id", + "in": "path", + "name": "functionVersionId", + "required": true, + "schema": { + "format": "uuid", + "maxLength": 36, + "minLength": 36, + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenResponse" + } + } + }, + "description": "Invocation assertion token is issued" + }, + "403": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenResponse" + } + } + }, + "description": "Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry\n in the ApiKey for the function.\n" + }, + "429": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/InvocationTokenResponse" + } + } + }, + "description": "Client is doing too many requests per second and should slow down request rate." + } + }, + "summary": "Issue Function Invocation Token", + "tags": [ + "Function Invocation Assertion Token" + ] + } + } + }, + "servers": [ + { + "description": "Generated server url", + "url": "https://api.nvcf.nvidia.com" + } + ], + "tags": [ + { + "description": "Defines function pass-through invocation endpoints where the invocation payload is passed as-is without any wrapper. All the endpoints defined in this API require a bearer token with 'invoke_function' scope in the HTTP Authorization header. ", + "name": "Function Invocation" + }, + { + "description": "Deprecated. Users can provide assets directly as part of the input during function invocation. There is no need to upload assets and then include the asset-id as part of input to the function invocation. Defines Asset Management endpoints for Account Admins/Users. All the endpoints defined in this API require a bearer token in the HTTP Authorization header with 'invoke_function' scope.", + "name": "Asset Management" + }, + { + "description": "Defines User Ratelimit Management endpoints for Account Admins. All the endpoints defined in this API require a bearer token with 'update_function' scope in the HTTP Authorization header. ", + "name": "User Ratelimit Management" + }, + { + "description": "Defines Queue Details endpoints for Account Admins/Users. All the endpoints defined in this API require a bearer token with 'queue_details' scope in the HTTP Authorization header. ", + "name": "Queue Details" + }, + { + "description": "Defines endpoints related to authorizing other accounts to invoke a function for Account Admins. All the endpoints defined in this API require a bearer token with 'authorize_clients' scope in HTTP Authorization header.", + "name": "Function Sharing" + }, + { + "description": "Defines Telemetry Management endpoints for Account Admins. All the endpoints defined in this API require a bearer token or an api-key with appropriate scope in the HTTP Authorization header. ", + "name": "Telemetry Management" + }, + { + "description": "Deprecated. Please use corresponding ICMS endpoints directly. These endpoints will be removed. Defines endpoints to list Cluster Groups and GPUs for Account Admins. All tne endpoints defined in this API require a bearer token with 'list_cluster_groups' scope in the HTTP Authorization header.", + "name": "Cluster Groups and GPUs" + }, + { + "description": "Defines Function Deployment endpoints for Account Admins. All the endpoints defined in this API require a bearer token with 'deploy_function' scope in the HTTP Authorization header.", + "name": "Function Deployment" + }, + { + "description": "Defines User Secret Management endpoints for Account Admins. All the endpoints defined in this API require a bearer token with 'update_secrets' scope in the HTTP Authorization header. ", + "name": "User Secret Management" + }, + { + "description": "Defines Function Management endpoints for Account Admins. All the endpoints defined in this API require a bearer token with appropriate scope in the HTTP Authorization header. The scope is specified in the documentation for each of the endpoints. ", + "name": "Function Management" + }, + { + "description": "Defines endpoints that issue an assertion token from Notary Service to be used for function invocation later ", + "name": "Function Invocation Assertion Token" + }, + { + "description": "Defines Registry Credential Management endpoints. These endpoints can only be invoked by Account Admins and require a bearer token in HTTP Authorization header with 'manage_registry_credentials' scope. ", + "name": "Registry Credential Management" + }, + { + "description": "NSPECT-F7NT-ONT3", + "name": "nspect_id" + } + ] +} diff --git a/provider-dev/openapi/src/nvidia/v00.00.00000/provider.yaml b/provider-dev/openapi/src/nvidia/v00.00.00000/provider.yaml new file mode 100644 index 0000000..04c8e43 --- /dev/null +++ b/provider-dev/openapi/src/nvidia/v00.00.00000/provider.yaml @@ -0,0 +1,96 @@ +id: nvidia +name: nvidia +version: v00.00.00000 +providerServices: + catalog: + id: catalog:v00.00.00000 + name: catalog + preferred: true + service: + $ref: nvidia/v00.00.00000/services/catalog.yaml + title: NVIDIA NGC Catalog + version: v00.00.00000 + description: >- + The public NGC catalog: guest reads of models, resources, recipes, helm + charts, collections and generic artifacts, plus the GPU and cloud service + provider catalogs (no organization scope; public artifacts read without + credentials). + nvcf_deployments: + id: nvcf_deployments:v00.00.00000 + name: nvcf_deployments + preferred: true + service: + $ref: nvidia/v00.00.00000/services/nvcf_deployments.yaml + title: NVIDIA Cloud Functions - Deployments + version: v00.00.00000 + description: >- + NVCF deployments and GPU specifications, cluster groups and GPU inventory, + registry credentials and telemetry endpoints (source: the published NVCF + OpenAPI specification; served from api.ngc.nvidia.com). + nvcf_functions: + id: nvcf_functions:v00.00.00000 + name: nvcf_functions + preferred: true + service: + $ref: nvidia/v00.00.00000/services/nvcf_functions.yaml + title: NVIDIA Cloud Functions - Functions + version: v00.00.00000 + description: >- + NVCF functions and versions, function metadata, authorizations (function + sharing grants), secrets and rate limits (source: the published NVCF + OpenAPI specification; management operations served from + api.ngc.nvidia.com). + nvcf_invocation: + id: nvcf_invocation:v00.00.00000 + name: nvcf_invocation + preferred: true + service: + $ref: nvidia/v00.00.00000/services/nvcf_invocation.yaml + title: NVIDIA Cloud Functions - Invocation + version: v00.00.00000 + description: >- + NVCF HTTP-polling invocation (pexec and status), assets and invocation + assertion tokens (served from api.nvcf.nvidia.com). + nvcf_queues: + id: nvcf_queues:v00.00.00000 + name: nvcf_queues + preferred: true + service: + $ref: nvidia/v00.00.00000/services/nvcf_queues.yaml + title: NVIDIA Cloud Functions - Queues + version: v00.00.00000 + description: >- + NVCF request queue details per function and version, and queue position + per request (served from api.nvcf.nvidia.com). + orgs: + id: orgs:v00.00.00000 + name: orgs + preferred: true + service: + $ref: nvidia/v00.00.00000/services/orgs.yaml + title: NVIDIA NGC Organizations + version: v00.00.00000 + description: >- + NGC organizations, teams, users and team members, role grants, invitations + and the current user (source: the NGC API definition harvested from the + API explorer). + private_registry: + id: private_registry:v00.00.00000 + name: private_registry + preferred: true + service: + $ref: nvidia/v00.00.00000/services/private_registry.yaml + title: NVIDIA NGC Private Registry + version: v00.00.00000 + description: >- + Org-scoped artifact metadata in the NGC private registry: models, + resources, recipes, generic artifacts (helm charts, endpoints, blueprints, + agents, playbooks, APIs, skills), versions and files, collections, shares, + deployment parameters, encryption keys and workflows. Team-scoped twins + are mapped as *_by_team methods (source: the Private Artifacts (Models) + API definition, responses from the ngcsdk data classes). +config: + auth: + type: bearer + credentialsenvvar: NGC_API_KEY + snake_case_aliases: true diff --git a/provider-dev/openapi/src/nvidia/v00.00.00000/services/catalog.yaml b/provider-dev/openapi/src/nvidia/v00.00.00000/services/catalog.yaml new file mode 100644 index 0000000..4a8b6df --- /dev/null +++ b/provider-dev/openapi/src/nvidia/v00.00.00000/services/catalog.yaml @@ -0,0 +1,9434 @@ +openapi: 3.1.0 +info: + title: NVIDIA NGC Catalog + description: 'The public NGC catalog: guest reads of models, resources, recipes, helm charts, collections and generic artifacts, plus the GPU and cloud service provider catalogs (no organization scope; public artifacts read without credentials).' + version: 0.0.1-SNAPSHOT +paths: + /v2/collections: + get: + description: List public collections + operationId: listPublicCollections + parameters: + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List public collections + tags: + - Collections + /v2/collections/{org_name}/{collection_name}: + get: + description: Get collection details in org as guest + operationId: getCollectionInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get collection in org as guest + tags: + - Collections + /v2/collections/{org_name}/{collection_name}/artifacts/{artifact_type}: + get: + description: List collection artifacts the user can access in the specified org as guest + operationId: listCollectionArtifactsInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Order by + in: query + name: order-by + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List collection artifacts in org as guest + tags: + - Collections + /v2/collections/{org_name}/{team_name}/{collection_name}: + get: + description: Get collection details in team as guest + operationId: getCollectionInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get collection in team as guest + tags: + - Collections + /v2/collections/{org_name}/{team_name}/{collection_name}/artifacts/{artifact_type}: + get: + description: List collection artifacts the user can access in the specified org and team as guest + operationId: listCollectionArtifactsInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Order by + in: query + name: order-by + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List collection artifacts in org and team as guest + tags: + - Collections + /v2/csps: + get: + description: List cloud service providers + operationId: listCloudServiceProviders + parameters: + - description: Page size + in: query + name: page-size + required: false + schema: + maximum: 5000 + minimum: 1 + type: integer + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + maximum: 10000 + minimum: 0 + type: integer + - description: Include disabled + in: query + name: include-disabled + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CloudServiceProviderListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List cloud service providers + tags: + - Cloud service providers + post: + description: Create cloud service provider + operationId: createCloudServiceProvider + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CloudServiceProviderCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CloudServiceProvider' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create cloud service provider + tags: + - Cloud service providers + parameters: [] + /v2/csps/{artifact_type}/{org_name}/{artifact_name}/deployments/params: + get: + description: List public artifact deployment parameters in org + operationId: listPublicArtifactDeploymentParametersInOrg + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Inherit CSP parameters + in: query + name: inherit-csp-parameters + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List public artifact deployment parameters in org + tags: + - Artifact deployment parameters + /v2/csps/{artifact_type}/{org_name}/{artifact_name}/deployments/{csp_name}/params: + get: + description: Get public artifact deployment parameters details in org + operationId: getPublicArtifactDeploymentParametersInOrg + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Inherit CSP parameters + in: query + name: inherit-csp-parameters + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get public artifact deployment parameters details in org + tags: + - Artifact deployment parameters + /v2/csps/{artifact_type}/{org_name}/{team_name}/{artifact_name}/deployments/params: + get: + description: List public artifact deployment parameters in team + operationId: listPublicArtifactDeploymentParametersInTeam + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Inherit CSP parameters + in: query + name: inherit-csp-parameters + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List public artifact deployment parameters in team + tags: + - Artifact deployment parameters + /v2/csps/{artifact_type}/{org_name}/{team_name}/{artifact_name}/deployments/{csp_name}/params: + get: + description: Get public artifact deployment parameters details in team + operationId: getPublicArtifactDeploymentParametersInTeam + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Inherit CSP parameters + in: query + name: inherit-csp-parameters + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get public artifact deployment parameters details in team + tags: + - Artifact deployment parameters + /v2/csps/{csp_name}: + get: + description: Get cloud service provider details + operationId: getCloudServiceProviderDetails + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CloudServiceProvider' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get cloud service provider details + tags: + - Cloud service providers + patch: + description: Update cloud service provider + operationId: updateCloudServiceProvider + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CloudServiceProviderUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CloudServiceProvider' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update cloud service provider + tags: + - Cloud service providers + delete: + description: Delete cloud service provider + operationId: deleteCloudServiceProvider + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete cloud service provider + tags: + - Cloud service providers + /v2/csps/{csp_name}/deployments/params: + get: + description: Get cloud service provider deployment parameters details + operationId: getCloudServiceProviderDeploymentParametersDetails + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get cloud service provider deployment parameters details + tags: + - Cloud service provider deployment parameters + post: + description: Create cloud service provider deployment parameters + operationId: createCloudServiceProviderDeploymentParameters + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create cloud service provider deployment parameters + tags: + - Cloud service provider deployment parameters + patch: + description: Update cloud service provider deployment parameters + operationId: updateCloudServiceProviderDeploymentParameters + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update cloud service provider deployment parameters + tags: + - Cloud service provider deployment parameters + delete: + description: Delete cloud service provider deployment parameters + operationId: deleteCloudServiceProviderDeploymentParameters + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete cloud service provider deployment parameters + tags: + - Cloud service provider deployment parameters + /v2/csps/{csp_name}/deployments/params/meta: + get: + description: Get cloud service provider deployment parameters meta details + operationId: getCloudServiceProviderDeploymentParametersMetaDetails + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersMeta' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get cloud service provider deployment parameters meta details + tags: + - Deployment parameters meta + post: + description: Create cloud service provider deployment parameters meta + operationId: createCloudServiceProviderDeploymentParametersMeta + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersMetaCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersMeta' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create cloud service provider deployment parameters meta + tags: + - Deployment parameters meta + patch: + description: Update cloud service provider deployment parameters meta + operationId: updateCloudServiceProviderDeploymentParametersMeta + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersMetaUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersMeta' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update cloud service provider deployment parameters meta + tags: + - Deployment parameters meta + delete: + description: Delete cloud service provider deployment parameters meta + operationId: deleteCloudServiceProviderDeploymentParametersMeta + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete cloud service provider deployment parameters meta + tags: + - Deployment parameters meta + /v2/gpus: + get: + description: Get all GPU by PCI records + operationId: getGpus + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GetGpusResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get all GPUs + tags: + - GpuByPci + parameters: [] + /v2/gpus/pci-device-id/{pci_device_id}: + get: + description: Get all GPU records matching the given PCI Device ID + operationId: getGpuByPciDeviceId + parameters: + - description: PCI Device ID + in: path + name: pci_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GetGpuByPciDeviceIdResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get GPU by PCI Device ID + tags: + - GpuByPci + post: + description: Create a new GPU record using only PCI Device ID (pciVendorId and pciSubsystemDeviceId default to 'unknown') + operationId: createGpuByPciDeviceId + parameters: + - description: PCI Device ID + in: path + name: pci_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GpuByPciCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GpuByPciResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create GPU by PCI Device ID only + tags: + - GpuByPci + patch: + description: Partially update a GPU record using only PCI Device ID (pciVendorId and pciSubsystemDeviceId default to 'unknown'). Only provided fields will be updated. + operationId: updateGpuByPciDeviceId + parameters: + - description: PCI Device ID + in: path + name: pci_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GpuByPciUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GpuByPciResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Partially update GPU by PCI Device ID only + tags: + - GpuByPci + delete: + description: Delete a GPU record using only PCI Device ID (pciVendorId and pciSubsystemDeviceId default to 'unknown') + operationId: deleteGpuByPciDeviceId + parameters: + - description: PCI Device ID + in: path + name: pci_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete GPU by PCI Device ID only + tags: + - GpuByPci + /v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id}: + get: + description: Get all GPUs by PCI records matching the given PCI Device ID and Vendor ID + operationId: getGpuByPciDeviceIdVendorId + parameters: + - description: PCI Device ID + in: path + name: pci_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + - description: PCI Vendor ID + in: path + name: pci_vendor_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GetGpuByPciDeviceIdVendorIdResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get GPUs by PCI Device ID and Vendor ID + tags: + - GpuByPci + /v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id}/pci-subsystem-device-id/{pci_subsystem_device_id}: + get: + description: Get a single GPU record matching the full PCI composite key + operationId: getGpuByPciDeviceIdVendorIdSubsystemDeviceId + parameters: + - description: PCI Device ID + in: path + name: pci_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + - description: PCI Vendor ID + in: path + name: pci_vendor_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + - description: PCI Subsystem Device ID + in: path + name: pci_subsystem_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GpuByPciResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get GPU by PCI Device ID, Vendor ID, and Subsystem Device ID + tags: + - GpuByPci + post: + description: Create a new GPU record using the full PCI composite key + operationId: createGpuByPciFullKey + parameters: + - description: PCI Device ID + in: path + name: pci_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + - description: PCI Vendor ID + in: path + name: pci_vendor_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + - description: PCI Subsystem Device ID + in: path + name: pci_subsystem_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GpuByPciCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GpuByPciResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create GPU by PCI Device ID, Vendor ID, and Subsystem Device ID + tags: + - GpuByPci + patch: + description: Partially update a GPU record matching the full PCI composite key. Only provided fields will be updated. + operationId: updateGpuByPciFullKey + parameters: + - description: PCI Device ID + in: path + name: pci_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + - description: PCI Vendor ID + in: path + name: pci_vendor_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + - description: PCI Subsystem Device ID + in: path + name: pci_subsystem_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GpuByPciUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GpuByPciResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Partially update GPU by PCI Device ID, Vendor ID, and Subsystem Device ID + tags: + - GpuByPci + delete: + description: Delete a GPU record matching the full PCI composite key + operationId: deleteGpuByPciFullKey + parameters: + - description: PCI Device ID + in: path + name: pci_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + - description: PCI Vendor ID + in: path + name: pci_vendor_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + - description: PCI Subsystem Device ID + in: path + name: pci_subsystem_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete GPU by PCI Device ID, Vendor ID, and Subsystem Device ID + tags: + - GpuByPci + /v2/helm-charts/{org_name}/{artifact_name}/versions: + get: + description: List chart versions in org as guest + operationId: listHelmChartVersionsInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List chart versions in org as guest + tags: + - Helm Charts + /v2/helm-charts/{org_name}/{artifact_name}/versions/{version_id}: + get: + description: Get chart version in org as guest + operationId: getHelmChartVersionInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get chart version in org as guest + tags: + - Helm Charts + /v2/helm-charts/{org_name}/{team_name}/{artifact_name}/versions: + get: + description: List chart versions in team as guest + operationId: listHelmChartVersionsInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List chart versions in team as guest + tags: + - Helm Charts + /v2/helm-charts/{org_name}/{team_name}/{artifact_name}/versions/{version_id}: + get: + description: Get chart version in team as guest + operationId: getHelmChartVersionInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get chart version in team as guest + tags: + - Helm Charts + /v2/models: + get: + description: This operation lists public models. + operationId: listPublicModels + parameters: + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List public models + tags: + - Models + /v2/models/{org_name}/{model_name}: + get: + description: This operation gets info of a model in the org as guest. + operationId: getModelInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get model in org as guest + tags: + - Models + /v2/models/{org_name}/{model_name}/versions: + get: + description: List model versions in org as guest + operationId: listModelVersionsInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List model versions in org as guest + tags: + - Model Version + /v2/models/{org_name}/{model_name}/versions/{version_id}: + get: + description: Get model version in org as guest + operationId: getModelVersionInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get model version in org as guest + tags: + - Model Version + /v2/models/{org_name}/{model_name}/versions/{version_id}/files: + get: + description: List files of the model version in org as guest + operationId: listModeFilesInOrgAsGuest_2 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List model files in org as guest + tags: + - Model Version Files + /v2/models/{org_name}/{team_name}/{model_name}: + get: + description: This operation gets info of a model in the org/team as guest. + operationId: getModelInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get model in team as guest + tags: + - Models + /v2/models/{org_name}/{team_name}/{model_name}/versions: + get: + description: List model versions in team as guest + operationId: listModelVersionsInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List model versions in team as guest + tags: + - Model Version + /v2/models/{org_name}/{team_name}/{model_name}/versions/{version_id}: + get: + description: Get model version in team as guest + operationId: getModelVersionInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get model version in team as guest + tags: + - Model Version + /v2/models/{org_name}/{team_name}/{model_name}/versions/{version_id}/files: + get: + description: List files of the model version in team as guest + operationId: listModeFilesInTeamAsGuest_2 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List model files in team as guest + tags: + - Model Version Files + /v2/nim/{team}/{nim_name}/{tag}/metadata: + post: + description: | + Registers NIM profile metadata for the given team, NIM name, and tag. This is a placeholder that validates the supplied profiles and echoes the provided fields back to the caller. + SSA: requires the following scope `createNimMetadata` + operationId: createNimMetadata + parameters: + - description: Team name + in: path + name: team + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + pattern: ^[a-zA-Z0-9._-]+$ + type: string + - description: NIM name + in: path + name: nim_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + pattern: ^[a-zA-Z0-9._-]+$ + type: string + - description: NIM tag + in: path + name: tag + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + pattern: ^[a-zA-Z0-9._-]+$ + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NimManifestMetadataRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/NimManifestMetadataResponse' + description: Created + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create NIM metadata + tags: + - NIM Metadata + /v2/recipes: + get: + description: List public recipes + operationId: listPublicRecipes + parameters: + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List public recipes + tags: + - Resources + /v2/recipes/{org_name}/{recipe_name}: + get: + description: Get recipe details in org as guest + operationId: getRecipeInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe in org as guest + tags: + - Resources + /v2/recipes/{org_name}/{recipe_name}/versions: + get: + description: List recipe versions in org as guest + operationId: listRecipeVersionsInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe versions in org as guest + tags: + - Resource Versions + /v2/recipes/{org_name}/{recipe_name}/versions/{version_id}: + get: + description: Get recipe version in org as guest + operationId: getRecipeVersionInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe version in org as guest + tags: + - Resource Versions + /v2/recipes/{org_name}/{recipe_name}/versions/{version_id}/files: + get: + description: List files of the recipe version in org as guest + operationId: listModeFilesInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe files in org as guest + tags: + - Resource Version Files endpoints + /v2/recipes/{org_name}/{team_name}/{recipe_name}: + get: + description: Get recipe details in team as guest + operationId: getRecipeInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe in team as guest + tags: + - Resources + /v2/recipes/{org_name}/{team_name}/{recipe_name}/versions: + get: + description: List recipe versions in team as guest + operationId: listRecipeVersionsInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe versions in team as guest + tags: + - Resource Versions + /v2/recipes/{org_name}/{team_name}/{recipe_name}/versions/{version_id}: + get: + description: Get recipe version in team as guest + operationId: getRecipeVersionInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe version in team as guest + tags: + - Resource Versions + /v2/recipes/{org_name}/{team_name}/{recipe_name}/versions/{version_id}/files: + get: + description: List files of the recipe version in team as guest + operationId: listModeFilesInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe files in team as guest + tags: + - Resource Version Files endpoints + /v2/resources: + get: + description: List public recipes + operationId: listPublicRecipes_1 + parameters: + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List public recipes + tags: + - Resources + /v2/resources/{org_name}/{recipe_name}: + get: + description: Get recipe details in org as guest + operationId: getRecipeInOrgAsGuest_1 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe in org as guest + tags: + - Resources + /v2/resources/{org_name}/{recipe_name}/versions: + get: + description: List recipe versions in org as guest + operationId: listRecipeVersionsInOrgAsGuest_1 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe versions in org as guest + tags: + - Resource Versions + /v2/resources/{org_name}/{recipe_name}/versions/{version_id}: + get: + description: Get recipe version in org as guest + operationId: getRecipeVersionInOrgAsGuest_1 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe version in org as guest + tags: + - Resource Versions + /v2/resources/{org_name}/{recipe_name}/versions/{version_id}/files: + get: + description: List files of the recipe version in org as guest + operationId: listModeFilesInOrgAsGuest_1 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe files in org as guest + tags: + - Resource Version Files endpoints + /v2/resources/{org_name}/{team_name}/{recipe_name}: + get: + description: Get recipe details in team as guest + operationId: getRecipeInTeamAsGuest_1 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe in team as guest + tags: + - Resources + /v2/resources/{org_name}/{team_name}/{recipe_name}/versions: + get: + description: List recipe versions in team as guest + operationId: listRecipeVersionsInTeamAsGuest_1 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe versions in team as guest + tags: + - Resource Versions + /v2/resources/{org_name}/{team_name}/{recipe_name}/versions/{version_id}: + get: + description: Get recipe version in team as guest + operationId: getRecipeVersionInTeamAsGuest_1 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe version in team as guest + tags: + - Resource Versions + /v2/resources/{org_name}/{team_name}/{recipe_name}/versions/{version_id}/files: + get: + description: List files of the recipe version in team as guest + operationId: listModeFilesInTeamAsGuest_1 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe files in team as guest + tags: + - Resource Version Files endpoints + /v2/{artifact_type}: + get: + description: List public artifacts + operationId: listPublicArtifacts + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List public artifacts + tags: + - Artifacts + /v2/{artifact_type}/{org_name}/{artifact_name}: + get: + description: Get artifact details in org as guest + operationId: getArtifactInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get artifact in org as guest + tags: + - Artifacts + /v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/files: + get: + description: List files of the artifact version in org as guest + operationId: listArtifactFilesInOrgAsGuest + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifact files in org as guest + tags: + - Artifact Version Files + /v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}: + get: + description: Get artifact details in team as guest + operationId: getChartInTeamAsGuest + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get artifact in team as guest + tags: + - Artifacts + /v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/files: + get: + description: List files of the artifact version in team as guest + operationId: listArtifactFilesInTeamAsGuest + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifact files in team as guest + tags: + - Artifact Version Files + /v2/{artifact_type}/{org_name}/{artifact_name}/spec: + get: + description: Get AI Playground for public artifactType + operationId: getPublicModelArtifactsSpec + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - models + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Model name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get AI Playground for public artifactType + tags: + - AIPlayground + /v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/spec: + get: + description: Get AI Playground for public artifactType + operationId: getPublicModelArtifactsSpec_1 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - models + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Model name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get AI Playground for public artifactType + tags: + - AIPlayground +components: + schemas: + CollectionListResponse: + description: Response to list collections request + properties: + collections: + items: + $ref: '#/components/schemas/Collection' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + Response: + properties: + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + CollectionResponse: + description: Response to create collection request + properties: + collection: + $ref: '#/components/schemas/Collection' + description: Collection object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ArtifactListResponse: + description: Response to list artifacts request + properties: + artifacts: + items: + $ref: '#/components/schemas/Artifact' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + CloudServiceProviderListResponse: + description: Response to list Cloud Service Providers request + properties: + cloudServiceProviders: + items: + $ref: '#/components/schemas/CloudServiceProvider' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + CloudServiceProviderCreateRequest: + description: Request to create a new Cloud Service Provider + properties: + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + description: + description: Description of the Cloud Service Provider + type: string + displayName: + description: Display name of the Cloud Service Provider + type: string + isEnabled: + description: Determines if this Cloud Service Provider is enabled + type: boolean + labels: + items: + type: string + type: array + logo: + description: URL for the logo image + type: string + name: + description: Unique name of the Cloud Service Provider + type: string + required: + - name + type: object + CloudServiceProvider: + description: Cloud Service Provider object + properties: + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the Cloud Service Provider + type: string + displayName: + description: Display name of the Cloud Service Provider + type: string + isDeployable: + description: Determines if this Cloud Service Provider can be used to deploy artifacts + type: boolean + isEnabled: + description: Determines if this Cloud Service Provider is enabled + type: boolean + labels: + items: + type: string + type: array + logo: + description: URL for the logo image + type: string + name: + description: Unique name of the Cloud Service Provider + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + required: + - name + type: object + DeploymentParametersListResponse: + description: Response to list deployment parameters request + properties: + artifact: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + csp: + description: Cloud Service Provider name + type: string + deploymentParameters: + items: + $ref: '#/components/schemas/DeploymentParameters' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + DeploymentParameters: + description: Deployment Artifact Parameters object + properties: + container: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + cpu: + $ref: '#/components/schemas/DeploymentCpuParameters' + description: Deployment CPU Parameters object + csp: + description: Cloud Service Provider name + type: string + gpu: + $ref: '#/components/schemas/DeploymentGpuParameters' + description: Deployment GPU Parameters object + memory: + $ref: '#/components/schemas/DeploymentMemoryParameters' + description: Deployment Memory Parameters object + model: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + resource: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + storage: + $ref: '#/components/schemas/DeploymentStorageParameters' + description: Deployment Storage Parameters object + type: object + CloudServiceProviderUpdateRequest: + description: Request to update existing Cloud Service Provider + properties: + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + description: + description: Description of the Cloud Service Provider + type: string + displayName: + description: Display name of the Cloud Service Provider + type: string + isEnabled: + description: Determines if this Cloud Service Provider is enabled + type: boolean + labels: + items: + type: string + type: array + logo: + description: URL for the logo image + type: string + type: object + DeploymentParametersUpdateRequest: + description: Request to update existing deployment parameters + properties: + container: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + cpu: + $ref: '#/components/schemas/DeploymentCpuParameters' + description: Deployment CPU Parameters object + gpu: + $ref: '#/components/schemas/DeploymentGpuParameters' + description: Deployment GPU Parameters object + memory: + $ref: '#/components/schemas/DeploymentMemoryParameters' + description: Deployment Memory Parameters object + model: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + resource: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + storage: + $ref: '#/components/schemas/DeploymentStorageParameters' + description: Deployment Storage Parameters object + type: object + DeploymentParametersCreateRequest: + description: Request to create a new deployment parameters + properties: + container: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + cpu: + $ref: '#/components/schemas/DeploymentCpuParameters' + description: Deployment CPU Parameters object + gpu: + $ref: '#/components/schemas/DeploymentGpuParameters' + description: Deployment GPU Parameters object + memory: + $ref: '#/components/schemas/DeploymentMemoryParameters' + description: Deployment Memory Parameters object + model: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + resource: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + storage: + $ref: '#/components/schemas/DeploymentStorageParameters' + description: Deployment Storage Parameters object + type: object + DeploymentParametersMeta: + description: Cloud Service Provider Deployment Parameters object + properties: + cpu: + $ref: '#/components/schemas/DeploymentCpuParametersMeta' + description: Cloud Service Provider Deployment CPU Parameters object + csp: + description: Cloud Service Provider name + type: string + gpu: + $ref: '#/components/schemas/DeploymentGpuParametersMeta' + description: Cloud Service Provider Deployment GPU Parameters object + memory: + $ref: '#/components/schemas/DeploymentMemoryParametersMeta' + description: Cloud Service Provider Deployment Memory Parameters object + storage: + $ref: '#/components/schemas/DeploymentStorageParametersMeta' + description: Cloud Service Provider Deployment Storage Parameters object + type: object + DeploymentParametersMetaUpdateRequest: + description: Properties for the cloud service provider deployment parameters meta to create + properties: + cpu: + $ref: '#/components/schemas/DeploymentCpuParametersMeta' + description: Cloud Service Provider Deployment CPU Parameters object + gpu: + $ref: '#/components/schemas/DeploymentGpuParametersMeta' + description: Cloud Service Provider Deployment GPU Parameters object + memory: + $ref: '#/components/schemas/DeploymentMemoryParametersMeta' + description: Cloud Service Provider Deployment Memory Parameters object + storage: + $ref: '#/components/schemas/DeploymentStorageParametersMeta' + description: Cloud Service Provider Deployment Storage Parameters object + type: object + DeploymentParametersMetaCreateRequest: + description: Properties for the cloud service provider deployment parameters meta to create + properties: + cpu: + $ref: '#/components/schemas/DeploymentCpuParametersMeta' + description: Cloud Service Provider Deployment CPU Parameters object + gpu: + $ref: '#/components/schemas/DeploymentGpuParametersMeta' + description: Cloud Service Provider Deployment GPU Parameters object + memory: + $ref: '#/components/schemas/DeploymentMemoryParametersMeta' + description: Cloud Service Provider Deployment Memory Parameters object + storage: + $ref: '#/components/schemas/DeploymentStorageParametersMeta' + description: Cloud Service Provider Deployment Storage Parameters object + required: + - gpu + - storage + type: object + GpuByPciResponse: + description: Response for GPU by PCI ID lookup + properties: + createdAt: + description: Creation timestamp + format: date-time + type: string + cudaMajorVersion: + description: CUDA major version + type: string + cudaMinorVersion: + description: CUDA minor version + type: string + displayName: + description: Display name for the GPU + type: string + formFactor: + description: GPU form factor + type: string + gpuCounts: + items: + format: int32 + maximum: 255 + minimum: 0 + type: integer + type: array + uniqueItems: true + labelName: + description: Label name for the GPU + type: string + memorySizeGb: + description: Memory size in GB (smallint range) + format: int32 + maximum: 32767 + minimum: 0 + type: integer + pciDeviceId: + description: PCI Device ID + type: string + pciSubsystemDeviceId: + description: PCI Subsystem Device ID + type: string + pciVendorId: + description: PCI Vendor ID + type: string + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + updatedAt: + description: Last update timestamp + format: date-time + type: string + required: + - displayName + - pciDeviceId + type: object + GpuByPciUpdateRequest: + description: GPU by PCI update properties + properties: + cudaMajorVersion: + description: CUDA major version + type: string + cudaMinorVersion: + description: CUDA minor version + type: string + displayName: + description: Display name for the GPU + type: string + formFactor: + description: GPU form factor + type: string + gpuCounts: + items: + format: int32 + maximum: 255 + minimum: 0 + type: integer + type: array + uniqueItems: true + labelName: + description: Label name for the GPU + type: string + memorySizeGb: + description: Memory size in GB (smallint range) + format: int32 + maximum: 32767 + minimum: 0 + type: integer + type: object + GpuByPciCreateRequest: + description: GPU by PCI properties + properties: + cudaMajorVersion: + description: CUDA major version + type: string + cudaMinorVersion: + description: CUDA minor version + type: string + displayName: + description: Display name for the GPU + type: string + formFactor: + description: GPU form factor + type: string + gpuCounts: + items: + format: int32 + maximum: 255 + minimum: 0 + type: integer + type: array + uniqueItems: true + labelName: + description: Label name for the GPU + type: string + memorySizeGb: + description: Memory size in GB (smallint range) + format: int32 + maximum: 32767 + minimum: 0 + type: integer + pciDeviceId: + description: PCI Device ID + type: string + pciSubsystemDeviceId: + description: PCI Subsystem Device ID + type: string + pciVendorId: + description: PCI Vendor ID + type: string + required: + - displayName + - pciDeviceId + type: object + ArtifactVersionListResponse: + description: Response to list artifact versions request + properties: + artifact: + $ref: '#/components/schemas/Artifact' + description: Artifact object + artifactVersions: + items: + $ref: '#/components/schemas/ArtifactVersion' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ArtifactVersionResponse: + description: Response to artifact version request + properties: + artifact: + $ref: '#/components/schemas/Artifact' + description: Artifact object + artifactVersion: + $ref: '#/components/schemas/ArtifactVersion' + description: Artifact version object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ModelListResponse: + description: Response to list models request + properties: + models: + items: + $ref: '#/components/schemas/Model' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ModelResponse: + description: Response to create model request + properties: + model: + $ref: '#/components/schemas/Model' + description: Model object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ModelVersionListResponse: + description: Response to list model versions request + properties: + model: + $ref: '#/components/schemas/Model' + description: Model object + modelVersions: + items: + $ref: '#/components/schemas/ModelVersion' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ModelVersionResponse: + description: Response to create a model version request + properties: + model: + $ref: '#/components/schemas/Model' + description: Model object + modelVersion: + $ref: '#/components/schemas/ModelVersion' + description: Model version object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ModelVersionFileListResponse: + description: Response to list files for model version request + properties: + model: + $ref: '#/components/schemas/Model' + description: Model object + modelFiles: + items: + $ref: '#/components/schemas/ModelFile' + type: array + modelVersion: + $ref: '#/components/schemas/ModelVersion' + description: Model version object + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + NimManifestMetadataRequest: + description: NIM profile metadata + properties: + profiles: + items: + $ref: '#/components/schemas/NimProfile' + type: array + type: object + NimManifestMetadataResponse: + properties: + profiles: + items: + $ref: '#/components/schemas/NimProfile' + type: array + type: object + RecipeListResponse: + description: Response to list recipes request + properties: + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + recipes: + items: + $ref: '#/components/schemas/Recipe' + type: array + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + RecipeResponse: + description: Response to recipe request + properties: + recipe: + $ref: '#/components/schemas/Recipe' + description: Recipe object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + RecipeVersionListResponse: + description: Response to list recipe versions request + properties: + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + recipe: + $ref: '#/components/schemas/Recipe' + description: Recipe object + recipeVersions: + items: + $ref: '#/components/schemas/RecipeVersion' + type: array + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + RecipeVersionResponse: + description: Response to recipe version request + properties: + recipe: + $ref: '#/components/schemas/Recipe' + description: Recipe object + recipeVersion: + $ref: '#/components/schemas/RecipeVersion' + description: Recipe version object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + RecipeVersionFileListResponse: + description: Response to list files for recipe version request + properties: + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + recipe: + $ref: '#/components/schemas/Recipe' + description: Recipe object + recipeFiles: + items: + $ref: '#/components/schemas/RecipeFile' + type: array + recipeVersion: + $ref: '#/components/schemas/RecipeVersion' + description: Recipe version object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ArtifactResponse: + description: Response to artifact request + properties: + artifact: + $ref: '#/components/schemas/Artifact' + description: Artifact object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ArtifactVersionFileListResponse: + description: Response to list files for artifact version request + properties: + artifact: + $ref: '#/components/schemas/Artifact' + description: Artifact object + artifactFiles: + items: + $ref: '#/components/schemas/File' + type: array + artifactVersion: + $ref: '#/components/schemas/ArtifactVersion' + description: Artifact version object + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + AIPlaygroundResponse: + description: Request to fetch an AI Playground config + properties: + artifactName: + description: Unique name of the model + type: string + artifactType: + description: ArtifactTypeEnum of the artifact + type: string + attributes: + description: Metadata json string + type: string + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + namespace: + description: org/team of the model + type: string + nvcfFunctionId: + description: NVCF function id for the model playground + type: string + nvcfInferencePath: + description: NVCF inference path (invocation route) for the model playground + type: string + openAPISpec: + description: OpenAPI specification for this model + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + type: object + Collection: + description: Collection object + properties: + accessType: + enum: + - LISTED + - EXCLUSIVE + - NOT_LISTED + type: string + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + builtBy: + description: Organization that built the collection + type: string + canGuestDownload: + description: Indicates if a guest user can download + type: boolean + category: + enum: + - HEALTHCARE + - SMART_CITIES + - RETAIL + - MANUFACTURING + - SUPERCOMPUTING + - ROBOTICS + - AUTOMOTIVE + - TELECOMMUNICATIONS + - FINANCE + - OIL_AND_GAS + - NATURAL_LANGUAGE_PROCESSING + - AUTOMATIC_SPEECH_RECOGNITION + - INTELLIGENT_VIDEO_ANALYTICS + - OBJECT_DETECTION + - IMAGE_CLASSIFICATION + - ANNOTATION + - IMAGE_SYNTHESIS + - MACHINE_LEARNING + - DEEP_LEARNING + - INFRASTRUCTURE + - HIGH_PERFORMANCE_COMPUTING + - WINDOWS_RTX_ACCELERATED_MODELS + - BEGINNER + - ADVANCED + type: string + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the collection + type: string + displayName: + description: Display name + type: string + isPublic: + description: Determines if this collection is publicly accessible + type: boolean + isReadOnly: + description: indicate if current user has read only permissions (deprecated) + type: boolean + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + logo: + description: URL for the logo image + type: string + name: + description: Unique name of the collection + type: string + orgName: + description: Name of the org that the collection belongs to + type: string + ownerName: + description: Name of the user who owns this version + type: string + policyLabels: + items: + type: string + type: array + productNames: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + publisher: + description: Organization that published this collection + type: string + shortDescription: + description: Short description of the collection + type: string + size: + description: Total count of collection items + format: int64 + type: integer + teamName: + description: Name of the team that the collection belongs to + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + required: + - category + type: object + PaginationInfo: + description: Pagination Information + properties: + index: + description: Page index of results + format: int32 + type: integer + nextPage: + description: Serialized pointer to the next results page. Should be used for fetching next page. Can be empty + type: string + size: + description: Number of results in page + format: int32 + type: integer + totalPages: + description: Total number of pages available + format: int64 + type: integer + totalResults: + description: Total number of results available + format: int64 + type: integer + type: object + RequestStatus: + description: Request status information + properties: + requestId: + description: Request ID + type: string + serverId: + description: Server ID + type: string + statusCode: + description: Describes response status reported by the server. + enum: + - UNKNOWN + - SUCCESS + - UNAUTHORIZED + - PAYMENT_REQUIRED + - FORBIDDEN + - TIMEOUT + - EXISTS + - NOT_FOUND + - INTERNAL_ERROR + - INVALID_REQUEST + - INVALID_REQUEST_VERSION + - INVALID_REQUEST_DATA + - METHOD_NOT_ALLOWED + - CONFLICT + - UNPROCESSABLE_ENTITY + - TOO_MANY_REQUESTS + - INSUFFICIENT_STORAGE + - SERVICE_UNAVAILABLE + type: string + statusDescription: + description: Status description + type: string + type: object + Artifact: + description: Artifact object + properties: + accessType: + enum: + - LISTED + - EXCLUSIVE + - NOT_LISTED + type: string + artifactType: + description: Artifact type + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + type: string + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + bias: + description: Text describing bias in the artifact + type: string + builtBy: + description: Organization that built the helm chart + type: string + canGuestDownload: + description: Indicates if a guest user can download + type: boolean + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the helm chart + type: string + displayName: + description: Display name + type: string + encryptionKeyId: + description: ID of the customer managed encryption key associated with this artifact + type: string + explainability: + description: Text describing the explainability for this artifact + type: string + hasSignedVersion: + description: Indicates if the artifact has any signed versions + type: boolean + isFavourite: + description: Flag indicating if helm chart is user's favorite + type: boolean + isPublic: + description: Determines if this helm chart is publicly accessible + type: boolean + isReadOnly: + description: indicate if current user has read only permissions (deprecated) + type: boolean + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + latestVersionId: + description: ID of the latest version + type: string + latestVersionSizeInBytes: + description: Size of the latest version in bytes + format: int64 + type: integer + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + type: string + name: + description: Unique name of the helm chart + type: string + orgName: + description: Name of the org that the helm chart belongs to + type: string + ownerName: + description: Name of the user who owns this version + type: string + policyLabels: + items: + type: string + type: array + privacy: + description: Text describing the privacy for this artifact + type: string + productNames: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + publisher: + description: Organization that published this helm chart + type: string + safetyAndSecurity: + description: Text for describing the safety and security in the artifact + type: string + shortDescription: + description: Short description of the helm chart + type: string + teamName: + description: Name of the team that the helm chart belongs to + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + type: object + ArtifactAttribute: + description: Attribute on the artifact + properties: + key: + maxLength: 255 + pattern: '[a-zA-Z0-9]+' + type: string + value: + maxLength: 255 + type: string + type: object + DeploymentArtifactParameters: + description: Deployment Artifact Parameters object + properties: + artifactType: + description: Artifact type + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + type: string + displayName: + description: Display name of the artifact + type: string + filePath: + description: Path to a file in an artifact version + type: string + name: + description: Unique name of the artifact + type: string + orgName: + description: Name of the org that the artifact belongs to + type: string + teamName: + description: Name of the team that the artifact belongs to + type: string + versionId: + description: ID of the version or tag + type: string + required: + - name + - orgName + type: object + DeploymentCpuParameters: + description: Deployment CPU Parameters object + properties: + count: + description: Total count of CPUs + format: int64 + type: integer + type: object + DeploymentGpuParameters: + description: Deployment GPU Parameters object + properties: + count: + description: Total count of GPUs + format: int64 + type: integer + type: + description: GPU Type + type: string + type: object + DeploymentMemoryParameters: + description: Deployment Memory Parameters object + properties: + capacityInGB: + description: Capacity in GB + format: int64 + type: integer + type: object + DeploymentStorageParameters: + description: Deployment Storage Parameters object + properties: + capacityInGB: + description: Capacity in GB + format: int64 + type: integer + type: object + DeploymentCpuParametersMeta: + description: Cloud Service Provider Deployment CPU Parameters object + properties: + count: + $ref: '#/components/schemas/CountableResource' + description: Countable Resource object + required: + - count + type: object + DeploymentGpuParametersMeta: + description: Cloud Service Provider Deployment GPU Parameters object + properties: + count: + $ref: '#/components/schemas/CountableResource' + description: Countable Resource object + type: + $ref: '#/components/schemas/EnumerableResource' + description: Enumerable Resource object + required: + - type + type: object + DeploymentMemoryParametersMeta: + description: Cloud Service Provider Deployment Memory Parameters object + properties: + capacityInGB: + $ref: '#/components/schemas/CountableResource' + description: Countable Resource object + required: + - capacityInGB + type: object + DeploymentStorageParametersMeta: + description: Cloud Service Provider Deployment Storage Parameters object + properties: + capacityInGB: + $ref: '#/components/schemas/CountableResource' + description: Countable Resource object + required: + - capacityInGB + type: object + ArtifactVersion: + description: Artifact version object + properties: + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + createdByUser: + description: Id of the user who created this version + type: string + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + customMetrics: + items: + $ref: '#/components/schemas/CustomMetricGroup' + type: array + description: + description: Description of the version + type: string + id: + description: Unique ID of the version + type: string + isSigned: + description: Indicates if the version is signed + type: boolean + malwareScanDate: + description: Scan date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + malwareScanStatus: + description: Malware scan status + enum: + - NOT_SCANNED + - IN_PROGRESS + - CLEAN + - SUSPICIOUS + - FAILED + - MALICIOUS + type: string + policy: + items: + type: string + type: array + releaseType: + description: Release type enum for the artifact version in the product lifecycle. + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + type: string + status: + description: Version status + enum: + - UPLOAD_PENDING + - UPLOAD_COMPLETE + type: string + storageVersion: + description: The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. + type: string + totalFileCount: + description: Total file count + format: int64 + type: integer + totalSizeInBytes: + description: Total size of the version in bytes + format: int64 + type: integer + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + type: object + Model: + description: Model object + properties: + accessType: + enum: + - LISTED + - EXCLUSIVE + - NOT_LISTED + type: string + application: + description: Application of the model + type: string + bias: + description: Text describing bias in the model + type: string + builtBy: + description: organization that built the repository + type: string + canGuestDownload: + description: Indicates if a guest user can download + type: boolean + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the model + type: string + displayName: + description: Display name + type: string + encryptionKeyId: + description: ID of the customer managed encryption key associated with this artifact + type: string + explainability: + description: Text describing explainability for this model + type: string + framework: + description: Framework used to train this model + type: string + hasPlayground: + description: indicate if the Model has AI Playground configured + type: boolean + hasSignedVersion: + description: Indicates if the model has any signed versions + type: boolean + isFavourite: + description: Flag indicating if model is user's favorite + type: boolean + isPlaygroundEnabled: + description: indicate if AI Playground is enabled in the catalog + type: boolean + isPublic: + description: Determines if model is publicly accessible + type: boolean + isReadOnly: + description: indicate if current user has read only permissions (deprecated) + type: boolean + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + latestVersionGpuModel: + description: GPU model and memory used for the latest version + type: string + latestVersionId: + description: 'Deprecated: Please use latestVersionIdStr instead. ID of the latest version' + format: int64 + type: integer + latestVersionIdStr: + description: ID of the latest version + type: string + latestVersionSizeInBytes: + description: Size of the latest version in bytes + format: int64 + type: integer + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + type: string + modelFormat: + description: Format of the model + type: string + name: + description: Unique name of the model + type: string + orgName: + description: Name of the org that the model belongs to + type: string + ownerName: + description: Name of model's owner + type: string + policyLabels: + items: + type: string + type: array + precision: + description: Precision this model was trained with + type: string + privacy: + description: Text describing the privacy for this model + type: string + productNames: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + publicDatasetUsed: + $ref: '#/components/schemas/Dataset' + publisher: + description: organization that published the repository + type: string + safetyAndSecurity: + description: Text for describing the safety and security in the model + type: string + shortDescription: + description: Short description of the model + type: string + teamName: + description: Name of the team that the model belongs to + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + versions: + items: + type: string + type: array + type: object + ModelVersion: + description: Model version object + properties: + accuracyReached: + description: Accuracy this model reached + format: float + type: number + batchSize: + description: Batch size this model was trained with + format: int64 + type: integer + createdByUser: + description: Id of the user who created this model + type: string + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + customMetrics: + items: + $ref: '#/components/schemas/CustomMetricGroup' + type: array + description: + description: Description of the model version + type: string + gpuModel: + description: GPU model and memory + type: string + id: + description: 'Deprecated: Please use versionId instead. Unique ID of the version' + format: int64 + type: integer + isSigned: + description: Indicates if the version is signed + type: boolean + malwareScanDate: + description: Scan date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + malwareScanStatus: + description: Malware scan status + enum: + - NOT_SCANNED + - IN_PROGRESS + - CLEAN + - SUSPICIOUS + - FAILED + - MALICIOUS + type: string + memoryFootprint: + description: Model size/memory footprint for inference + type: string + numberOfEpochs: + description: Number of epochs this model trained + format: int64 + type: integer + nvcfContainerConfiguration: + $ref: '#/components/schemas/NvcfContainerConfiguration' + description: NVCF container configuration parameters + nvcfDeploymentSpecification: + $ref: '#/components/schemas/NvcfDeploymentSpecification' + description: NVCF deployment specification + otherContents: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + ownerName: + description: Name of the user who owns this version + type: string + policy: + items: + type: string + type: array + releaseType: + description: Release type enum for the artifact version in the product lifecycle. + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + type: string + status: + description: Version status + enum: + - UPLOAD_PENDING + - UPLOAD_COMPLETE + type: string + storageVersion: + description: The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. + type: string + totalFileCount: + description: Total file count + format: int64 + type: integer + totalSizeInBytes: + description: Total size of the model in bytes + format: int64 + type: integer + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + versionId: + description: Unique version id. Please use this instead of 'id' + maxLength: 255 + type: string + type: object + ModelFile: + description: Model file object + properties: + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the file + type: string + path: + description: Relative file path from the root of the model + maxLength: 1023 + minLength: 1 + type: string + sha256_base64: + description: Base64 encoded sha256 hash of the artifact file + type: string + sizeInBytes: + description: Size of the file in bytes + format: int64 + minimum: 0 + type: integer + type: object + NimProfile: + properties: + buildable_profile: + type: boolean + checksum: + type: string + feat_lora: + type: boolean + form_factor: + type: string + gpu: + type: string + gpu_device: + type: string + inference_backend: + type: string + latency: + additionalProperties: {} + type: object + min_vram_per_device_gb: + format: double + type: number + pipeline_parallel_size: + format: int32 + type: integer + precision: + type: string + profile_id: + type: string + tensor_parallel_size: + format: int32 + type: integer + workspace_hash: + type: string + type: object + Recipe: + description: Recipe object + properties: + accessType: + enum: + - LISTED + - EXCLUSIVE + - NOT_LISTED + type: string + advanced: + description: Text for describing advanced information + type: string + application: + enum: + - CLASSIFICATION + - OBJECT_DETECTION + - SEGMENTATION + - TRANSLATION + - TEXT_TO_SPEECH + - RECOMMENDER + - SENTIMENT + - NLP + - KUBEFLOW_PIPELINE + - OTHER + - SPEAKER_VERIFICATION + - PUNCTUATION_AND_CAPITALIZATION + - DIALOG_STATE_TRACKING + - SPEAKER_DIARIZATION + - SPEAKER_RECOGNITION + - SPEECH_SYNTHESIS + - VOICE_ACTIVITY_DETECTION + - SPEECH_RECOGNITION + - LANGUAGE_MODELING + - NAMED_ENTITY_RECOGNITION + - TEXT_CLASSIFICATION + - TEXT_PROCESSING + - QUESTION_ANSWERING + - CONTENT_GENERATION + type: string + builtBy: + description: Organization that built the recipe + type: string + canGuestDownload: + description: Indicates if a guest user can download + type: boolean + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the recipe + type: string + displayName: + description: Display name + type: string + hasSignedVersion: + description: Indicates if the recipe has any signed versions + type: boolean + isFavourite: + description: Flag indicating if recipe is user's favorite + type: boolean + isPublic: + description: Determines if this recipe is publicly accessible + type: boolean + isReadOnly: + description: indicate if current user has read only permissions (deprecated) + type: boolean + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + latestVersionId: + description: 'Deprecated: Please use latestVersionIdStr instead. ID of the latest version' + format: int64 + type: integer + latestVersionIdStr: + description: ID of the latest version + type: string + latestVersionSizeInBytes: + description: Size of the latest version in bytes + format: int64 + type: integer + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + type: string + modelFormat: + description: Format of the model this recipe produces + type: string + name: + description: Unique name of the recipe + type: string + orgName: + description: Name of the org that the recipe belongs to + type: string + performance: + description: Text describing performance of the recipe results + type: string + policyLabels: + items: + type: string + type: array + precision: + enum: + - FP16 + - FP32 + - INT8 + - FPBOTH + - OTHER + - ALL + type: string + productNames: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + publicDatasetUsed: + $ref: '#/components/schemas/Dataset' + publisher: + description: Organization that published this recipe + type: string + quickStartGuide: + description: Text with a guide to getting started + type: string + relatedModels: + items: + $ref: '#/components/schemas/Model' + type: array + setup: + description: Text describing recipe setup + type: string + shortDescription: + description: Short description of the recipe + type: string + teamName: + description: Name of the team that the recipe belongs to + type: string + trainingFramework: + enum: + - TensorFlow + - Caffe2 + - CNTK + - Torch + - PyTorch + - MXNet + - Keras + - Other + - TransferLearningToolkit + - TensorFlow2 + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + type: object + RecipeVersion: + description: Recipe version object + properties: + accuracyReached: + description: Accuracy this recipe reached + format: float + type: number + batchSize: + description: Batch size this recipe was trained with + format: int64 + type: integer + createdByUser: + description: Id of the user who created this recipe + type: string + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + customMetrics: + items: + $ref: '#/components/schemas/CustomMetricGroup' + type: array + description: + description: Description of the recipe version + type: string + gpuModel: + description: GPU model and memory + type: string + id: + description: 'Deprecated: Please use versionId instead. Unique ID of the version' + format: int64 + type: integer + isSigned: + description: Indicates if the version is signed + type: boolean + malwareScanDate: + description: Scan date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + malwareScanStatus: + description: Malware scan status + enum: + - NOT_SCANNED + - IN_PROGRESS + - CLEAN + - SUSPICIOUS + - FAILED + - MALICIOUS + type: string + memoryFootprint: + description: recipe size/memory footprint for inference + type: string + numberOfEpochs: + description: Number of epochs this recipe trained + format: int64 + type: integer + otherContents: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + performance: + description: Text describing performance of the recipe results + type: string + policy: + items: + type: string + type: array + quickStartGuide: + description: Text with a guide to getting started + type: string + releaseNotes: + description: Text describing this release + type: string + releaseType: + description: Release type enum for the artifact version in the product lifecycle. + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + type: string + setup: + description: Text describing recipe setup + type: string + status: + description: Version status + enum: + - UPLOAD_PENDING + - UPLOAD_COMPLETE + type: string + storageVersion: + description: The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. + type: string + totalFileCount: + description: Total file count + format: int64 + type: integer + totalSizeInBytes: + description: Total size of the recipe in bytes + format: int64 + type: integer + versionId: + description: Unique version id. Please use this instead of 'id' + maxLength: 255 + type: string + type: object + RecipeFile: + description: Recipe file object + properties: + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the file + type: string + path: + description: Relative file path from the root of the recipe + maxLength: 1023 + minLength: 1 + type: string + sha256_base64: + description: Base64 encoded sha256 hash of the artifact file + type: string + sizeInBytes: + description: Size of the file in bytes + format: int64 + minimum: 0 + type: integer + type: object + File: + description: File object + properties: + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the file + type: string + path: + description: Relative file path from the root of the object + maxLength: 1023 + minLength: 1 + type: string + sizeInBytes: + description: Size of the file in bytes + format: int64 + minimum: 0 + type: integer + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + type: object + LicenseMetadata: + description: License information for the artifact + properties: + configuredLicenseTerms: + $ref: '#/components/schemas/ConfiguredLicenseTerms' + description: License information for the artifact + governingTerms: + description: Comprehensive terms and links related to the license + example: <p><strong>GOVERNING HOSTING TERMS:</strong> Use of the model is governed by the <a href='...'>NVIDIA Open Model Agreement</a>.</p> + maxLength: 1000 + pattern: ^[\s\S]*$ + type: string + licenseId: + description: License ID + example: NVIDIA proprietary + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + licenseVersion: + description: License version ID + example: v1.0 + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + needsAcceptance: + description: Indicator if user needs to accept this license + type: boolean + required: + - governingTerms + - licenseId + - licenseVersion + type: object + CountableResource: + description: Countable Resource object + properties: + defaultValue: + description: 'Deprecated: Default value. Please use actual CloudServiceProvider values instead' + format: int64 + type: integer + maxValue: + description: Maximum value + format: int64 + type: integer + minValue: + description: Minimum value + format: int64 + type: integer + type: object + EnumerableResource: + description: Enumerable Resource object + properties: + defaultItemName: + description: 'Deprecated: Default item name. Please use actual CloudServiceProvider values instead' + type: string + items: + items: + $ref: '#/components/schemas/EnumerableResourceItem' + type: array + type: object + CustomMetricGroup: + description: Defines the group of custom metrics. + properties: + attributes: + items: + $ref: '#/components/schemas/CustomMetric' + type: array + name: + maxLength: 255 + type: string + type: object + Dataset: + properties: + license: + description: License of the dataset + maxLength: 255 + type: string + link: + description: Link to the dataset + maxLength: 255 + type: string + name: + description: Name of the dataset + maxLength: 255 + type: string + type: object + NvcfContainerConfiguration: + description: NVCF container configuration parameters + properties: + apiBodyFormat: + description: API body format + type: string + containerArgs: + description: Container arguments + type: string + containerEnvironment: + items: + $ref: '#/components/schemas/MetaData' + type: array + containerImage: + description: Container Image + type: string + healthUri: + description: Health URI + type: string + inferencePort: + description: Inference port + type: string + inferenceUrl: + description: Inference url + type: string + models: + items: + $ref: '#/components/schemas/NvcfContainerModel' + type: array + type: object + NvcfDeploymentSpecification: + description: NVCF deployment specification + properties: + gpuCount: + description: GPU count + format: int32 + type: integer + gpuType: + description: GPU type + type: string + instanceType: + description: Instance type + type: string + maxConcurrency: + description: Maximum concurrency + format: int32 + type: integer + type: object + ConfiguredLicenseTerms: + description: License information for the artifact + properties: + download: + $ref: '#/components/schemas/ConfiguredLicenseTerm' + description: License information for the artifact + hosting: + $ref: '#/components/schemas/ConfiguredLicenseTerm' + description: License information for the artifact + type: object + EnumerableResourceItem: + description: Enumerable Resource Item object + properties: + displayName: + description: Display name + type: string + logo: + description: Logo URL + type: string + name: + description: Name + type: string + type: object + CustomMetric: + description: Custom metrics + properties: + key: + maxLength: 255 + type: string + value: + maxLength: 255 + type: string + type: object + MetaData: + properties: + key: + maxLength: 255 + type: string + value: + maxLength: 255 + type: string + type: object + NvcfContainerModel: + description: Models version object metadata + properties: + name: + description: Model name + type: string + uri: + description: Model URI + type: string + version: + description: Model version + type: string + type: object + ConfiguredLicenseTerm: + description: License information for the artifact + properties: + artifactType: + description: Artifact type + example: model + maxLength: 15 + pattern: ^[\s\S]*$ + type: string + generatedHtml: + description: Generated html + example: <p><strong>GOVERNING HOSTING TERMS:</strong> ...</p> + maxLength: 9999 + pattern: ^[\s\S]*$ + type: string + tags: + items: + $ref: '#/components/schemas/LicenseTag' + type: array + type: object + LicenseTag: + description: License tag information for individual term + properties: + category: + description: Category of the tag + example: terms + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + key: + description: Key identifier for the tag + example: nv-open-model + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + label: + description: License Label + example: NVIDIA Open Model Agreement + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + tag: + description: License tag name + example: Model Agreement + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + url: + description: Link to the hosted license + example: https://www.nvidia.com/.../nvidia-open-model-agreement/ + maxLength: 1000 + pattern: ^[\s\S]*$ + type: string + type: object + GetGpusResponse: + type: object + properties: + gpus: + type: array + items: + $ref: '#/components/schemas/GpuByPciResponse' + GetGpuByPciDeviceIdResponse: + type: object + properties: + gpu_by_pci_device_id: + type: array + items: + $ref: '#/components/schemas/GpuByPciResponse' + GetGpuByPciDeviceIdVendorIdResponse: + type: object + properties: + gpu_by_pci_device_id_vendor_id: + type: array + items: + $ref: '#/components/schemas/GpuByPciResponse' + x-stackQL-resources: + collections: + id: nvidia.catalog.collections + name: collections + title: Collections + methods: + list: + operation: + $ref: '#/paths/~1v2~1collections/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.collections + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + get: + operation: + $ref: '#/paths/~1v2~1collections~1{org_name}~1{collection_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.collection + request: + nativeCasing: kebab + get_by_team: + operation: + $ref: '#/paths/~1v2~1collections~1{org_name}~1{team_name}~1{collection_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.collection + request: + nativeCasing: kebab + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/collections/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/collections/methods/get' + - $ref: '#/components/x-stackQL-resources/collections/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + collection_artifacts: + id: nvidia.catalog.collection_artifacts + name: collection_artifacts + title: Collection Artifacts + methods: + list: + operation: + $ref: '#/paths/~1v2~1collections~1{org_name}~1{collection_name}~1artifacts~1{artifact_type}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifacts + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + list_by_team: + operation: + $ref: '#/paths/~1v2~1collections~1{org_name}~1{team_name}~1{collection_name}~1artifacts~1{artifact_type}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifacts + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/collection_artifacts/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/collection_artifacts/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + csps: + id: nvidia.catalog.csps + name: csps + title: Csps + methods: + list: + operation: + $ref: '#/paths/~1v2~1csps/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.cloudServiceProviders + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1csps/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1csps~1{csp_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1csps~1{csp_name}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1csps~1{csp_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/csps/methods/get' + - $ref: '#/components/x-stackQL-resources/csps/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/csps/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/csps/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/csps/methods/delete' + replace: [] + artifact_deployment_params: + id: nvidia.catalog.artifact_deployment_params + name: artifact_deployment_params + title: Artifact Deployment Params + methods: + list: + operation: + $ref: '#/paths/~1v2~1csps~1{artifact_type}~1{org_name}~1{artifact_name}~1deployments~1params/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.deploymentParameters + request: + nativeCasing: kebab + get: + operation: + $ref: '#/paths/~1v2~1csps~1{artifact_type}~1{org_name}~1{artifact_name}~1deployments~1{csp_name}~1params/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + list_by_team: + operation: + $ref: '#/paths/~1v2~1csps~1{artifact_type}~1{org_name}~1{team_name}~1{artifact_name}~1deployments~1params/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.deploymentParameters + request: + nativeCasing: kebab + get_by_team: + operation: + $ref: '#/paths/~1v2~1csps~1{artifact_type}~1{org_name}~1{team_name}~1{artifact_name}~1deployments~1{csp_name}~1params/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/artifact_deployment_params/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_deployment_params/methods/get' + - $ref: '#/components/x-stackQL-resources/artifact_deployment_params/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_deployment_params/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + csp_deployment_params: + id: nvidia.catalog.csp_deployment_params + name: csp_deployment_params + title: Csp Deployment Params + methods: + get: + operation: + $ref: '#/paths/~1v2~1csps~1{csp_name}~1deployments~1params/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1csps~1{csp_name}~1deployments~1params/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1csps~1{csp_name}~1deployments~1params/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1csps~1{csp_name}~1deployments~1params/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/csp_deployment_params/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/csp_deployment_params/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/csp_deployment_params/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/csp_deployment_params/methods/delete' + replace: [] + csp_deployment_params_meta: + id: nvidia.catalog.csp_deployment_params_meta + name: csp_deployment_params_meta + title: Csp Deployment Params Meta + methods: + get: + operation: + $ref: '#/paths/~1v2~1csps~1{csp_name}~1deployments~1params~1meta/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1csps~1{csp_name}~1deployments~1params~1meta/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1csps~1{csp_name}~1deployments~1params~1meta/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1csps~1{csp_name}~1deployments~1params~1meta/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/csp_deployment_params_meta/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/csp_deployment_params_meta/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/csp_deployment_params_meta/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/csp_deployment_params_meta/methods/delete' + replace: [] + gpus: + id: nvidia.catalog.gpus + name: gpus + title: Gpus + methods: + list: + operation: + $ref: '#/paths/~1v2~1gpus/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.gpus + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetGpusResponse' + transform: + body: |- + {{- $wrapped := printf "{\"gpus\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1gpus~1pci-device-id~1{pci_device_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.gpu_by_pci_device_id + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetGpuByPciDeviceIdResponse' + transform: + body: |- + {{- $wrapped := printf "{\"gpu_by_pci_device_id\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1gpus~1pci-device-id~1{pci_device_id}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1gpus~1pci-device-id~1{pci_device_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1gpus~1pci-device-id~1{pci_device_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get_by_vendor: + operation: + $ref: '#/paths/~1v2~1gpus~1pci-device-id~1{pci_device_id}~1pci-vendor-id~1{pci_vendor_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.gpu_by_pci_device_id_vendor_id + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetGpuByPciDeviceIdVendorIdResponse' + transform: + body: |- + {{- $wrapped := printf "{\"gpu_by_pci_device_id_vendor_id\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + get_by_vendor_subsystem: + operation: + $ref: '#/paths/~1v2~1gpus~1pci-device-id~1{pci_device_id}~1pci-vendor-id~1{pci_vendor_id}~1pci-subsystem-device-id~1{pci_subsystem_device_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create_by_vendor_subsystem: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1gpus~1pci-device-id~1{pci_device_id}~1pci-vendor-id~1{pci_vendor_id}~1pci-subsystem-device-id~1{pci_subsystem_device_id}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update_by_vendor_subsystem: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1gpus~1pci-device-id~1{pci_device_id}~1pci-vendor-id~1{pci_vendor_id}~1pci-subsystem-device-id~1{pci_subsystem_device_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete_by_vendor_subsystem: + operation: + $ref: '#/paths/~1v2~1gpus~1pci-device-id~1{pci_device_id}~1pci-vendor-id~1{pci_vendor_id}~1pci-subsystem-device-id~1{pci_subsystem_device_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/gpus/methods/get_by_vendor_subsystem' + - $ref: '#/components/x-stackQL-resources/gpus/methods/get_by_vendor' + - $ref: '#/components/x-stackQL-resources/gpus/methods/get' + - $ref: '#/components/x-stackQL-resources/gpus/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/gpus/methods/create_by_vendor_subsystem' + - $ref: '#/components/x-stackQL-resources/gpus/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/gpus/methods/update_by_vendor_subsystem' + - $ref: '#/components/x-stackQL-resources/gpus/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/gpus/methods/delete_by_vendor_subsystem' + - $ref: '#/components/x-stackQL-resources/gpus/methods/delete' + replace: [] + helm_chart_versions: + id: nvidia.catalog.helm_chart_versions + name: helm_chart_versions + title: Helm Chart Versions + methods: + list: + operation: + $ref: '#/paths/~1v2~1helm-charts~1{org_name}~1{artifact_name}~1versions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifactVersions + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + get: + operation: + $ref: '#/paths/~1v2~1helm-charts~1{org_name}~1{artifact_name}~1versions~1{version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifactVersion + request: + nativeCasing: camel + list_by_team: + operation: + $ref: '#/paths/~1v2~1helm-charts~1{org_name}~1{team_name}~1{artifact_name}~1versions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifactVersions + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + get_by_team: + operation: + $ref: '#/paths/~1v2~1helm-charts~1{org_name}~1{team_name}~1{artifact_name}~1versions~1{version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifactVersion + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/helm_chart_versions/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/helm_chart_versions/methods/get' + - $ref: '#/components/x-stackQL-resources/helm_chart_versions/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/helm_chart_versions/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + models: + id: nvidia.catalog.models + name: models + title: Models + methods: + list: + operation: + $ref: '#/paths/~1v2~1models/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.models + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + get: + operation: + $ref: '#/paths/~1v2~1models~1{org_name}~1{model_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.model + request: + nativeCasing: kebab + get_by_team: + operation: + $ref: '#/paths/~1v2~1models~1{org_name}~1{team_name}~1{model_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.model + request: + nativeCasing: kebab + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/models/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/models/methods/get' + - $ref: '#/components/x-stackQL-resources/models/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + model_versions: + id: nvidia.catalog.model_versions + name: model_versions + title: Model Versions + methods: + list: + operation: + $ref: '#/paths/~1v2~1models~1{org_name}~1{model_name}~1versions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.modelVersions + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + get: + operation: + $ref: '#/paths/~1v2~1models~1{org_name}~1{model_name}~1versions~1{version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.modelVersion + request: + nativeCasing: camel + list_by_team: + operation: + $ref: '#/paths/~1v2~1models~1{org_name}~1{team_name}~1{model_name}~1versions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.modelVersions + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + get_by_team: + operation: + $ref: '#/paths/~1v2~1models~1{org_name}~1{team_name}~1{model_name}~1versions~1{version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.modelVersion + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/model_versions/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/model_versions/methods/get' + - $ref: '#/components/x-stackQL-resources/model_versions/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/model_versions/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + model_files: + id: nvidia.catalog.model_files + name: model_files + title: Model Files + methods: + list: + operation: + $ref: '#/paths/~1v2~1models~1{org_name}~1{model_name}~1versions~1{version_id}~1files/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.modelFiles + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + list_by_team: + operation: + $ref: '#/paths/~1v2~1models~1{org_name}~1{team_name}~1{model_name}~1versions~1{version_id}~1files/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.modelFiles + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/model_files/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/model_files/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + nim_metadata: + id: nvidia.catalog.nim_metadata + name: nim_metadata + title: Nim Metadata + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nim~1{team}~1{nim_name}~1{tag}~1metadata/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/nim_metadata/methods/create' + update: [] + delete: [] + replace: [] + recipes: + id: nvidia.catalog.recipes + name: recipes + title: Recipes + methods: + list: + operation: + $ref: '#/paths/~1v2~1recipes/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipes + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + get: + operation: + $ref: '#/paths/~1v2~1recipes~1{org_name}~1{recipe_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipe + request: + nativeCasing: kebab + get_by_team: + operation: + $ref: '#/paths/~1v2~1recipes~1{org_name}~1{team_name}~1{recipe_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipe + request: + nativeCasing: kebab + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/recipes/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/recipes/methods/get' + - $ref: '#/components/x-stackQL-resources/recipes/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + recipe_versions: + id: nvidia.catalog.recipe_versions + name: recipe_versions + title: Recipe Versions + methods: + list: + operation: + $ref: '#/paths/~1v2~1recipes~1{org_name}~1{recipe_name}~1versions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeVersions + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + get: + operation: + $ref: '#/paths/~1v2~1recipes~1{org_name}~1{recipe_name}~1versions~1{version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeVersion + request: + nativeCasing: camel + list_by_team: + operation: + $ref: '#/paths/~1v2~1recipes~1{org_name}~1{team_name}~1{recipe_name}~1versions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeVersions + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + get_by_team: + operation: + $ref: '#/paths/~1v2~1recipes~1{org_name}~1{team_name}~1{recipe_name}~1versions~1{version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeVersion + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/recipe_versions/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/recipe_versions/methods/get' + - $ref: '#/components/x-stackQL-resources/recipe_versions/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/recipe_versions/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + recipe_files: + id: nvidia.catalog.recipe_files + name: recipe_files + title: Recipe Files + methods: + list: + operation: + $ref: '#/paths/~1v2~1recipes~1{org_name}~1{recipe_name}~1versions~1{version_id}~1files/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeFiles + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + list_by_team: + operation: + $ref: '#/paths/~1v2~1recipes~1{org_name}~1{team_name}~1{recipe_name}~1versions~1{version_id}~1files/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeFiles + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/recipe_files/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/recipe_files/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + resources: + id: nvidia.catalog.resources + name: resources + title: Resources + methods: + list: + operation: + $ref: '#/paths/~1v2~1resources/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipes + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + get: + operation: + $ref: '#/paths/~1v2~1resources~1{org_name}~1{recipe_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipe + request: + nativeCasing: kebab + get_by_team: + operation: + $ref: '#/paths/~1v2~1resources~1{org_name}~1{team_name}~1{recipe_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipe + request: + nativeCasing: kebab + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/resources/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/resources/methods/get' + - $ref: '#/components/x-stackQL-resources/resources/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + resource_versions: + id: nvidia.catalog.resource_versions + name: resource_versions + title: Resource Versions + methods: + list: + operation: + $ref: '#/paths/~1v2~1resources~1{org_name}~1{recipe_name}~1versions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeVersions + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + get: + operation: + $ref: '#/paths/~1v2~1resources~1{org_name}~1{recipe_name}~1versions~1{version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeVersion + request: + nativeCasing: camel + list_by_team: + operation: + $ref: '#/paths/~1v2~1resources~1{org_name}~1{team_name}~1{recipe_name}~1versions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeVersions + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + get_by_team: + operation: + $ref: '#/paths/~1v2~1resources~1{org_name}~1{team_name}~1{recipe_name}~1versions~1{version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeVersion + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/resource_versions/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/resource_versions/methods/get' + - $ref: '#/components/x-stackQL-resources/resource_versions/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/resource_versions/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + resource_files: + id: nvidia.catalog.resource_files + name: resource_files + title: Resource Files + methods: + list: + operation: + $ref: '#/paths/~1v2~1resources~1{org_name}~1{recipe_name}~1versions~1{version_id}~1files/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeFiles + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + list_by_team: + operation: + $ref: '#/paths/~1v2~1resources~1{org_name}~1{team_name}~1{recipe_name}~1versions~1{version_id}~1files/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeFiles + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/resource_files/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/resource_files/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + artifacts: + id: nvidia.catalog.artifacts + name: artifacts + title: Artifacts + methods: + list: + operation: + $ref: '#/paths/~1v2~1{artifact_type}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifacts + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + get: + operation: + $ref: '#/paths/~1v2~1{artifact_type}~1{org_name}~1{artifact_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifact + request: + nativeCasing: kebab + get_by_team: + operation: + $ref: '#/paths/~1v2~1{artifact_type}~1{org_name}~1{team_name}~1{artifact_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifact + request: + nativeCasing: kebab + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/artifacts/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/artifacts/methods/get' + - $ref: '#/components/x-stackQL-resources/artifacts/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + artifact_files: + id: nvidia.catalog.artifact_files + name: artifact_files + title: Artifact Files + methods: + list: + operation: + $ref: '#/paths/~1v2~1{artifact_type}~1{org_name}~1{artifact_name}~1versions~1{version_id}~1files/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifactFiles + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + list_by_team: + operation: + $ref: '#/paths/~1v2~1{artifact_type}~1{org_name}~1{team_name}~1{artifact_name}~1versions~1{version_id}~1files/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifactFiles + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/artifact_files/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_files/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + artifact_specs: + id: nvidia.catalog.artifact_specs + name: artifact_specs + title: Artifact Specs + methods: + get: + operation: + $ref: '#/paths/~1v2~1{artifact_type}~1{org_name}~1{artifact_name}~1spec/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get_by_team: + operation: + $ref: '#/paths/~1v2~1{artifact_type}~1{org_name}~1{team_name}~1{artifact_name}~1spec/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/artifact_specs/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_specs/methods/get' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.ngc.nvidia.com diff --git a/provider-dev/openapi/src/nvidia/v00.00.00000/services/nvcf_deployments.yaml b/provider-dev/openapi/src/nvidia/v00.00.00000/services/nvcf_deployments.yaml new file mode 100644 index 0000000..d35baea --- /dev/null +++ b/provider-dev/openapi/src/nvidia/v00.00.00000/services/nvcf_deployments.yaml @@ -0,0 +1,2364 @@ +openapi: 3.1.0 +info: + title: NVIDIA Cloud Functions - Deployments + description: 'NVCF deployments and GPU specifications, cluster groups and GPU inventory, registry credentials and telemetry endpoints (source: the published NVCF OpenAPI specification; served from api.ngc.nvidia.com).' + version: 2.261.2 +paths: + /v2/nvcf/clusterGroups: + get: + deprecated: true + description: 'Lists Cluster Groups for the current account. The response includes cluster groups defined specifically in the current account and publicly available cluster groups such as GFN, OCI, etc. Requires a bearer token with ''list_cluster_groups'' scope in HTTP Authorization header. ' + operationId: getClusterGroups + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ClusterGroupsResponse' + description: OK + summary: List Cluster Groups + tags: + - Cluster Groups and GPUs + parameters: [] + /v2/nvcf/deployments/functions/{function_id}/versions/{function_version_id}: + get: + description: 'Allows Account Admins to retrieve the deployment details of the specified function version. Access to this endpoint mandates a bearer token with ''deploy_function'' scope in the HTTP Authorization header. ' + operationId: getFunctionDeployment + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version id + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentResponse' + description: OK + summary: Get Function Deployment Details + tags: + - Function Deployment + post: + description: 'Initiates deployment for the specified function version. Upon invocation of this endpoint, the function''s status transitions to ''DEPLOYING''. If the specified function version is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with ''deploy_function'' scope in the HTTP Authorization header. ' + operationId: createFunctionDeployment + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version id + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FunctionDeploymentRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentResponse' + description: OK + summary: Deploy Function + tags: + - Function Deployment + put: + deprecated: true + description: ' Deprecated and will be removed soon. Use a single GPU specification update method instead. Updates the deployment specs of the specified function version. It''s important to note that GPU type and backend configurations cannot be modified through this endpoint. If the specified function is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with ''deploy_function'' scope in the HTTP Authorization header. ' + operationId: updateFunctionDeployment + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version id + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateFunctionDeploymentRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentResponse' + description: OK + summary: Update Function Deployment + tags: + - Function Deployment + delete: + description: 'Deletes the deployment associated with the specified function. Upon deletion, any active instances will be terminated, and the function''s status will transition to ''INACTIVE''. To undeploy a function version gracefully, specify ''graceful=true'' query parameter, allowing current tasks to complete before terminating the instances. If the specified function version is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with ''deploy_function'' scope in the HTTP Authorization header. ' + operationId: deleteFunctionDeployment + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version id + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Query param to deactivate function for graceful shutdown + in: query + name: graceful + required: false + schema: + default: false + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FunctionResponse' + description: OK + summary: Delete Function Deployment + tags: + - Function Deployment + /v2/nvcf/deployments/{deployment_id}: + get: + description: 'Allows Account Admins to retrieve the deployment details of the specified deployment id. Access to this endpoint mandates a bearer token with ''deploy_function'' scope in the HTTP Authorization header. ' + operationId: getFunctionDeployment_1 + parameters: + - description: Deployment id + in: path + name: deployment_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentResponse' + description: OK + summary: Get Function Deployment Details + tags: + - Function Deployment + /v2/nvcf/deployments/{deployment_id}/gpu-specifications/{gpu_spec_id}: + patch: + description: ' Updates the GPU specification of the specified function version''s deployment. It''s important to note that GPU type and backend configurations cannot be modified through this endpoint. If the specified function is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with ''deploy_function'' scope in the HTTP Authorization header. ' + operationId: updateGpuSpecification + parameters: + - description: Deployment id + in: path + name: deployment_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: GPU Specification id + in: path + name: gpu_spec_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateGpuSpecificationRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateGpuSpecificationResponse' + description: OK + summary: Update the specified GPU specification under the specified deployment + tags: + - Function Deployment + /v2/nvcf/recognized-registries: + get: + description: 'Lists all the registries that are recognized by NVCF. Only when a registry is recognized by NVCF that the users can add its credential to their account and then use it to create functions. Requires a bearer token in the HTTP Authorization header with ''manage_registries'' scope. ' + operationId: getRecognizedRegistries + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecognizedRegistriesResponse' + description: OK + summary: List Recognized Registries + tags: + - Registry Credential Management + parameters: [] + /v2/nvcf/registry-credentials: + get: + description: 'Lists all the registry credentials associated with the authenticated NVIDIA Cloud Account. Requires a bearer token in the HTTP Authorization header with ''manage_registries'' scope. ' + operationId: listRegistryCredentialDetails + parameters: + - description: | + Filters registry credentials using the specified 'artifactType' query param. + in: query + name: artifactType + required: false + schema: + default: + - CONTAINER + - HELM + - MODEL + - RESOURCE + items: + enum: + - CONTAINER + - HELM + - MODEL + - RESOURCE + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + - description: | + Filters registry credentials using the specified 'provisionedBy' query param. + in: query + name: provisionedBy + required: false + schema: + default: + - SYSTEM + - USER + items: + enum: + - SYSTEM + - USER + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListRegistryCredentialDetailsResponse' + description: OK + summary: List Registry Credentials + tags: + - Registry Credential Management + post: + description: 'Adds a new registry credential to the account. Requires a bearer token in the HTTP Authorization header with ''manage_registries'' scope. ' + operationId: addRegistryCredential + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AddRegistryCredentialRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RegistryCredentialDetailsResponse' + description: OK + summary: Add new registry credential to the account + tags: + - Registry Credential Management + parameters: [] + /v2/nvcf/registry-credentials/{registry_credential_id}: + get: + description: 'Retrieves detailed information of the specified registry credential associated with the authenticated NVIDIA Cloud Account. Requires a bearer token in the HTTP Authorization header with ''manage_registries'' scope. ' + operationId: getRegistryCredentialDetails + parameters: + - description: Registry Credential id + in: path + name: registry_credential_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RegistryCredentialDetailsResponse' + description: OK + summary: Get Registry Credential Details + tags: + - Registry Credential Management + patch: + description: 'Updates the secret and/or the artifact types associated with the specified registry credential. Artifact types specified in the request body are added to the set of artifact types that already exist for the specified registry credential. Requires a bearer token in the HTTP Authorization header with ''manage_registries'' scope. ' + operationId: updateRegistryCredential + parameters: + - description: Registry Credential id + in: path + name: registry_credential_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateRegistryCredentialRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RegistryCredentialDetailsResponse' + description: OK + summary: Update registry credential + tags: + - Registry Credential Management + delete: + description: 'Deletes the specified registry credential associated with the authenticated NVIDIA Cloud Account. Requires a bearer token in the HTTP Authorization header with ''manage_registries'' scope. ' + operationId: deleteRegistryCredential + parameters: + - description: Registry Credential id + in: path + name: registry_credential_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '204': + description: No Content + summary: Delete Registry Credential + tags: + - Registry Credential Management + /v2/nvcf/secrets/telemetries/{telemetry_id}: + put: + description: 'Updates secret for the specific telemetry Id within NVIDIA Cloud Account. This endpoint requires a bearer token with ''update_secrets'' scope in the HTTP Authorization header. ' + operationId: updateTelemetrySecret + parameters: + - description: NVIDIA Cloud Account Id + in: path + name: telemetry_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateTelemetrySecretRequest' + required: true + responses: + '204': + description: No Content + summary: Update secret for a specific Telemetry Id + tags: + - User Secret Management + /v2/nvcf/telemetries: + get: + description: 'Retrieves telemetry configurations for a specific NVIDIA Cloud Account. requires a bearer token with ''manage_telemetries'' scope in the HTTP Authorization header. ' + operationId: getTelemetriesByAccount + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListTelemetryResponse' + description: OK + summary: List Telemetries + tags: + - Telemetry Management + parameters: [] + post: + description: 'Creates telemetry endpoints for NVIDIA Cloud Accounts. requires a bearer token with ''manage_telemetries'' scope in the HTTP Authorization header. ' + operationId: createTelemetry + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TelemetryRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TelemetryResponse' + description: OK + summary: Create Telemetry + tags: + - Telemetry Management + parameters: [] + /v2/nvcf/telemetries/{telemetry_id}: + get: + description: 'Retrieves the details of a specific telemetry configuration by its ID. requires a bearer token with ''manage_telemetries'' scope in the HTTP Authorization header. ' + operationId: getTelemetry + parameters: + - in: path + name: telemetry_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TelemetryResponse' + description: OK + summary: Get Telemetry Details + tags: + - Telemetry Management + delete: + description: 'Deletes a specific telemetry configuration for a NVIDIA Cloud Account. requires a bearer token with ''manage_telemetries'' scope in the HTTP Authorization header. If there any functions that are dependent on the Telemetry that is being deleted, then response with 400 status code will be returned. ' + operationId: deleteTelemetry + parameters: + - in: path + name: telemetry_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '204': + description: No Content + '400': + description: Cannot be deleted till Functions depend on it + summary: Delete Telemetry + tags: + - Telemetry Management +components: + schemas: + ClusterGroupsResponse: + properties: + clusterGroups: + items: + $ref: '#/components/schemas/ClusterGroup' + maxItems: 2147483647 + minItems: 0 + type: array + type: object + FunctionResponse: + description: Response body with function details + properties: + function: + $ref: '#/components/schemas/FunctionDto' + description: Function details + required: + - function + type: object + DeploymentResponse: + description: Function Deployment Response + properties: + deployment: + $ref: '#/components/schemas/FunctionDeploymentDto' + description: Deployment details + required: + - deployment + type: object + FunctionDeploymentRequest: + description: Request to deploy a function + properties: + deploymentSpecifications: + description: GPU specs with GPU, instance-type, clusters etc. details + items: + $ref: '#/components/schemas/GpuSpecificationDto' + maxItems: 2147483647 + minItems: 1 + type: array + required: + - deploymentSpecifications + type: object + UpdateFunctionDeploymentRequest: + description: Request to update function deployment spec + properties: + deploymentSpecifications: + description: Deployment specs with GPU, instance-type, etc. details for update request + items: + $ref: '#/components/schemas/UpdateGpuSpecificationDto' + maxItems: 2147483647 + minItems: 1 + type: array + required: + - deploymentSpecifications + type: object + UpdateGpuSpecificationRequest: + description: Request to update single function deployment GPU Specification + properties: + autoscalingConfiguration: + $ref: '#/components/schemas/AutoscalingConfigurationDto' + description: Customizable Autoscaling configuration + autoscalingConfigurationPolicy: + description: 'Autoscaling configuration policy. CUSTOM_CONFIGURATION (default): use the provided autoscalingConfig. PLATFORM_CONFIGURATION: remove custom config and use platform defaults.' + enum: + - CUSTOM_CONFIGURATION + - PLATFORM_CONFIGURATION + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + maxInstances: + description: Maximum number of instances for the deployment + format: int32 + maximum: 2147483647 + minimum: 0 + type: integer + nullable: true + minInstances: + description: Minimum number of instances for the deployment + format: int32 + maximum: 2147483647 + minimum: 0 + type: integer + nullable: true + type: object + UpdateGpuSpecificationResponse: + description: Update GPU Specification Response + properties: + gpuSpecification: + $ref: '#/components/schemas/GpuSpecificationDto' + description: GPU Specification details + required: + - gpuSpecification + type: object + RecognizedRegistriesResponse: + description: Response body for recognized registries endpoint + properties: + recognizedRegistries: + additionalProperties: + items: + additionalProperties: + type: string + type: object + type: array + description: Recognized registries + type: object + type: object + ListRegistryCredentialDetailsResponse: + description: Response body containing list of registry credentials + properties: + registryCredentials: + description: List of registry credentials + items: + $ref: '#/components/schemas/RegistryCredentialDetailsDto' + maxItems: 2147483647 + minItems: 0 + type: array + required: + - registryCredentials + type: object + AddRegistryCredentialRequest: + description: Request body to add a registry credential to an account + properties: + artifactTypes: + description: Artifact types that can be retrieved using this credential + items: + enum: + - CONTAINER + - HELM + - MODEL + - RESOURCE + type: string + maxItems: 2147483647 + minItems: 1 + type: array + uniqueItems: true + description: + description: Optional registry credential description + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + registryHostname: + description: Registry hostname + format: UTF-8 + maxLength: 255 + minLength: 1 + pattern: (?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{1,63}(?<!-)\.)+[a-zA-Z0-9]{2,63}$) + type: string + secret: + $ref: '#/components/schemas/SecretDto' + description: Registry credential - secret value must be base64 encoded string in username:password format + tags: + description: Optional set of tags + items: + pattern: '[a-zA-Z0-9\-_:=]+' + type: string + maxItems: 64 + minItems: 0 + type: array + uniqueItems: true + nullable: true + required: + - artifactTypes + - registryHostname + - secret + type: object + RegistryCredentialDetailsResponse: + description: Response body for Registry Credential operations + properties: + registryCredential: + $ref: '#/components/schemas/RegistryCredentialDetailsDto' + description: Registry credential details + required: + - registryCredential + type: object + UpdateRegistryCredentialRequest: + description: Request body to update registry credential + properties: + artifactTypeEnums: + description: Optional artifact types to be added to the existing ones + items: + enum: + - CONTAINER + - HELM + - MODEL + - RESOURCE + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + secret: + $ref: '#/components/schemas/SecretDto' + description: Registry credential - secret value must be base64 encoded string in username:password format + type: object + UpdateTelemetrySecretRequest: + description: Request payload to update secret + properties: + secret: + $ref: '#/components/schemas/SecretDto' + description: Telemetry secret + required: + - secret + type: object + ListTelemetryResponse: + description: Response containing a list of telemetry configurations. + properties: + telemetries: + description: List of telemetry configurations. + items: + $ref: '#/components/schemas/TelemetryDto' + maxItems: 2147483647 + minItems: 0 + type: array + type: object + TelemetryRequest: + description: Data Transfer Object (DTO) representing a telemetry request + properties: + endpoint: + description: Telemetry endpoint URL + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + protocol: + description: Protocol used for communication + enum: + - HTTP + - GRPC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + provider: + description: Telemetry provider + enum: + - PROMETHEUS + - GRAFANA_CLOUD + - SPLUNK + - DATADOG + - SERVICENOW + - KRATOS + - KRATOS_THANOS + - TIMESTREAM + - VICTORIAMETRICS + - AZURE_MONITOR + - OTEL_COLLECTOR + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + secret: + $ref: '#/components/schemas/SecretDto' + description: Single secret associated with the telemetry configuration + types: + description: Set of telemetry data types + items: + enum: + - LOGS + - METRICS + - TRACES + type: string + maxItems: 2147483647 + minItems: 1 + type: array + uniqueItems: true + required: + - endpoint + - protocol + - provider + - secret + - types + type: object + TelemetryResponse: + description: Data Transfer Object (DTO) representing a telemetry response + properties: + telemetry: + $ref: '#/components/schemas/TelemetryDto' + description: Telemetry details + type: object + ClusterGroup: + properties: + authorizedNcaIds: + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + clusters: + items: + $ref: '#/components/schemas/Cluster' + maxItems: 2147483647 + minItems: 0 + type: array + gpus: + items: + $ref: '#/components/schemas/Gpu' + maxItems: 2147483647 + minItems: 0 + type: array + id: + format: uuid + maxLength: 36 + minLength: 36 + type: string + name: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + ncaId: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + type: object + FunctionDto: + description: Data Transfer Object (DTO) representing a function + properties: + activeInstances: + description: List of active instances for this function. + items: + $ref: '#/components/schemas/InstanceDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + apiBodyFormat: + description: Invocation request body format + enum: + - PREDICT_V2 + - CUSTOM + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + containerArgs: + description: Args used to launch the container + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + containerEnvironment: + description: Environment settings used to launch the container + items: + $ref: '#/components/schemas/ContainerEnvironmentEntryDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + containerImage: + description: Optional custom container + format: uri + type: string + nullable: true + createdAt: + description: Function creation timestamp + format: date-time + maxLength: 30 + minLength: 8 + type: string + description: + description: Function/version description + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + functionType: + description: Used to indicate a STREAMING function. Defaults to DEFAULT. + enum: + - DEFAULT + - STREAMING + - LLM + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + health: + $ref: '#/components/schemas/HealthDto' + description: Function health configuration + healthUri: + deprecated: true + description: Health endpoint for the container or helmChart. Deprecated, use health.uri instead. + format: uri + type: string + helmChart: + description: Optional Helm Chart + format: uri + type: string + nullable: true + helmChartServiceName: + description: | + Helm Chart Service Name specified only when helmChart property is specified + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + id: + description: Unique function id + format: uuid + maxLength: 36 + minLength: 36 + type: string + inferencePort: + description: Optional port number where the inference listener is running - defaults to 8000 for Triton + format: int32 + maximum: 2147483647 + minimum: -2147483648 + type: integer + nullable: true + inferenceUrl: + description: Entrypoint for invoking the container to process requests + format: uri + type: string + nullable: true + llmInvocationConfig: + $ref: '#/components/schemas/LlmInvocationConfigDto' + description: Optional function-level LLM invocation configuration. + models: + description: Optional list of models + items: + $ref: '#/components/schemas/FunctionModelDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + name: + description: Function name + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + ncaId: + description: NVIDIA Cloud Account Id + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + ownedByDifferentAccount: + description: | + Indicates whether the function is owned by another account. If the account + that is being used to lookup functions happens to be authorized to invoke/list + this function which is owned by a different account, then this field is set + to true and ncaId will contain the id of the account that owns the function. + Otherwise, this field is not set as it defaults to false. + type: boolean + nullable: true + rateLimit: + $ref: '#/components/schemas/RateLimitDto' + description: Optional rate limit policy + resources: + description: Optional set of resources. + items: + $ref: '#/components/schemas/ArtifactDto' + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + secrets: + description: Optional secret names + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + status: + description: Function status + enum: + - ACTIVE + - DEPLOYING + - ERROR + - INACTIVE + - DELETED + - DEGRADED + - DEGRADING + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + tags: + description: Optional set of tags. Maximum allowed number of tags per function is 64. Maximum length of each tag is 128 chars. + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + telemetries: + $ref: '#/components/schemas/TelemetriesDto' + description: Optional telemetry configuration for the function + versionId: + description: Unique function version id + format: uuid + maxLength: 36 + minLength: 36 + type: string + required: + - createdAt + - functionType + - healthUri + - id + - name + - ncaId + - status + - versionId + type: object + FunctionDeploymentDto: + description: Function deployment response + properties: + createdAt: + description: Function deployment creation timestamp + format: date-time + maxLength: 30 + minLength: 8 + type: string + deploymentId: + description: Last deployment id + format: uuid + maxLength: 36 + minLength: 36 + type: string + deploymentSpecifications: + description: Function deployment details + items: + $ref: '#/components/schemas/GpuSpecificationDto' + maxItems: 2147483647 + minItems: 0 + type: array + functionId: + description: Function id + format: uuid + maxLength: 36 + minLength: 36 + type: string + functionName: + description: Function name + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + functionStatus: + description: Function status + enum: + - ACTIVE + - DEPLOYING + - ERROR + - INACTIVE + - DELETED + - DEGRADED + - DEGRADING + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + functionVersionId: + description: Function version id + format: uuid + maxLength: 36 + minLength: 36 + type: string + healthInfo: + description: | + Health info for a deployment specification is included only if there are any + issues/errors. + items: + $ref: '#/components/schemas/DeploymentHealthDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + lastUpdatedAt: + description: Function deployment modification timestamp + format: date-time + maxLength: 30 + minLength: 8 + type: string + ncaId: + description: NVIDIA Cloud Account Id + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + required: + - createdAt + - deploymentId + - deploymentSpecifications + - functionId + - functionName + - functionStatus + - functionVersionId + - lastUpdatedAt + - ncaId + type: object + GpuSpecificationDto: + description: Data Transfer Object(DTO) representing GPU specification. + properties: + attributes: + description: | + Specific cluster attributes/capabilities to deploy functions. For example, + HIPPA Compliant, Confidential Compute Compliant, etc. + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + autoscalingConfiguration: + $ref: '#/components/schemas/AutoscalingConfigurationDto' + description: Customizable autoscaling configuration + availabilityZones: + description: List of availability-zones(or clusters) in the cluster group + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + backend: + description: Use clusters instead of this property. Legacy property typically used when deploying a function to GFN. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + clusters: + description: | + Specific clusters powered by the selected instance-type to deploy function. + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + configuration: + additionalProperties: true + description: | + Typically used when the function is based on Helm Charts to substitute + placeholders in values yaml. + type: object + cpuArch: + description: CPU Architecture details + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + driverVersion: + description: GPU driver version + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + gpu: + description: GPU name from the cluster + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + gpuMemory: + description: Amount of GPU memory + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + gpuSpecificationId: + description: GPU specification id + format: uuid + maxLength: 36 + minLength: 36 + type: string + nullable: true + helmValidationPolicy: + $ref: '#/components/schemas/HelmValidationPolicyDto' + description: Helm validation policy + instanceType: + description: Instance type, based on GPU, assigned to a Worker + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + maxInstances: + description: Maximum number of instances for the deployment + format: int32 + maximum: 2147483647 + minimum: 0 + type: integer + maxRequestConcurrency: + description: Max request concurrency between 1 (default) and 16384. + format: int32 + maximum: 16384 + minimum: 1 + type: integer + nullable: true + minInstances: + description: Minimum number of instances for the deployment + format: int32 + maximum: 2147483647 + minimum: 0 + type: integer + os: + description: Operating System details + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + regions: + description: | + List of regions allowed to deploy. The instance or worker node will be in one of + the specified geographical regions. + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + storage: + description: Amount of available storage, e.g. 80G + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + systemMemory: + description: Amount of RAM + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + required: + - gpu + - instanceType + - maxInstances + - minInstances + type: object + UpdateGpuSpecificationDto: + description: Data Transfer Object (DTO) representing GPU specification for Deployment Update case. + properties: + backend: + description: | + Backend/CSP where the GPU powered instance has been launched. The original value + would not be updated and it should be the same as original. The field is required + only for validation. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + clusters: + description: | + Specific clusters within instance or worker node powered by the selected + instance-type to deploy function. The original value would not be updated and it + should be the same as original. The field is required only for validation. + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + gpu: + description: 'GPU name from the cluster. Deprecated: this is read-only field, should not be specified in update request.' + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + gpuSpecificationId: + description: GPU specification id + format: uuid + maxLength: 36 + minLength: 36 + type: string + nullable: true + instanceType: + description: 'Instance type, based on GPU, assigned to a Worker. Deprecated: this is read-only field, should not be specified in update request.' + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + maxInstances: + description: Maximum number of instances for the deployment + format: int32 + maximum: 2147483647 + minimum: 0 + type: integer + maxRequestConcurrency: + description: Max request concurrency between 1 (default) and 16384. + format: int32 + maximum: 16384 + minimum: 1 + type: integer + nullable: true + minInstances: + description: Minimum number of instances for the deployment + format: int32 + maximum: 2147483647 + minimum: 0 + type: integer + required: + - maxInstances + - minInstances + type: object + AutoscalingConfigurationDto: + description: Data Transfer Object(DTO) representing autoscaling configuration + properties: + scaleDownDetails: + $ref: '#/components/schemas/ScalingDetails' + description: Configuration for scaling down + scaleUpDetails: + $ref: '#/components/schemas/ScalingDetails' + description: Configuration for scaling up + type: object + RegistryCredentialDetailsDto: + description: DTO representing a registry credential + properties: + artifactTypes: + description: Registry type + items: + enum: + - CONTAINER + - HELM + - MODEL + - RESOURCE + type: string + maxItems: 2147483647 + minItems: 1 + type: array + uniqueItems: true + createdAt: + description: Timestamp for registry credential creation + format: date-time + maxLength: 30 + minLength: 8 + type: string + description: + description: Registry credential description + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + keyType: + description: Optional registry credential key type + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + lastUpdatedAt: + description: Timestamp for last registry credential update + format: date-time + maxLength: 30 + minLength: 8 + type: string + ncaId: + description: NVIDIA Cloud Account Id owning the Registry Credential + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + provisionedBy: + description: Registry credential provisioned by system or user + enum: + - SYSTEM + - USER + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + registryCredentialId: + description: Registry Credential Id + format: uuid + maxLength: 36 + minLength: 36 + type: string + registryCredentialName: + description: Registry Credential name + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + registryHostname: + description: Registry hostname + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + registryName: + description: Recognized registry name + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + tags: + description: Optional set of tags + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + required: + - artifactTypes + - createdAt + - lastUpdatedAt + - ncaId + - provisionedBy + - registryCredentialId + - registryCredentialName + - registryHostname + - registryName + type: object + SecretDto: + description: Data Transfer Object(DTO) representing secret name/value pair + properties: + name: + description: Secret name + format: UTF-8 + maxLength: 48 + minLength: 1 + pattern: ^[a-z0-9A-Z][a-z0-9A-Z\_\.\-]*$ + type: string + value: + description: Secret value must be a string or JSON object and 1 - 32768 chars long + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + required: + - name + - value + type: object + TelemetryDto: + description: Data Transfer Object (DTO) for Telemetry configurations + properties: + createdAt: + description: Telemetry creation timestamp + format: date-time + maxLength: 30 + minLength: 8 + type: string + endpoint: + description: URL for the telemetry endpoint + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + name: + description: Telemetry name + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + protocol: + description: Protocol used for communication + enum: + - HTTP + - GRPC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + provider: + description: Telemetry provider + enum: + - PROMETHEUS + - GRAFANA_CLOUD + - SPLUNK + - DATADOG + - SERVICENOW + - KRATOS + - KRATOS_THANOS + - TIMESTREAM + - VICTORIAMETRICS + - AZURE_MONITOR + - OTEL_COLLECTOR + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + telemetryId: + description: Unique telemetry ID + format: uuid + maxLength: 36 + minLength: 36 + type: string + types: + description: Set of telemetry data types + items: + enum: + - LOGS + - METRICS + - TRACES + type: string + maxItems: 2147483647 + minItems: 1 + type: array + uniqueItems: true + required: + - createdAt + - endpoint + - name + - protocol + - provider + - telemetryId + - types + type: object + Cluster: + properties: + id: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + k8sVersion: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + name: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + type: object + Gpu: + properties: + instanceTypes: + items: + $ref: '#/components/schemas/InstanceType' + maxItems: 2147483647 + minItems: 0 + type: array + name: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + type: object + InstanceDto: + description: Data Transfer Object(DTO) representing an instance + properties: + backend: + description: Backend where the instance is running + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + functionId: + description: Function executing on the instance + format: uuid + maxLength: 36 + minLength: 36 + type: string + functionVersionId: + description: Function version executing on the instance + format: uuid + maxLength: 36 + minLength: 36 + type: string + gpu: + description: GPU name powering the instance + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + icmsRequestId: + description: ICMS request-id used to launch this instance + format: uuid + maxLength: 36 + minLength: 36 + type: string + instanceCreatedAt: + description: Instance creation timestamp + format: date-time + maxLength: 30 + minLength: 8 + type: string + instanceId: + description: Unique id of the instance + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + instanceStatus: + description: Instance status + enum: + - ACTIVE + - STARTING + - RUNNING + - ERRORED + - PREEMPTED + - DELETED + - TERMINATED + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + instanceType: + description: GPU instance-type powering the instance + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + instanceUpdatedAt: + description: Instance's last updated timestamp + format: date-time + maxLength: 30 + minLength: 8 + type: string + location: + description: Location such as zone name or region where the instance is running + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + ncaId: + description: NVIDIA Cloud Account Id that owns the function running on the instance + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + type: object + ContainerEnvironmentEntryDto: + description: Data Transfer Object(DTO) representing a container environment entry + properties: + key: + description: Container environment key + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + value: + description: Container environment value + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + required: + - key + - value + type: object + HealthDto: + description: Data Transfer Object(DTO) representing a function's health configuration + properties: + expectedStatusCode: + description: Expected return status code considered as successful. + format: int32 + maximum: 2147483647 + minimum: -2147483648 + type: integer + port: + description: Port number where the health listener is running + format: int32 + maximum: 2147483647 + minimum: 0 + type: integer + protocol: + description: HTTP/gPRC protocol type for health endpoint + enum: + - HTTP + - gRPC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + timeout: + description: ISO 8601 duration string in PnDTnHnMn.nS format + example: PT10S + format: duration + type: string + uri: + description: Health endpoint for the container or the helmChart + format: uri + type: string + required: + - expectedStatusCode + - port + - protocol + - timeout + - uri + type: object + LlmInvocationConfigDto: + description: Function-level LLM invocation configuration. + properties: + priority: + $ref: '#/components/schemas/PriorityDto' + description: Function-level request priority configuration. + type: object + FunctionModelDto: + description: Model associated with a function, including optional LLM routing metadata + properties: + llmConfig: + $ref: '#/components/schemas/LlmConfigDto' + description: LLM-specific configuration for this model. Only relevant for LLM-type functions. + name: + description: Model name + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + uri: + description: Model URI. Optional for LLM-type functions. + format: uri + type: string + nullable: true + version: + description: Model version. Optional for LLM-type functions. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + required: + - name + type: object + RateLimitDto: + description: Data Transfer Object(DTO) representing Rate limit config + properties: + exemptedNcaIds: + description: NCA ID Exemptions + items: + type: string + maxItems: 32 + minItems: 0 + type: array + uniqueItems: true + nullable: true + perNcaIdRate: + additionalProperties: + type: string + description: Per NCA ID Rate + type: object + nullable: true + perUserRate: + description: Per-user rate, intended for traffic authenticated with an invocation delegation token (InvocationToken). When set, this single rate is enforced individually against every unique caller identity, in addition to the NCA-tier limit. + format: UTF-8 + maxLength: 262144 + minLength: 0 + pattern: ^(?!.*-([SMHD]).*-\1)[1-9]\d*-[SMHD](,\s*[1-9]\d*-[SMHD])*$ + type: string + nullable: true + rateLimit: + description: Rate + format: UTF-8 + maxLength: 262144 + minLength: 0 + pattern: ^(?!.*-([SMHD]).*-\1)[1-9]\d*-[SMHD](,\s*[1-9]\d*-[SMHD])*$ + type: string + nullable: true + syncCheck: + description: Sync check. Defaults to false + type: boolean + nullable: true + type: object + ArtifactDto: + description: Data Transfer Object(DTO) representing an artifact + properties: + name: + description: Artifact name + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + uri: + description: Artifact URI + format: uri + type: string + version: + description: Artifact version + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + required: + - name + - uri + - version + type: object + TelemetriesDto: + description: Telemetry configuration for logs, metrics, and traces. + properties: + logsTelemetryId: + description: UUID representing the logs telemetry. + format: uuid + maxLength: 36 + minLength: 36 + type: string + nullable: true + metricsTelemetryId: + description: UUID representing the metrics telemetry. + format: uuid + maxLength: 36 + minLength: 36 + type: string + nullable: true + tracesTelemetryId: + description: UUID representing the traces telemetry. + format: uuid + maxLength: 36 + minLength: 36 + type: string + nullable: true + type: object + DeploymentHealthDto: + description: Data Transfer Object(DTO) representing deployment error + properties: + backend: + description: Backend/CSP where the GPU powered instance will be launched + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + error: + description: Deployment error + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + gpu: + description: GPU Type as per SDD + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + icmsRequestId: + description: ICMS Request ID + format: uuid + maxLength: 36 + minLength: 36 + type: string + instanceType: + description: Instance type + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + required: + - backend + - error + - gpu + - icmsRequestId + type: object + HelmValidationPolicyDto: + description: Data Transfer Object(DTO) representing Helm validation policy + properties: + extraKubernetesTypes: + description: | + An API Group in Kubernetes is a collection of related functionality. + When present, must contain at least one entry; each entry must be a valid + KubernetesType (group, version, kind). + items: + $ref: '#/components/schemas/KubernetesType' + maxItems: 2147483647 + minItems: 1 + type: array + nullable: true + name: + description: Helm validation policy name. + enum: + - Default + - Unrestricted + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + required: + - name + type: object + ScalingDetails: + properties: + factor: + description: Scaling factor must be greater-than 1.0 for scale up and less-than 1.0 for scale down. This factor is used to multiply the currentinstance count when specified threshold is met. + format: float + minimum: 0 + type: number + metric: + description: Scaling metric + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + stickiness: + $ref: '#/components/schemas/StickinessWindow' + description: Stickiness window configuration + threshold: + description: Scaling threshold (0-100) as a percentage of utilizationupon which the number of current instances are multiplied with thespecified factor. + format: int32 + maximum: 100 + minimum: 0 + type: integer + required: + - factor + - threshold + type: object + InstanceType: + properties: + default: + type: boolean + description: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + name: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + type: object + PriorityDto: + description: Function-level request priority. Lower value is higher priority, 0 is highest. + properties: + defaultPriority: + description: Default priority. + format: int64 + maximum: 4294967295 + minimum: 0 + type: integer + nullable: true + perAccountPriority: + additionalProperties: + format: int64 + type: integer + description: Per-account priority overrides, keyed by account ID. + type: object + nullable: true + type: object + LlmConfigDto: + description: LLM-specific configuration for a model + properties: + routingMethod: + description: 'Routing method for this model: a request router algorithm name, optionally followed by '';name=value'' tuning parameters, for example pulsar;seed=stable-a. The API checks only the format. The request router checks the algorithm and parameters on each request.' + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + tokenRateLimit: + description: Token-level rate limit for this model. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + tokenizer: + description: Tokenizer identifier for this model. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + uris: + description: OpenAI-compatible URIs supported by this model (e.g. /v1/chat/completions). Required for LLM models. + items: + type: string + maxItems: 2147483647 + minItems: 1 + type: array + required: + - uris + type: object + KubernetesType: + properties: + group: + description: Name of API Group + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + kind: + description: API Group resource or Kind + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + version: + description: Version of API Group + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + required: + - group + - kind + - version + type: object + StickinessWindow: + properties: + size: + description: Window size must be less than or equal to PT1H and will berounded to the nearest minute + example: PT30M + format: duration + type: string + threshold: + description: Window threshold must be less than size + example: PT5M + format: duration + type: string + required: + - size + - threshold + type: object + x-stackQL-resources: + cluster_groups: + id: nvidia.nvcf_deployments.cluster_groups + name: cluster_groups + title: Cluster Groups + methods: + list: + operation: + $ref: '#/paths/~1v2~1nvcf~1clusterGroups/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.clusterGroups + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/cluster_groups/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + deployments: + id: nvidia.nvcf_deployments.deployments + name: deployments + title: Deployments + methods: + get: + operation: + $ref: '#/paths/~1v2~1nvcf~1deployments~1functions~1{function_id}~1versions~1{function_version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.deployment + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1deployments~1functions~1{function_id}~1versions~1{function_version_id}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1deployments~1functions~1{function_id}~1versions~1{function_version_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1nvcf~1deployments~1functions~1{function_id}~1versions~1{function_version_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get_by_id: + operation: + $ref: '#/paths/~1v2~1nvcf~1deployments~1{deployment_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.deployment + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/deployments/methods/get' + - $ref: '#/components/x-stackQL-resources/deployments/methods/get_by_id' + insert: + - $ref: '#/components/x-stackQL-resources/deployments/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/deployments/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/deployments/methods/delete' + replace: [] + deployment_gpu_specs: + id: nvidia.nvcf_deployments.deployment_gpu_specs + name: deployment_gpu_specs + title: Deployment Gpu Specs + methods: + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1deployments~1{deployment_id}~1gpu-specifications~1{gpu_spec_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/deployment_gpu_specs/methods/update' + delete: [] + replace: [] + recognized_registries: + id: nvidia.nvcf_deployments.recognized_registries + name: recognized_registries + title: Recognized Registries + methods: + list: + operation: + $ref: '#/paths/~1v2~1nvcf~1recognized-registries/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/recognized_registries/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + registry_credentials: + id: nvidia.nvcf_deployments.registry_credentials + name: registry_credentials + title: Registry Credentials + methods: + list: + operation: + $ref: '#/paths/~1v2~1nvcf~1registry-credentials/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.registryCredentials + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1registry-credentials/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1nvcf~1registry-credentials~1{registry_credential_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.registryCredential + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1registry-credentials~1{registry_credential_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1nvcf~1registry-credentials~1{registry_credential_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/registry_credentials/methods/get' + - $ref: '#/components/x-stackQL-resources/registry_credentials/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/registry_credentials/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/registry_credentials/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/registry_credentials/methods/delete' + replace: [] + telemetry_secrets: + id: nvidia.nvcf_deployments.telemetry_secrets + name: telemetry_secrets + title: Telemetry Secrets + methods: + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1secrets~1telemetries~1{telemetry_id}/put' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/telemetry_secrets/methods/update' + delete: [] + replace: [] + telemetries: + id: nvidia.nvcf_deployments.telemetries + name: telemetries + title: Telemetries + methods: + list: + operation: + $ref: '#/paths/~1v2~1nvcf~1telemetries/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.telemetries + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1telemetries/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1nvcf~1telemetries~1{telemetry_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.telemetry + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1nvcf~1telemetries~1{telemetry_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/telemetries/methods/get' + - $ref: '#/components/x-stackQL-resources/telemetries/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/telemetries/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/telemetries/methods/delete' + replace: [] + vw_gpu_capacity: + name: vw_gpu_capacity + id: nvidia.nvcf_deployments.vw_gpu_capacity + title: GPU Capacity + config: + docs: + description: The GPU estate the organization can deploy NVIDIA Cloud Functions to, one row per cluster group x GPU type x instance type, flattened from the cluster_groups resource (clusterGroups[].gpus[].instanceTypes[]). + fields: + - name: cluster_group + type: string + description: Cluster group name (the backend named in a deployment specification). + - name: cluster_group_id + type: string + description: Cluster group id. + - name: gpu + type: string + description: GPU type available in the cluster group (for example L40 + H100).: null + - name: instance_type + type: string + description: Instance type name for the GPU (the instanceType of a deployment specification). + - name: instance_description + type: string + description: Vendor description of the instance type. + - name: is_default + type: boolean + description: Whether the instance type is the default for the GPU. + - name: cluster + type: string + description: Name of the first cluster in the group. + - name: nca_id + type: string + description: NVIDIA Cloud Account that owns the cluster group. + views: + select: + predicate: sqlDialect == "sqlite3" + ddl: |- + SELECT cg.name AS cluster_group, + cg.id AS cluster_group_id, + json_extract(g.value, '$.name') AS gpu, + json_extract(it.value, '$.name') AS instance_type, + json_extract(it.value, '$.description') AS instance_description, + json_extract(it.value, '$.default') AS is_default, + json_extract(cg.clusters, '$[0].name') AS cluster, + cg.nca_id + FROM nvidia.nvcf_deployments.cluster_groups cg, + json_each(cg.gpus) g, + json_each(json_extract(g.value, '$.instanceTypes')) it + fallback: + predicate: sqlDialect == "postgres" + ddl: |- + SELECT cg.name AS cluster_group, + cg.id AS cluster_group_id, + g.value->>'name' AS gpu, + it.value->>'name' AS instance_type, + it.value->>'description' AS instance_description, + (it.value->>'default')::boolean AS is_default, + cg.clusters::jsonb->0->>'name' AS cluster, + cg.nca_id + FROM nvidia.nvcf_deployments.cluster_groups cg, + jsonb_array_elements(cg.gpus::jsonb) AS g(value), + jsonb_array_elements(g.value->'instanceTypes') AS it(value) +servers: + - url: https://api.ngc.nvidia.com diff --git a/provider-dev/openapi/src/nvidia/v00.00.00000/services/nvcf_functions.yaml b/provider-dev/openapi/src/nvidia/v00.00.00000/services/nvcf_functions.yaml new file mode 100644 index 0000000..9674fc1 --- /dev/null +++ b/provider-dev/openapi/src/nvidia/v00.00.00000/services/nvcf_functions.yaml @@ -0,0 +1,1995 @@ +openapi: 3.1.0 +info: + title: NVIDIA Cloud Functions - Functions + description: 'NVCF functions and versions, function metadata, authorizations (function sharing grants), secrets and rate limits (source: the published NVCF OpenAPI specification; management operations served from api.ngc.nvidia.com).' + version: 2.261.2 +paths: + /v2/nvcf/authorizations/functions: + get: + description: 'Lists all the function versions in an account that have been shared/authorized with/to other accounts. Response includes the nca-ids of the authorized accounts. If a function version is not shared/authorized, then it is not included in the response. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: getAuthorizedPartiesForAllFunctions + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListAuthorizedPartiesResponse' + description: OK + summary: List Functions Authorized/Shared With Other Accounts + tags: + - Function Sharing + parameters: [] + /v2/nvcf/authorizations/functions/{function_id}: + get: + description: 'Lists function versions of the specified function and their corresponding authorized accounts allowed to invoke the function version. Individual versions of a function can have their own authorized accounts. So, each object in the array can have different authorized accounts listed. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: getAuthorizedPartiesForAllVersions + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListAuthorizedPartiesResponse' + description: OK + summary: List Function Versions with Authorized Accounts For Specified Function + tags: + - Function Sharing + post: + description: 'Authorizes additional NVIDIA Cloud Accounts to invoke any version of the specified function. By default, a function belongs to the NVIDIA Cloud Account that created it, and the credentials used for function invocation must reference the same NVIDIA Cloud Account. Upon invocation of this endpoint, any existing authorized accounts will be overwritten by the newly specified authorized accounts. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: createAuthorizedPartiesForAllVersions + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesResponse' + description: OK + summary: Authorize Accounts To Invoke Function + tags: + - Function Sharing + delete: + description: 'Deletes authorizations at the function level. This impacts all versions of the function. If a function versions has its own set of authorizations, those are not deleted. If the specified function is public, then Account Admin cannot perform this operation. Note that the response does not include any authz accounts at version level. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: deleteAuthorizedPartiesForAllVersions + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesResponse' + description: OK + summary: Delete All Authorizations At Function Level + tags: + - Function Sharing + /v2/nvcf/authorizations/functions/{function_id}/add: + patch: + description: 'Adds the specified NVIDIA Cloud Account to the set of authorized accounts that are can invoke all the versions of the specified function. If the specified function does not have any existing inheritable authorized accounts, it results in a response with status 404. If the specified account is already in the set of existing inheritable authorized accounts, it results in a response with status code 409. If a function is public, then Account Admin cannot perform this operation. Note that response only includes authz accounts at the function level. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: addAuthorizedPartyForAllVersions + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchAuthorizedPartyRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesResponse' + description: OK + summary: Authorize Another Account To Invoke, List, and Check Queue Details of Function + tags: + - Function Sharing + /v2/nvcf/authorizations/functions/{function_id}/remove: + patch: + description: 'Removes the specified NVIDIA Cloud Account from the set of authorized accounts that can invoke all the versions of the specified function. If the specified function does not have any existing inheritable authorized parties, it results in a response with status 404. Also, if the specified account is not in the existing set of inheritable authorized accounts, it results in a response with status 404. If the specified function is public, then Account Admin cannot perform this operation. Note that response only includes the remaining authorized accounts at the function level. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: removeAuthorizedPartyForAllVersions + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchAuthorizedPartyRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesResponse' + description: OK + summary: Unauthorize Account From Invoking, Listing, and Checking Queue Details of Function + tags: + - Function Sharing + /v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id}: + get: + description: 'Gets NVIDIA Cloud Account IDs that are authorized to invoke specified function version. Response includes authorized accounts that were added specifically at the version level and the authorized accounts that were inherited from function level. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: getAuthorizedPartiesForSpecificVersion + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesResponse' + description: OK + summary: Get Account Authorizations For Function Version + tags: + - Function Sharing + post: + description: 'Authorizes additional NVIDIA Cloud Accounts to invoke a specific function version. By default, a function belongs to the NVIDIA Cloud Account that created it, and the credentials used for function invocation must reference the same NVIDIA Cloud Account. Upon invocation of this endpoint, any existing authorized accounts will be overwritten by the newly specified authorized accounts. Note that the response does NOT include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: createAuthorizedPartiesForSpecificVersion + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version id + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesResponse' + description: OK + summary: Authorize Accounts To Invoke/List Function Version + tags: + - Function Sharing + delete: + description: 'Deletes all the authorized accounts that are directly associated with the specified function version. Authorized parties that are inherited by the function version are not deleted. If the specified function version is public, then Account Admin cannot perform this operation. Note that the response does not include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: deleteAuthorizedPartiesForSpecificVersion + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesResponse' + description: OK + summary: Delete All Authorizations At Version Level + tags: + - Function Sharing + /v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id}/add: + patch: + description: 'Adds the specified NVIDIA Cloud Account to the set of authorized accounts that can invoke the specified function version. If the specified function version does not have any existing inheritable authorized accounts, it results in a response with status 404. If the specified account is already in the set of existing authorized accounts that are directly associated with the function version, it results in a response wit status code 409. If a function is public, then Account Admin cannot perform this operation. Note that the response does not include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: addAuthorizedPartyForSpecificVersion + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchAuthorizedPartyRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesResponse' + description: OK + summary: Authorize Another Account To Invoke, List, and Check Queue Details of Function Version + tags: + - Function Sharing + /v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id}/remove: + patch: + description: 'Removes the specified NVIDIA Cloud Account from the set of authorized accounts that are directly associated with specified function version. If the specified function version does not have any of its own(not inherited) authorized accounts, it results in a response with status 404. Also, if the specified authorized account is not in the set of existing authorized parties that are directly associated with the specified function version, it results in a response with status code 404. If the specified function version is public, then Account Admin cannot perform this operation. Note that the response does not include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: removeAuthorizedPartyForSpecificVersion + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchAuthorizedPartyRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesResponse' + description: OK + summary: Unauthorize Account From Invoking, Listing, and Checking Queue Details of Function Version + tags: + - Function Sharing + /v2/nvcf/functions: + get: + description: Lists all the functions associated with the authenticated NVIDIA Cloud Account. Requires a bearer token with 'list_functions' or 'list_functions_details' scope in the HTTP Authorization header. + operationId: getFunctions + parameters: + - description: | + Query param 'visibility' indicates the kind of functions to be included + in the response. + in: query + name: visibility + required: false + schema: + default: + - authorized + - private + - public + items: + enum: + - authorized + - private + - public + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListFunctionsResponse' + description: OK + summary: List Functions + tags: + - Function Management + post: + description: 'Creates a new function within the authenticated NVIDIA Cloud Account. Requires a bearer token with ''register_function'' scope in the HTTP Authorization header. ' + operationId: createFunction + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateFunctionRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CreateFunctionResponse' + description: OK + summary: Create Function + tags: + - Function Management + parameters: [] + /v2/nvcf/functions/ids: + get: + description: 'Lists ids of all the functions in the authenticated NVIDIA Cloud Account. Requires a bearer token with ''list_functions'' or ''list_functions_details'' scopes in the HTTP Authorization header. ' + operationId: getFunctionIds + parameters: + - description: | + Query param 'visibility' indicates the kind of functions to be included + in the response. + in: query + name: visibility + required: false + schema: + default: + - authorized + - private + - public + items: + enum: + - authorized + - private + - public + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListFunctionIdsResponse' + description: OK + summary: List Function Ids + tags: + - Function Management + /v2/nvcf/functions/{function_id}/versions: + get: + description: 'Lists details of all the versions of the specified function in the authenticated NVIDIA Cloud Account. Requires a bearer token with ''list_functions'' or ''list_functions_details'' scopes in the HTTP Authorization header. ' + operationId: getFunctions_1 + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListFunctionsResponse' + description: OK + summary: List Function Versions + tags: + - Function Management + post: + description: 'Creates a version of the specified function within the authenticated NVIDIA Cloud Account. If the function is public, then Account Admin cannot create a version. Requires a bearer token with ''register_function'' scope in the HTTP Authorization header. ' + operationId: createFunction_1 + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateFunctionRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CreateFunctionResponse' + description: OK + summary: Create Function Version + tags: + - Function Management + /v2/nvcf/functions/{function_id}/versions/{function_version_id}: + get: + description: 'Retrieves detailed information of the specified function version in the authenticated NVIDIA Cloud Account. Requires a bearer token with ''list_functions'' or ''list_functions_details'' scopes in the HTTP Authorization header. ' + operationId: getFunction + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: 'Version id ' + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: | + Query param 'includeSecrets' indicates whether to include secret names + for the function in the response. + in: query + name: includeSecrets + required: false + schema: + default: true + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FunctionResponse' + description: OK + summary: Get Function Version Details + tags: + - Function Management + put: + description: 'Updates mutable fields of the specified function version within the authenticated NVIDIA Cloud Account. The current request payload supports tags updates, rate limit updates, and model-specific LLM config updates. Requires a bearer token with ''update_function'' scope in the HTTP Authorization header. ' + operationId: updateFunction + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Version id + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateFunctionRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FunctionResponse' + description: OK + summary: Updates mutable fields of the specified function version. + tags: + - Function Management + delete: + description: 'Deletes the specified function version in the authenticated NVIDIA Cloud Account. Requires a bearer token with ''delete_function'' scope in the HTTP Authorization header. If the function version is public, then Account Admin cannot delete the function. ' + operationId: deleteFunction + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Version id + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '204': + description: No Content + summary: Delete Function + tags: + - Function Management + /v2/nvcf/metadata/functions/{function_id}/versions/{function_version_id}: + put: + deprecated: true + description: 'Deprecated: use PUT /v2/nvcf/functions/{functionId}/versions/{functionVersionId} to update tags, rate limit, model-specific LLM config, and other mutable function fields. This legacy endpoint updates the same mutable function version fields for the authenticated NVIDIA Cloud Account and requires a bearer token with ''update_function'' scope in the HTTP Authorization header. ' + operationId: updateFunctionMetadata + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Version id + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateFunctionRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FunctionResponse' + description: OK + summary: Update Function Metadata + tags: + - Function Management + /v2/nvcf/ratelimit/functions/{function_id}/versions/{version_id}: + put: + deprecated: true + description: 'Deprecated: use PUT /v2/nvcf/functions/{functionId}/versions/{versionId} to update ratelimit and other mutable function fields. This legacy endpoint only updates ratelimit for the specified function version and requires a bearer token with ''update_function'' scope in the HTTP Authorization header. ' + operationId: updateRateLimit + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version id + in: path + name: version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateFunctionRequest' + required: true + responses: + '204': + description: No Content + summary: Update user ratelimit for a function version + tags: + - User Ratelimit Management + delete: + description: 'Delete ratelimit for the specified function version. This endpoint requires a bearer token with ''update_function'' scope in the HTTP Authorization header. ' + operationId: deleteRateLimit + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version id + in: path + name: version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '204': + description: No Content + summary: Delete user ratelimit for a function version + tags: + - User Ratelimit Management + /v2/nvcf/secrets/functions/{function_id}/versions/{version_id}: + put: + description: 'Updates secrets for the specified function version. This endpoint requires a bearer token with ''update_secrets'' scope in the HTTP Authorization header. ' + operationId: updateFunctionSecrets + parameters: + - description: Function Id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function Version Id + in: path + name: version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateFunctionSecretsRequest' + required: true + responses: + '204': + description: No Content + summary: Update user secrets for a function version + tags: + - User Secret Management +components: + schemas: + ListAuthorizedPartiesResponse: + description: Parties authorized to invoke function + properties: + functions: + description: Functions with authorized parties and other details + items: + $ref: '#/components/schemas/AuthorizedPartiesByFunctionDto' + maxItems: 2147483647 + minItems: 0 + type: array + required: + - functions + type: object + AuthorizedPartiesResponse: + description: Parties authorized to invoke function + properties: + function: + $ref: '#/components/schemas/AuthorizedPartiesByFunctionDto' + description: Function with authorized parties and other details + required: + - function + type: object + AuthorizedPartiesRequest: + description: Request to associated authorized parties for a specific version or allversions of a function + properties: + authorizedParties: + description: Parties authorized to invoke function + items: + $ref: '#/components/schemas/AuthorizedPartyDto' + maxItems: 2147483647 + minItems: 1 + type: array + required: + - authorizedParties + type: object + PatchAuthorizedPartyRequest: + description: | + Request payload to associate/disassociate authorized party with function + properties: + authorizedParty: + $ref: '#/components/schemas/AuthorizedPartyDto' + description: Authorized party + required: + - authorizedParty + type: object + ListFunctionsResponse: + description: Response body containing list of functions + properties: + functions: + description: List of functions + items: + $ref: '#/components/schemas/FunctionDto' + maxItems: 2147483647 + minItems: 0 + type: array + required: + - functions + type: object + CreateFunctionRequest: + description: Request payload to create function. + properties: + apiBodyFormat: + description: Invocation request body format + enum: + - PREDICT_V2 + - CUSTOM + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + containerArgs: + description: Args to be passed when launching the container + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + containerEnvironment: + description: Environment settings for launching the container + items: + $ref: '#/components/schemas/ContainerEnvironmentEntryDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + containerImage: + description: Optional custom container image + format: uri + type: string + nullable: true + description: + description: Optional function/version description + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + functionType: + description: Optional function type, used to indicate a STREAMING function. Defaults to DEFAULT. + enum: + - DEFAULT + - STREAMING + - LLM + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + health: + $ref: '#/components/schemas/HealthDto' + description: Function health + healthUri: + deprecated: true + description: Health endpoint for the container or the helmChart + format: uri + type: string + nullable: true + helmChart: + description: Optional Helm Chart + format: uri + type: string + nullable: true + helmChartServiceName: + description: | + Helm Chart Service Name is required when helmChart property is specified + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + inferencePort: + description: | + Optional port number where the inference listener is running. Defaults to 8000 + for Triton. + format: int32 + maximum: 2147483647 + minimum: -2147483648 + type: integer + nullable: true + inferenceUrl: + description: Entrypoint for invoking the container to process a request + format: uri + type: string + llmInvocationConfig: + $ref: '#/components/schemas/LlmInvocationConfigDto' + description: Optional function-level LLM invocation configuration. Only valid for LLM-type functions. + models: + description: Optional list of models + items: + $ref: '#/components/schemas/FunctionModelDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + name: + description: Function name must start with lowercase/uppercase/digit and can only contain lowercase, uppercase, digit, hyphen, and underscore characters + format: UTF-8 + maxLength: 128 + minLength: 1 + pattern: ^[a-z0-9A-Z][a-z0-9A-Z\-_]*$ + type: string + rateLimit: + $ref: '#/components/schemas/RateLimitDto' + description: Optional rate limit config + resources: + description: Optional set of resources + items: + $ref: '#/components/schemas/ArtifactDto' + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + secrets: + description: Optional secrets + items: + $ref: '#/components/schemas/SecretDto' + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + tags: + description: Optional set of tags - could be empty. Provided by user + items: + pattern: '[a-zA-Z0-9\-_:=]+' + type: string + maxItems: 64 + minItems: 0 + type: array + uniqueItems: true + nullable: true + telemetries: + $ref: '#/components/schemas/TelemetriesDto' + description: Optional telemetry configuration for logs, metrics, and traces. + required: + - inferenceUrl + - name + type: object + CreateFunctionResponse: + description: Response body for create function request. + properties: + function: + $ref: '#/components/schemas/FunctionDto' + description: Details of the newly created function + required: + - function + type: object + ListFunctionIdsResponse: + description: Response body containing list of function ids in an account + properties: + functionIds: + description: List of function ids + items: + format: uuid + type: string + maxItems: 2147483647 + minItems: 0 + type: array + required: + - functionIds + type: object + FunctionResponse: + description: Response body with function details + properties: + function: + $ref: '#/components/schemas/FunctionDto' + description: Function details + required: + - function + type: object + UpdateFunctionRequest: + description: Request payload to update mutable function configuration fields. + properties: + llmInvocationConfig: + $ref: '#/components/schemas/LlmInvocationConfigDto' + description: Optional function-level LLM invocation configuration. When omitted, the existing value is preserved. + modelUpdates: + description: Optional list of model-specific updates. + items: + $ref: '#/components/schemas/ModelUpdateDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + rateLimit: + $ref: '#/components/schemas/RateLimitDto' + description: Optional full replacement for the function rate limit configuration. When omitted, the existing value is preserved. Use the delete rate-limit endpoint to clear it. + tags: + description: Optional set of function tags. When omitted, the existing value is preserved. + items: + pattern: '[a-zA-Z0-9\-_:=]+' + type: string + maxItems: 64 + minItems: 0 + type: array + uniqueItems: true + nullable: true + type: object + UpdateFunctionSecretsRequest: + description: Request payload to update secrets + properties: + secrets: + description: Secrets + items: + $ref: '#/components/schemas/SecretDto' + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + required: + - secrets + type: object + AuthorizedPartiesByFunctionDto: + description: Data Transfer Object(DTO) representing a function with authorized accounts + properties: + authorizedParties: + description: Authorized parties allowed to invoke the function + items: + $ref: '#/components/schemas/AuthorizedPartyDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + id: + description: Function id + format: uuid + maxLength: 36 + minLength: 36 + type: string + ncaId: + description: NVIDIA Cloud Account Id + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + versionId: + description: Function version id + format: uuid + maxLength: 36 + minLength: 36 + type: string + nullable: true + required: + - id + - ncaId + type: object + AuthorizedPartyDto: + description: Data Transfer Object(DTO) representing an authorized party. + properties: + clientId: + description: |- + Client Id -- 'sub' claim in the JWT. This field should not be + specified anymore. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + ncaId: + description: NVIDIA Cloud Account authorized to invoke the function + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + required: + - ncaId + type: object + FunctionDto: + description: Data Transfer Object (DTO) representing a function + properties: + activeInstances: + description: List of active instances for this function. + items: + $ref: '#/components/schemas/InstanceDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + apiBodyFormat: + description: Invocation request body format + enum: + - PREDICT_V2 + - CUSTOM + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + containerArgs: + description: Args used to launch the container + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + containerEnvironment: + description: Environment settings used to launch the container + items: + $ref: '#/components/schemas/ContainerEnvironmentEntryDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + containerImage: + description: Optional custom container + format: uri + type: string + nullable: true + createdAt: + description: Function creation timestamp + format: date-time + maxLength: 30 + minLength: 8 + type: string + description: + description: Function/version description + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + functionType: + description: Used to indicate a STREAMING function. Defaults to DEFAULT. + enum: + - DEFAULT + - STREAMING + - LLM + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + health: + $ref: '#/components/schemas/HealthDto' + description: Function health configuration + healthUri: + deprecated: true + description: Health endpoint for the container or helmChart. Deprecated, use health.uri instead. + format: uri + type: string + helmChart: + description: Optional Helm Chart + format: uri + type: string + nullable: true + helmChartServiceName: + description: | + Helm Chart Service Name specified only when helmChart property is specified + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + id: + description: Unique function id + format: uuid + maxLength: 36 + minLength: 36 + type: string + inferencePort: + description: Optional port number where the inference listener is running - defaults to 8000 for Triton + format: int32 + maximum: 2147483647 + minimum: -2147483648 + type: integer + nullable: true + inferenceUrl: + description: Entrypoint for invoking the container to process requests + format: uri + type: string + nullable: true + llmInvocationConfig: + $ref: '#/components/schemas/LlmInvocationConfigDto' + description: Optional function-level LLM invocation configuration. + models: + description: Optional list of models + items: + $ref: '#/components/schemas/FunctionModelDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + name: + description: Function name + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + ncaId: + description: NVIDIA Cloud Account Id + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + ownedByDifferentAccount: + description: | + Indicates whether the function is owned by another account. If the account + that is being used to lookup functions happens to be authorized to invoke/list + this function which is owned by a different account, then this field is set + to true and ncaId will contain the id of the account that owns the function. + Otherwise, this field is not set as it defaults to false. + type: boolean + nullable: true + rateLimit: + $ref: '#/components/schemas/RateLimitDto' + description: Optional rate limit policy + resources: + description: Optional set of resources. + items: + $ref: '#/components/schemas/ArtifactDto' + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + secrets: + description: Optional secret names + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + status: + description: Function status + enum: + - ACTIVE + - DEPLOYING + - ERROR + - INACTIVE + - DELETED + - DEGRADED + - DEGRADING + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + tags: + description: Optional set of tags. Maximum allowed number of tags per function is 64. Maximum length of each tag is 128 chars. + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + telemetries: + $ref: '#/components/schemas/TelemetriesDto' + description: Optional telemetry configuration for the function + versionId: + description: Unique function version id + format: uuid + maxLength: 36 + minLength: 36 + type: string + required: + - createdAt + - functionType + - healthUri + - id + - name + - ncaId + - status + - versionId + type: object + ContainerEnvironmentEntryDto: + description: Data Transfer Object(DTO) representing a container environment entry + properties: + key: + description: Container environment key + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + value: + description: Container environment value + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + required: + - key + - value + type: object + HealthDto: + description: Data Transfer Object(DTO) representing a function's health configuration + properties: + expectedStatusCode: + description: Expected return status code considered as successful. + format: int32 + maximum: 2147483647 + minimum: -2147483648 + type: integer + port: + description: Port number where the health listener is running + format: int32 + maximum: 2147483647 + minimum: 0 + type: integer + protocol: + description: HTTP/gPRC protocol type for health endpoint + enum: + - HTTP + - gRPC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + timeout: + description: ISO 8601 duration string in PnDTnHnMn.nS format + example: PT10S + format: duration + type: string + uri: + description: Health endpoint for the container or the helmChart + format: uri + type: string + required: + - expectedStatusCode + - port + - protocol + - timeout + - uri + type: object + LlmInvocationConfigDto: + description: Function-level LLM invocation configuration. + properties: + priority: + $ref: '#/components/schemas/PriorityDto' + description: Function-level request priority configuration. + type: object + FunctionModelDto: + description: Model associated with a function, including optional LLM routing metadata + properties: + llmConfig: + $ref: '#/components/schemas/LlmConfigDto' + description: LLM-specific configuration for this model. Only relevant for LLM-type functions. + name: + description: Model name + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + uri: + description: Model URI. Optional for LLM-type functions. + format: uri + type: string + nullable: true + version: + description: Model version. Optional for LLM-type functions. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + required: + - name + type: object + RateLimitDto: + description: Data Transfer Object(DTO) representing Rate limit config + properties: + exemptedNcaIds: + description: NCA ID Exemptions + items: + type: string + maxItems: 32 + minItems: 0 + type: array + uniqueItems: true + nullable: true + perNcaIdRate: + additionalProperties: + type: string + description: Per NCA ID Rate + type: object + nullable: true + perUserRate: + description: Per-user rate, intended for traffic authenticated with an invocation delegation token (InvocationToken). When set, this single rate is enforced individually against every unique caller identity, in addition to the NCA-tier limit. + format: UTF-8 + maxLength: 262144 + minLength: 0 + pattern: ^(?!.*-([SMHD]).*-\1)[1-9]\d*-[SMHD](,\s*[1-9]\d*-[SMHD])*$ + type: string + nullable: true + rateLimit: + description: Rate + format: UTF-8 + maxLength: 262144 + minLength: 0 + pattern: ^(?!.*-([SMHD]).*-\1)[1-9]\d*-[SMHD](,\s*[1-9]\d*-[SMHD])*$ + type: string + nullable: true + syncCheck: + description: Sync check. Defaults to false + type: boolean + nullable: true + type: object + ArtifactDto: + description: Data Transfer Object(DTO) representing an artifact + properties: + name: + description: Artifact name + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + uri: + description: Artifact URI + format: uri + type: string + version: + description: Artifact version + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + required: + - name + - uri + - version + type: object + SecretDto: + description: Data Transfer Object(DTO) representing secret name/value pair + properties: + name: + description: Secret name + format: UTF-8 + maxLength: 48 + minLength: 1 + pattern: ^[a-z0-9A-Z][a-z0-9A-Z\_\.\-]*$ + type: string + value: + description: Secret value must be a string or JSON object and 1 - 32768 chars long + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + required: + - name + - value + type: object + TelemetriesDto: + description: Telemetry configuration for logs, metrics, and traces. + properties: + logsTelemetryId: + description: UUID representing the logs telemetry. + format: uuid + maxLength: 36 + minLength: 36 + type: string + nullable: true + metricsTelemetryId: + description: UUID representing the metrics telemetry. + format: uuid + maxLength: 36 + minLength: 36 + type: string + nullable: true + tracesTelemetryId: + description: UUID representing the traces telemetry. + format: uuid + maxLength: 36 + minLength: 36 + type: string + nullable: true + type: object + ModelUpdateDto: + description: Model-specific update request. + properties: + llmConfig: + $ref: '#/components/schemas/LlmConfigUpdateDto' + description: Optional updates to this model's LLM config fields. + modelName: + description: Name of the model to update. + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + required: + - modelName + type: object + InstanceDto: + description: Data Transfer Object(DTO) representing an instance + properties: + backend: + description: Backend where the instance is running + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + functionId: + description: Function executing on the instance + format: uuid + maxLength: 36 + minLength: 36 + type: string + functionVersionId: + description: Function version executing on the instance + format: uuid + maxLength: 36 + minLength: 36 + type: string + gpu: + description: GPU name powering the instance + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + icmsRequestId: + description: ICMS request-id used to launch this instance + format: uuid + maxLength: 36 + minLength: 36 + type: string + instanceCreatedAt: + description: Instance creation timestamp + format: date-time + maxLength: 30 + minLength: 8 + type: string + instanceId: + description: Unique id of the instance + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + instanceStatus: + description: Instance status + enum: + - ACTIVE + - STARTING + - RUNNING + - ERRORED + - PREEMPTED + - DELETED + - TERMINATED + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + instanceType: + description: GPU instance-type powering the instance + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + instanceUpdatedAt: + description: Instance's last updated timestamp + format: date-time + maxLength: 30 + minLength: 8 + type: string + location: + description: Location such as zone name or region where the instance is running + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + ncaId: + description: NVIDIA Cloud Account Id that owns the function running on the instance + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + type: object + PriorityDto: + description: Function-level request priority. Lower value is higher priority, 0 is highest. + properties: + defaultPriority: + description: Default priority. + format: int64 + maximum: 4294967295 + minimum: 0 + type: integer + nullable: true + perAccountPriority: + additionalProperties: + format: int64 + type: integer + description: Per-account priority overrides, keyed by account ID. + type: object + nullable: true + type: object + LlmConfigDto: + description: LLM-specific configuration for a model + properties: + routingMethod: + description: 'Routing method for this model: a request router algorithm name, optionally followed by '';name=value'' tuning parameters, for example pulsar;seed=stable-a. The API checks only the format. The request router checks the algorithm and parameters on each request.' + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + tokenRateLimit: + description: Token-level rate limit for this model. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + tokenizer: + description: Tokenizer identifier for this model. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + uris: + description: OpenAI-compatible URIs supported by this model (e.g. /v1/chat/completions). Required for LLM models. + items: + type: string + maxItems: 2147483647 + minItems: 1 + type: array + required: + - uris + type: object + LlmConfigUpdateDto: + description: Partial update payload for LLM-specific model configuration fields. + properties: + routingMethod: + description: Updated routing method for the model, in the same format as llmConfig.routingMethod on create. When omitted, the existing value is preserved. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + tokenRateLimit: + description: Updated token-level rate limit for the model. When omitted, the existing value is preserved. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + tokenizer: + description: Cannot be changed after creation. A request that sets it is rejected with 400. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + uris: + description: Cannot be changed after creation. A request that sets it is rejected with 400. + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + type: object + StackqlFunctionIdsRows: + type: object + properties: + function_ids: + type: array + items: + type: object + properties: + function_id: + type: string + description: List of function ids + x-stackQL-resources: + authorizations: + id: nvidia.nvcf_functions.authorizations + name: authorizations + title: Authorizations + methods: + list_all: + operation: + $ref: '#/paths/~1v2~1nvcf~1authorizations~1functions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.functions + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v2~1nvcf~1authorizations~1functions~1{function_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.functions + request: + nativeCasing: camel + set: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1authorizations~1functions~1{function_id}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete_all: + operation: + $ref: '#/paths/~1v2~1nvcf~1authorizations~1functions~1{function_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + add: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1authorizations~1functions~1{function_id}~1add/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + remove: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1authorizations~1functions~1{function_id}~1remove/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list_version: + operation: + $ref: '#/paths/~1v2~1nvcf~1authorizations~1functions~1{function_id}~1versions~1{function_version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.function + request: + nativeCasing: camel + set_version: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1authorizations~1functions~1{function_id}~1versions~1{function_version_id}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete_all_version: + operation: + $ref: '#/paths/~1v2~1nvcf~1authorizations~1functions~1{function_id}~1versions~1{function_version_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + add_version: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1authorizations~1functions~1{function_id}~1versions~1{function_version_id}~1add/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + remove_version: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1authorizations~1functions~1{function_id}~1versions~1{function_version_id}~1remove/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/authorizations/methods/list_version' + - $ref: '#/components/x-stackQL-resources/authorizations/methods/list' + - $ref: '#/components/x-stackQL-resources/authorizations/methods/list_all' + insert: + - $ref: '#/components/x-stackQL-resources/authorizations/methods/add_version' + - $ref: '#/components/x-stackQL-resources/authorizations/methods/add' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/authorizations/methods/remove_version' + - $ref: '#/components/x-stackQL-resources/authorizations/methods/remove' + replace: + - $ref: '#/components/x-stackQL-resources/authorizations/methods/set_version' + - $ref: '#/components/x-stackQL-resources/authorizations/methods/set' + functions: + id: nvidia.nvcf_functions.functions + name: functions + title: Functions + methods: + list: + operation: + $ref: '#/paths/~1v2~1nvcf~1functions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.functions + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1functions/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/functions/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/functions/methods/create' + update: [] + delete: [] + replace: [] + function_ids: + id: nvidia.nvcf_functions.function_ids + name: function_ids + title: Function Ids + methods: + list: + operation: + $ref: '#/paths/~1v2~1nvcf~1functions~1ids/get' + response: + mediaType: application/json + openAPIDocKey: '200' + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/StackqlFunctionIdsRows' + objectKey: $.function_ids + transform: + type: golang_template_json_v0.3.0 + body: '{"function_ids":[{{ range $i, $v := .functionIds }}{{ if $i }},{{ end }}{"function_id":{{ toJson $v }}}{{ end }}]}' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/function_ids/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + function_versions: + id: nvidia.nvcf_functions.function_versions + name: function_versions + title: Function Versions + methods: + list: + operation: + $ref: '#/paths/~1v2~1nvcf~1functions~1{function_id}~1versions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.functions + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1functions~1{function_id}~1versions/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1nvcf~1functions~1{function_id}~1versions~1{function_version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.function + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1functions~1{function_id}~1versions~1{function_version_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1nvcf~1functions~1{function_id}~1versions~1{function_version_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/function_versions/methods/get' + - $ref: '#/components/x-stackQL-resources/function_versions/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/function_versions/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/function_versions/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/function_versions/methods/delete' + replace: [] + function_metadata: + id: nvidia.nvcf_functions.function_metadata + name: function_metadata + title: Function Metadata + methods: + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1metadata~1functions~1{function_id}~1versions~1{function_version_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/function_metadata/methods/update' + delete: [] + replace: [] + function_ratelimits: + id: nvidia.nvcf_functions.function_ratelimits + name: function_ratelimits + title: Function Ratelimits + methods: + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1ratelimit~1functions~1{function_id}~1versions~1{version_id}/put' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1nvcf~1ratelimit~1functions~1{function_id}~1versions~1{version_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/function_ratelimits/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/function_ratelimits/methods/delete' + replace: [] + function_secrets: + id: nvidia.nvcf_functions.function_secrets + name: function_secrets + title: Function Secrets + methods: + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1secrets~1functions~1{function_id}~1versions~1{version_id}/put' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/function_secrets/methods/update' + delete: [] + replace: [] +servers: + - url: https://api.ngc.nvidia.com diff --git a/provider-dev/openapi/src/nvidia/v00.00.00000/services/nvcf_invocation.yaml b/provider-dev/openapi/src/nvidia/v00.00.00000/services/nvcf_invocation.yaml new file mode 100644 index 0000000..f5c50fe --- /dev/null +++ b/provider-dev/openapi/src/nvidia/v00.00.00000/services/nvcf_invocation.yaml @@ -0,0 +1,1264 @@ +openapi: 3.1.0 +info: + title: NVIDIA Cloud Functions - Invocation + description: NVCF HTTP-polling invocation (pexec and status), assets and invocation assertion tokens (served from api.nvcf.nvidia.com). + version: 2.261.2 +paths: + /v2/nvcf/assets: + get: + deprecated: true + description: 'List assets owned by the current NVIDIA Cloud Account. Requires a bearer token with ''invoke_function'' scope in the HTTP Authorization header. ' + operationId: getAssets + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListAssetsResponse' + description: OK + summary: List Assets + tags: + - Asset Management + parameters: [] + post: + deprecated: true + description: 'Creates a unique id representing an asset and a pre-signed URL to upload the asset artifact to AWS S3 bucket for the NVIDIA Cloud Account. Requires a bearer token with ''invoke_function'' scope in the HTTP Authorization header. ' + operationId: createAsset + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAssetRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAssetResponse' + description: OK + summary: Create Asset + tags: + - Asset Management + parameters: [] + /v2/nvcf/assets/{asset_id}: + get: + deprecated: true + description: 'Returns details for the specified asset-id belonging to the current NVIDIA Cloud Account. Requires a bearer token with ''invoke_function'' scope in the HTTP Authorization header. ' + operationId: getAsset + parameters: + - description: Asset id + in: path + name: asset_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AssetResponse' + description: OK + summary: Show Asset Details + tags: + - Asset Management + delete: + deprecated: true + description: 'Deletes asset belonging to the current NVIDIA Cloud Account. Requires a bearer token with ''invoke_function'' scope in the HTTP Authorization header. ' + operationId: deleteAsset + parameters: + - description: Id of the asset to be deleted + in: path + name: asset_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '204': + description: No Content + summary: Delete Asset + tags: + - Asset Management + /v2/nvcf/pexec/functions/{function_id}: + post: + deprecated: true + description: 'Deprecated and will be removed soon. Please use the new NVCF Invocation API endpoint to invoke a function. Invokes the specified function that was successfully deployed. If the version is not specified, any active function versions will handle the request. If the version is specified in the URI, then the request is exclusively processed by the designated version of the function. By default, this endpoint will block for 5 seconds. If the request is not fulfilled before the timeout, it''s status is considered in-progress or pending and the response includes HTTP status code 202 with an invocation request ID, indicating that the client should commence polling for the result using the invocation request ID. Access to this endpoint mandates inclusion of a bearer token with ''invoke_function'' scope in the HTTP Authorization header. Additionally, this endpoint has the capability to provide updates on the progress of the request, contingent upon the workload''s provision of such information. In-progress responses are returned in order. If no in-progress response is received during polling you will receive the most recent in-progress response. Only the first 256 unread in-progress messages are kept. ' + operationId: invokeFunction + parameters: + - in: header + name: NVCF-INPUT-ASSET-REFERENCES + required: false + schema: + items: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + - in: header + name: NVCF-POLL-SECONDS + required: false + schema: + format: int32 + maximum: 300 + minimum: 0 + type: integer + nullable: true + - in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StackqlJsonBody' + required: true + responses: + '200': + content: + application/json: + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Invocation is fulfilled + headers: + NVCF-PERCENT-COMPLETE: + description: Percentage complete + schema: + type: string + style: simple + NVCF-REQID: + description: Invocation Request Id + schema: + type: string + style: simple + NVCF-STATUS: + description: Invocation status + schema: + type: string + style: simple + '202': + content: + application/json: + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Result is pending. Client should poll using the requestId. + headers: + NVCF-PERCENT-COMPLETE: + description: Percentage complete + schema: + type: string + style: simple + NVCF-REQID: + description: Invocation Request Id + schema: + type: string + style: simple + NVCF-STATUS: + description: Invocation status + schema: + type: string + style: simple + '302': + description: | + Client should use the URL specified in the 'Location' response header to fetch + large result. + headers: + Location: + description: URL to get the result + schema: + type: string + style: simple + NVCF-PERCENT-COMPLETE: + description: Percentage complete + schema: + type: string + style: simple + NVCF-REQID: + description: Invocation Request Id + schema: + type: string + style: simple + NVCF-STATUS: + description: Invocation status + schema: + type: string + style: simple + '402': + content: + application/json: + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Cloud credits expired for public functions. Please contact NVIDIA representatives. + '403': + content: + application/json: + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: | + Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry + in the ApiKey for the function. + '429': + content: + application/json: + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Client is doing too many requests per second and should slow down request rate. + summary: Call Function + tags: + - Function Invocation + /v2/nvcf/pexec/functions/{function_id}/versions/{version_id}: + post: + deprecated: true + description: 'Deprecated and will be removed soon. Please use the new NVCF Invocation API endpoint to invoke a function. Invokes the specified function that was successfully deployed. If the version is not specified, any active function versions will handle the request. If the version is specified in the URI, then the request is exclusively processed by the designated version of the function. By default, this endpoint will block for 5 seconds. If the request is not fulfilled before the timeout, it''s status is considered in-progress or pending and the response includes HTTP status code 202 with an invocation request ID, indicating that the client should commence polling for the result using the invocation request ID. Access to this endpoint mandates inclusion of a bearer token with ''invoke_function'' scope in the HTTP Authorization header. Additionally, this endpoint has the capability to provide updates on the progress of the request, contingent upon the workload''s provision of such information. In-progress responses are returned in order. If no in-progress response is received during polling you will receive the most recent in-progress response. Only the first 256 unread in-progress messages are kept. ' + operationId: invokeFunction_1 + parameters: + - in: header + name: NVCF-INPUT-ASSET-REFERENCES + required: false + schema: + items: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + - in: header + name: NVCF-POLL-SECONDS + required: false + schema: + format: int32 + maximum: 300 + minimum: 0 + type: integer + nullable: true + - in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version id + in: path + name: version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StackqlJsonBody' + required: true + responses: + '200': + content: + application/json: + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Invocation is fulfilled + headers: + NVCF-PERCENT-COMPLETE: + description: Percentage complete + schema: + type: string + style: simple + NVCF-REQID: + description: Invocation Request Id + schema: + type: string + style: simple + NVCF-STATUS: + description: Invocation status + schema: + type: string + style: simple + '202': + content: + application/json: + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Result is pending. Client should poll using the requestId. + headers: + NVCF-PERCENT-COMPLETE: + description: Percentage complete + schema: + type: string + style: simple + NVCF-REQID: + description: Invocation Request Id + schema: + type: string + style: simple + NVCF-STATUS: + description: Invocation status + schema: + type: string + style: simple + '302': + description: | + Client should use the URL specified in the 'Location' response header to fetch + large result. + headers: + Location: + description: URL to get the result + schema: + type: string + style: simple + NVCF-PERCENT-COMPLETE: + description: Percentage complete + schema: + type: string + style: simple + NVCF-REQID: + description: Invocation Request Id + schema: + type: string + style: simple + NVCF-STATUS: + description: Invocation status + schema: + type: string + style: simple + '402': + content: + application/json: + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Cloud credits expired for public functions. Please contact NVIDIA representatives. + '403': + content: + application/json: + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: | + Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry + in the ApiKey for the function. + '429': + content: + application/json: + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Client is doing too many requests per second and should slow down request rate. + summary: Call Function + tags: + - Function Invocation + /v2/nvcf/pexec/status/{request_id}: + get: + deprecated: true + description: 'Deprecated and will be removed soon. Please use the new NVCF Invocation API endpoint to invoke a function and stream results without polling. Retrieves the status of an in-progress or pending request using its unique invocation request ID. If the result is available, it will be included in the response, marking the request as fulfilled. Conversely, if the result is not yet available, the request is deemed pending. Access to this endpoint mandates inclusion of a bearer token with ''invoke_function'' scope in the HTTP Authorization header. In-progress responses are returned in order. If no in-progress response is received during polling you will receive the most recent in-progress response. Only the first 256 unread in-progress messages are kept. ' + operationId: getFunctionInvocationResult + parameters: + - description: Invocation Request Id + in: path + name: request_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Invocation is fulfilled + headers: + NVCF-PERCENT-COMPLETE: + description: Percentage complete + schema: + type: string + style: simple + NVCF-REQID: + description: Invocation Request Id + schema: + type: string + style: simple + NVCF-STATUS: + description: Invocation status + schema: + type: string + style: simple + '202': + content: + application/json: + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Result is pending. Client should poll using the requestId. + headers: + NVCF-PERCENT-COMPLETE: + description: Percentage complete + schema: + type: string + style: simple + NVCF-REQID: + description: Invocation Request Id + schema: + type: string + style: simple + NVCF-STATUS: + description: Invocation status + schema: + type: string + style: simple + '302': + description: | + Client should use the URL specified in the 'Location' response header to fetch + large result. + headers: + Location: + description: URL to get the result + schema: + type: string + style: simple + NVCF-PERCENT-COMPLETE: + description: Percentage complete + schema: + type: string + style: simple + NVCF-REQID: + description: Invocation Request Id + schema: + type: string + style: simple + NVCF-STATUS: + description: Invocation status + schema: + type: string + style: simple + '402': + content: + application/json: + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Cloud credits expired for public functions. Please contact NVIDIA representatives. + '403': + content: + application/json: + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: | + Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry + in the ApiKey for the function. + summary: Poll For Result Using Function Invocation Request + tags: + - Function Invocation + /v2/nvcf/tokens/functions: + post: + description: 'Issues an assertion token from Notary Service for specified functionIds and/or functionVersionIds ' + operationId: issueMultiFunctionsInvocationToken + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MultiFunctionsInvocationTokenRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/InvocationTokenResponse' + description: Invocation assertion token is issued + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/InvocationTokenResponse' + description: | + Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry + in the ApiKey for the function. + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/InvocationTokenResponse' + description: Client is doing too many requests per second and should slow down request rate. + summary: Issue Function Invocation Token + tags: + - Function Invocation Assertion Token + parameters: [] + /v2/nvcf/tokens/functions/{function_id}: + post: + description: 'Issues an assertion token from Notary Service for a specific functionId and/or functionVersionId ' + operationId: issueInvocationToken_1 + parameters: + - in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InvocationTokenRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/InvocationTokenResponse' + description: Invocation assertion token is issued + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/InvocationTokenResponse' + description: | + Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry + in the ApiKey for the function. + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/InvocationTokenResponse' + description: Client is doing too many requests per second and should slow down request rate. + summary: Issue Function Invocation Token + tags: + - Function Invocation Assertion Token + /v2/nvcf/tokens/functions/{function_id}/versions/{function_version_id}: + post: + description: 'Issues an assertion token from Notary Service for a specific functionId and/or functionVersionId ' + operationId: issueInvocationToken + parameters: + - in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version id + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InvocationTokenRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/InvocationTokenResponse' + description: Invocation assertion token is issued + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/InvocationTokenResponse' + description: | + Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry + in the ApiKey for the function. + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/InvocationTokenResponse' + description: Client is doing too many requests per second and should slow down request rate. + summary: Issue Function Invocation Token + tags: + - Function Invocation Assertion Token +components: + schemas: + ListAssetsResponse: + description: Response body containing list of assets of the current nca id + properties: + assets: + description: List of assets uploaded for the nca id + items: + $ref: '#/components/schemas/AssetDto' + maxItems: 2147483647 + minItems: 0 + type: array + required: + - assets + type: object + CreateAssetRequest: + description: Request payload to create an asset-id and the corresponding pre-signed URL to upload an asset of specified content-type to AWS S3 bucket. + properties: + contentType: + description: Content type of the asset such image/png, image/jpeg, etc. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + description: + description: Asset description + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + required: + - contentType + - description + type: object + CreateAssetResponse: + description: Response body containing asset-id and the corresponding pre-signed URL to upload an asset of specified content-type to AWS S3 bucket. + properties: + assetId: + description: Unique id of the asset to be uploaded to AWS S3 bucket + format: uuid + maxLength: 36 + minLength: 36 + type: string + contentType: + description: Content type of the asset such image/png, image/jpeg, etc. + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + description: + description: Asset description to be used when uploading the asset + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + uploadUrl: + description: Pre-signed upload URL to upload asset + format: url + type: string + required: + - assetId + - contentType + - description + - uploadUrl + type: object + AssetResponse: + properties: + asset: + $ref: '#/components/schemas/AssetDto' + required: + - asset + type: object + MultiFunctionsInvocationTokenRequest: + description: Request body for issuing a function invocation token + properties: + clientId: + description: ClientId for client to pass in to track who will eventually use the token + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + functions: + description: Functions to invoke + items: + $ref: '#/components/schemas/BasicFunctionDto' + maxItems: 4 + minItems: 0 + type: array + required: + - clientId + - functions + type: object + InvocationTokenResponse: + description: Function invocation token response + properties: + access_token: + description: Token issued by Notary Service + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + expires_in: + description: Token expiration time in seconds + format: int32 + maximum: 2147483647 + minimum: -2147483648 + type: integer + type: object + InvocationTokenRequest: + description: Request body for issuing a function invocation token + properties: + clientId: + description: ClientId for client to pass in to track who will eventually use the token + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + required: + - clientId + type: object + AssetDto: + description: Data Transfer Object(DTO) representing an asset + properties: + assetId: + description: Asset id + format: uuid + maxLength: 36 + minLength: 36 + type: string + contentType: + description: Content-type specified when creating the asset + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + createdAt: + description: Timestamp specified when creating the asset + format: date-time + maxLength: 30 + minLength: 8 + type: string + nullable: true + description: + description: Description specified when creating the asset + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + type: object + BasicFunctionDto: + description: Basic Data Transfer Object (DTO) representing a function + properties: + functionId: + description: Unique function id + format: uuid + maxLength: 36 + minLength: 36 + type: string + functionVersionId: + description: Unique function version id + format: uuid + maxLength: 36 + minLength: 36 + type: string + nullable: true + required: + - functionId + type: object + StackqlJsonBody: + type: object + description: A free-form JSON request body, supplied as a JSON string in the body argument + properties: + body: + type: string + description: The request payload as a JSON string (the function input) + required: + - body + StackqlInvocationResult: + type: object + properties: + results: + type: array + items: + type: object + properties: + response: + type: string + description: The invocation response body as returned by the function (JSON text); empty while the request is still pending (HTTP 202) + x-stackQL-resources: + assets: + id: nvidia.nvcf_invocation.assets + name: assets + title: Assets + methods: + list: + operation: + $ref: '#/paths/~1v2~1nvcf~1assets/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.assets + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1assets/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1nvcf~1assets~1{asset_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.asset + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1nvcf~1assets~1{asset_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/assets/methods/get' + - $ref: '#/components/x-stackQL-resources/assets/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/assets/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/assets/methods/delete' + replace: [] + invocations: + id: nvidia.nvcf_invocation.invocations + name: invocations + title: Invocations + methods: + invoke: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1pexec~1functions~1{function_id}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + mediaType: application/json + transform: + type: golang_template_json_v0.3.0 + body: '{{ if eq (kindOf .body) "string" }}{{ .body }}{{ else }}{{ toJson .body }}{{ end }}' + invoke_version: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1pexec~1functions~1{function_id}~1versions~1{version_id}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + mediaType: application/json + transform: + type: golang_template_json_v0.3.0 + body: '{{ if eq (kindOf .body) "string" }}{{ .body }}{{ else }}{{ toJson .body }}{{ end }}' + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] + invocation_status: + id: nvidia.nvcf_invocation.invocation_status + name: invocation_status + title: Invocation Status + methods: + get: + operation: + $ref: '#/paths/~1v2~1nvcf~1pexec~1status~1{request_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/StackqlInvocationResult' + objectKey: $.results + transform: + type: golang_template_text_v0.3.0 + body: '{"results": [{"response": {{ toJson . }}}]}' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/invocation_status/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + tokens: + id: nvidia.nvcf_invocation.tokens + name: tokens + title: Tokens + methods: + create_for_functions: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1tokens~1functions/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create_for_function: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1tokens~1functions~1{function_id}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create_for_version: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1nvcf~1tokens~1functions~1{function_id}~1versions~1{function_version_id}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.nvcf.nvidia.com diff --git a/provider-dev/openapi/src/nvidia/v00.00.00000/services/nvcf_queues.yaml b/provider-dev/openapi/src/nvidia/v00.00.00000/services/nvcf_queues.yaml new file mode 100644 index 0000000..930da52 --- /dev/null +++ b/provider-dev/openapi/src/nvidia/v00.00.00000/services/nvcf_queues.yaml @@ -0,0 +1,228 @@ +openapi: 3.1.0 +info: + title: NVIDIA Cloud Functions - Queues + description: NVCF request queue details per function and version, and queue position per request (served from api.nvcf.nvidia.com). + version: 2.261.2 +paths: + /v2/nvcf/queues/functions/{function_id}: + get: + description: 'Provides details of all the queues associated with the specified function. If a function has multiple versions and they are all deployed, then the response includes details of all the queues. If the specified function is public, then Account Admin cannot perform this operation. Requires a bearer token or an api-key with ''queue_details'' scope in the HTTP Authorization header. ' + operationId: getQueuesDetails_1 + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GetQueuesResponse' + description: OK + summary: Queue Details + tags: + - Queue Details + /v2/nvcf/queues/functions/{function_id}/versions/{version_id}: + get: + description: 'Provides details of all the queues associated with the specified function. If a function has multiple versions and they are all deployed, then the response includes details of all the queues. If the specified function is public, then Account Admin cannot perform this operation. Requires a bearer token or an api-key with ''queue_details'' scope in the HTTP Authorization header. ' + operationId: getQueuesDetails + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version id + in: path + name: version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GetQueuesResponse' + description: OK + summary: Queue Details + tags: + - Queue Details + /v2/nvcf/queues/{request_id}/position: + get: + description: 'Using the specified function invocation request id, returns the estimated position of the corresponding message up to 1000 in the queue. Requires a bearer token or an api-key with ''queue_details'' scope in the HTTP Authorization header. ' + operationId: getPositionInQueue + parameters: + - description: Function invocation request id + in: path + name: request_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GetPositionInQueueResponse' + description: OK + summary: Queue Position + tags: + - Queue Details +components: + schemas: + GetQueuesResponse: + description: Request queue details of all the functions with same id in an account + properties: + functionId: + description: Function id + format: uuid + maxLength: 36 + minLength: 36 + type: string + queues: + description: Details of all the queues associated with same named functions + items: + $ref: '#/components/schemas/QueueDto' + maxItems: 2147483647 + minItems: 0 + type: array + required: + - functionId + - queues + type: object + GetPositionInQueueResponse: + description: Request position in queue for invocation request + properties: + functionId: + description: Function id + format: uuid + maxLength: 36 + minLength: 36 + type: string + functionVersionId: + description: Function version id + format: uuid + maxLength: 36 + minLength: 36 + type: string + positionInQueue: + description: Position of request in queue + format: int32 + maximum: 2147483647 + minimum: -2147483648 + type: integer + required: + - functionId + - functionVersionId + type: object + QueueDto: + description: Data Transfer Object(DTO) representing a request queue for function version + properties: + functionName: + description: Function name + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + functionStatus: + description: Function status + enum: + - ACTIVE + - DEPLOYING + - ERROR + - INACTIVE + - DELETED + - DEGRADED + - DEGRADING + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + functionVersionId: + description: Function version id + format: uuid + maxLength: 36 + minLength: 36 + type: string + queueDepth: + description: Approximate number of messages in the request queue + format: int32 + maximum: 2147483647 + minimum: -2147483648 + type: integer + required: + - functionName + - functionStatus + - functionVersionId + type: object + x-stackQL-resources: + queues: + id: nvidia.nvcf_queues.queues + name: queues + title: Queues + methods: + list: + operation: + $ref: '#/paths/~1v2~1nvcf~1queues~1functions~1{function_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.queues + request: + nativeCasing: camel + list_version: + operation: + $ref: '#/paths/~1v2~1nvcf~1queues~1functions~1{function_id}~1versions~1{version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.queues + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/queues/methods/list_version' + - $ref: '#/components/x-stackQL-resources/queues/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + queue_positions: + id: nvidia.nvcf_queues.queue_positions + name: queue_positions + title: Queue Positions + methods: + get: + operation: + $ref: '#/paths/~1v2~1nvcf~1queues~1{request_id}~1position/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/queue_positions/methods/get' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.nvcf.nvidia.com diff --git a/provider-dev/openapi/src/nvidia/v00.00.00000/services/orgs.yaml b/provider-dev/openapi/src/nvidia/v00.00.00000/services/orgs.yaml new file mode 100644 index 0000000..7324c45 --- /dev/null +++ b/provider-dev/openapi/src/nvidia/v00.00.00000/services/orgs.yaml @@ -0,0 +1,6214 @@ +openapi: 3.0.1 +info: + title: NVIDIA NGC Organizations + description: 'NGC organizations, teams, users and team members, role grants, invitations and the current user (source: the NGC API definition harvested from the API explorer).' + version: v3.249.17 +paths: + /roles: + get: + description: List of roles in NGC and their scopes + operationId: getRoles + parameters: + - description: flag indicate if hidden roles should be included + in: query + name: show-hidden + required: false + schema: + default: false + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserRoleDefinitionsResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: NGC Roles + tags: + - Services + /starfleetIds/{starfleet_id}: + get: + description: Get User details in org by starfleet Id + operationId: getUserInOrg_1 + parameters: + - in: path + name: starfleet_id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Get User in org + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/starfleetIds/{starfleet_id}: + get: + description: Get User details in team by starfleet Id + operationId: getUserInTeamByStarfleetId + parameters: + - in: path + name: team_name + required: true + schema: + type: string + - in: path + name: starfleet_id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Get User in team + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/users: + get: + description: Get list of users in team. (User Admin in team privileges required) + operationId: listUsersInTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + - description: The page number of result + in: query + name: page-number + required: false + schema: + format: int32 + type: integer + - description: The page size of result + in: query + name: page-size + required: false + schema: + format: int32 + type: integer + - description: User Search Parameters. Only 'filters' and 'orderBy' for 'name' and 'email' are implemented + in: query + name: q + required: false + schema: + $ref: '#/components/schemas/SearchParams' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserListResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: List users in team + tags: + - Users Management + post: + description: Creates a User and add them to a team within the org. + operationId: createUserInTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + - in: query + name: send-email + required: false + schema: + default: true + type: boolean + - description: If the IDP ID is provided then it is used instead of the one configured for the organization + in: query + name: idp-id + required: false + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Creates a User in team + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/users/invitations: + get: + description: List invitations in a team. (Team User Admin privileges required) + operationId: listInvitationsForUserInTeam + parameters: + - description: The page number of result + in: query + name: page-number + required: false + schema: + format: int32 + type: integer + - description: The page size of result + in: query + name: page-size + required: false + schema: + format: int32 + type: integer + - in: query + name: orderBy + required: false + schema: + enum: + - NAME_ASC + - NAME_DESC + type: string + - in: path + name: team_name + required: true + schema: + type: string + - description: User Search Parameters + in: query + name: q + required: false + schema: + $ref: '#/components/schemas/SearchParams' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserInvitationListResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: List user invitations in a team. + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/users/invitations/{id}: + delete: + description: Delete a specific invitation in an team. (Org Admin or Team User Admin privileges required) + operationId: deleteUserInvitationInTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + - in: path + name: id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Delete a specific invitation in a team. + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/users/invitations/{id}/resend-invitation-email: + get: + description: Resend email of a specific invitation in a team (Org or Team User Admin privileges required). + operationId: resendUserInvitationEmailInTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + - in: path + name: id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Resend email of a specific invitation in a team. + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/users/{id}: + post: + description: Add a User to team + operationId: addUserToTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + - in: path + name: id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Add a User to team + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /teams: + get: + description: List all Teams + operationId: listTeams + parameters: + - description: The page number of result + in: query + name: page-number + required: false + schema: + format: int32 + type: integer + - description: The page size of result + in: query + name: page-size + required: false + schema: + format: int32 + type: integer + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TeamListResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: List Teams + tags: + - Teams + post: + description: Create team in org. (Org Admin Privileges Required) + operationId: createTeam + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TeamCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TeamCreateResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Create Team + tags: + - Teams + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /teams/{team_name}: + get: + description: Get Team by name + operationId: getTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TeamResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Get Team + tags: + - Teams + patch: + description: Edit a Team + operationId: editTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TeamUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TeamResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Edit Team + tags: + - Teams + delete: + description: Delete a Team + operationId: deleteTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Delete Team + tags: + - Teams + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /users: + get: + description: Get list of users in organization. (User Admin in org privileges required) + operationId: listUsersInOrg + parameters: + - description: Name of team to exclude members from + in: query + name: exclude-from-team + required: false + schema: + type: string + - description: The page number of result + in: query + name: page-number + required: false + schema: + format: int32 + type: integer + - description: The page size of result + in: query + name: page-size + required: false + schema: + format: int32 + type: integer + - description: User Search Parameters. Only 'filters' and 'orderBy' for 'name' and 'email' are implemented + in: query + name: q + required: false + schema: + $ref: '#/components/schemas/SearchParams' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserListResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: List users In org + tags: + - Users Management + post: + description: Creates a User + operationId: createUserInOrg + parameters: + - in: query + name: send-email + required: false + schema: + default: true + type: boolean + - description: If the IDP ID is provided then it is used instead of the one configured for the organization + in: query + name: idp-id + required: false + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Creates a User in org + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /users/invitations: + get: + description: List invitations in an org. (Org User Admin privileges required) + operationId: listInvitationsForUserInOrg + parameters: + - description: The page number of result + in: query + name: page-number + required: false + schema: + format: int32 + type: integer + - description: The page size of result + in: query + name: page-size + required: false + schema: + format: int32 + type: integer + - in: query + name: orderBy + required: false + schema: + enum: + - NAME_ASC + - NAME_DESC + type: string + - description: User Search Parameters + in: query + name: q + required: false + schema: + $ref: '#/components/schemas/SearchParams' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserInvitationListResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: List user invitations in an org. + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /users/invitations/{id}: + delete: + description: Delete a specific invitation in an org. (Org User Admin privileges required) + operationId: deleteUserInvitationInOrg + parameters: + - in: path + name: id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Delete a specific invitation in an org. + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /users/invitations/{id}/resend-invitation-email: + get: + description: Resend email of a specific invitation in an org (Org User Admin privileges required). + operationId: resendUserInvitationEmailInOrg + parameters: + - in: path + name: id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Resend email of a specific invitation in an org. + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /v2/orgs: + get: + description: List all organizations of the user + operationId: listOrganizations_1 + parameters: + - description: The page number of result + in: query + name: page-number + required: false + schema: + format: int32 + type: integer + - description: The page size of result + in: query + name: page-size + required: false + schema: + format: int32 + type: integer + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/OrgListResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: List Organizations + tags: + - Orgs + /v2/orgs/{org_name}: + get: + description: Get organization information + operationId: getOrganization + parameters: + - in: path + name: org_name + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/OrgResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Get Organization + tags: + - Orgs + patch: + description: Update organization information + operationId: updateOrganization + parameters: + - in: path + name: org_name + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OrgProfileUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/OrgResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Update Organization + tags: + - Orgs + /v2/users/me: + get: + description: What am I? + operationId: whoAmI + parameters: + - in: query + name: org-name + required: false + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Who am I? + tags: + - Users Management + patch: + description: Edit current user profile + operationId: editUserProfile + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Edit current user profile + tags: + - Users Management + parameters: [] + /v2/users/me/api-key: + post: + description: Generate API Key + operationId: generateUserApiKey + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserKeyResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Generate API Key + tags: + - Users Management + parameters: [] + /v3/orgs: + post: + description: Create a new organization based on the org info provided in the request. + operationId: createOrganizationFromScratch + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OrgCreateRequestV3' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/OrgResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Create Organization from Scratch + tags: + - Orgs + /v3/orgs/proto-org: + post: + description: Create a new organization based on the org info retrieved from the ProtoOrg. + operationId: createOrganizationFromProtoOrg + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OrgCreateRequestV3' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/OrgResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Create Organization from ProtoOrg + tags: + - Orgs + /v3/orgs/proto-org/validate: + get: + description: Validate org creation from proto org + operationId: protoOrgInvitationValidate + parameters: + - description: JWT that contains org owner email and proto org identifier + in: query + name: invitation_token + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/OrgInvitationResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Validate org creation invite + tags: + - Orgs + /teams/{team_name}/users/nca-invitations: + post: + description: Invites and creates a User in team + operationId: inviteUserToNcaInTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserNcaInvitationRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Invite User to NCA (team version) + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v3/orgs/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /teams/{team_name}/users/{id}: + delete: + description: Remove User from team. + operationId: removeUserFromTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + - in: path + name: id + required: true + schema: + type: string + - description: If anonymize is true, then org owner permission is required. + in: query + name: anonymize + required: false + schema: + default: false + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Remove User from team + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v3/orgs/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /teams/{team_name}/users/{user_email_or_id}: + get: + description: Get info and role/invitation in a team by email or id + operationId: listUserRolesInOrgTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + - in: path + name: user_email_or_id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Get user in a team by email or id. + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v3/orgs/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /teams/{team_name}/users/{user_email_or_id}/add-role: + patch: + description: Invite if user does not exist, otherwise add role in team + operationId: addRoleOrInviteUserToTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + - in: path + name: user_email_or_id + required: true + schema: + type: string + - in: query + name: roles + required: true + schema: + items: + type: string + type: array + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Invite user or add role in team + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v3/orgs/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /teams/{team_name}/users/{user_email_or_id}/remove-role: + delete: + description: Remove role in team if user exists, otherwise remove invitation + operationId: removeRoleOrInvitationInTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + - in: path + name: user_email_or_id + required: true + schema: + type: string + - in: query + name: roles + required: false + schema: + items: + type: string + type: array + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Remove role or invitation in team + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v3/orgs/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /users/nca-invitations: + post: + description: Invites and creates a User in org + operationId: inviteUserToNcaInOrg + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserNcaInvitationRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Invite User to NCA (org version) + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v3/orgs/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /users/{id}: + delete: + description: Remove User from org. + operationId: removeUserFromOrg + parameters: + - in: path + name: id + required: true + schema: + type: string + - description: If anonymize is true, then org owner permission is required. + in: query + name: anonymize + required: false + schema: + default: false + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Remove User from org + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v3/orgs/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /users/{user_email_or_id}: + get: + description: Get info and role/invitation in an org by email or id + operationId: listUserRolesInOrg + parameters: + - in: path + name: user_email_or_id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Get user in an org by email or id. + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v3/orgs/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /users/{user_email_or_id}/add-role: + patch: + description: Invite if user does not exist, otherwise add role in org + operationId: addRoleOrInviteUserToOrg + parameters: + - in: path + name: user_email_or_id + required: true + schema: + type: string + - in: query + name: roles + required: true + schema: + items: + type: string + type: array + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Invite user or add role in org + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v3/orgs/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /users/{user_email_or_id}/remove-role: + delete: + description: Remove role in org if user exists, otherwise remove invitation + operationId: removeRoleOrInvitationInOrg + parameters: + - in: path + name: user_email_or_id + required: true + schema: + type: string + - in: query + name: roles + required: false + schema: + items: + type: string + type: array + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Remove role or invitation in org + tags: + - Users Management + servers: + - url: https://api.ngc.nvidia.com/v3/orgs/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG +components: + schemas: + UserRoleDefinitionsResponse: + description: Response containing all the roles defined in NGC and their allowed actions + properties: + requestStatus: + $ref: '#/components/schemas/RequestStatus' + roles: + description: List of roles + items: + $ref: '#/components/schemas/UserRoleDefinition' + type: array + type: object + ErrorResponse: + properties: + requestStatus: + $ref: '#/components/schemas/RequestStatus' + type: object + UserResponse: + description: ' about one user' + properties: + activationToken: + description: token needed to activate the user to enable login and other features + type: string + ncaRole: + description: NCA role + enum: + - UNKNOWN + - ADMINISTRATOR + - MEMBER + - OWNER + - PENDING + type: string + requestStatus: + $ref: '#/components/schemas/RequestStatus' + user: + $ref: '#/components/schemas/User' + userRoles: + description: DEPRECATED - Please use roles inside user + items: + $ref: '#/components/schemas/UserRole' + type: array + type: object + SearchParams: + properties: + fields: + items: + type: string + type: array + filters: + items: + $ref: '#/components/schemas/SearchParamFilter' + type: array + groupBy: + type: string + orderBy: + items: + $ref: '#/components/schemas/SearchParamOrderBy' + type: array + page: + format: int64 + type: integer + pageSize: + format: int64 + type: integer + query: + type: string + queryFields: + items: + type: string + type: array + scoredSize: + format: int64 + type: integer + type: object + UserListResponse: + description: Response for List User reponse + properties: + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + requestStatus: + $ref: '#/components/schemas/RequestStatus' + users: + description: information about the user + items: + $ref: '#/components/schemas/User' + type: array + type: object + UserCreateRequest: + description: object used request user creation in an existing org + properties: + email: + description: Email address of the user. This should be unique. + maxLength: 128 + minLength: 6 + type: string + emailOptIn: + description: indicates if user has opt in to nvidia emails + type: boolean + eulaAccepted: + description: indicates if user has accepted EULA + type: boolean + name: + description: user name + maxLength: 64 + minLength: 1 + type: string + roleType: + description: DEPRECATED - use roleTypes which allows multiple roles + type: string + roleTypes: + description: feature roles to give to the user + items: + description: feature roles to give to the user + type: string + type: array + salesforceContactJobRole: + description: user job role + type: string + userMetadata: + $ref: '#/components/schemas/UserMetadata' + required: + - email + type: object + UserInvitationListResponse: + description: Response for a list of user invitations. + properties: + invitations: + description: List of invitations. + items: + $ref: '#/components/schemas/UserInvitation' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + requestStatus: + $ref: '#/components/schemas/RequestStatus' + type: object + Response: + properties: + requestStatus: + $ref: '#/components/schemas/RequestStatus' + type: object + TeamListResponse: + description: listing of all teams + properties: + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + requestStatus: + $ref: '#/components/schemas/RequestStatus' + teams: + items: + $ref: '#/components/schemas/Team' + type: array + type: object + TeamCreateRequest: + description: Request to create new Team + properties: + description: + description: description of the team + maxLength: 255 + type: string + name: + description: team name + maxLength: 19 + minLength: 2 + type: string + required: + - name + type: object + TeamCreateResponse: + description: response to an team creation request, includes unique team id + properties: + requestStatus: + $ref: '#/components/schemas/RequestStatus' + team: + $ref: '#/components/schemas/Team' + type: object + TeamResponse: + description: details about one team + properties: + requestStatus: + $ref: '#/components/schemas/RequestStatus' + team: + $ref: '#/components/schemas/Team' + type: object + TeamUpdateRequest: + description: object used to update information about existing team + properties: + description: + description: description of the team + maxLength: 255 + type: string + infinityManagerSettings: + $ref: '#/components/schemas/InfinityManagerSettings' + repoScanSettings: + $ref: '#/components/schemas/RepoScanSettings' + type: object + OrgListResponse: + description: List of organizations. + properties: + organizations: + items: + $ref: '#/components/schemas/Organization' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + requestStatus: + $ref: '#/components/schemas/RequestStatus' + type: object + OrgResponse: + description: info about an organizations + properties: + organizations: + $ref: '#/components/schemas/Organization' + requestStatus: + $ref: '#/components/schemas/RequestStatus' + type: object + OrgProfileUpdateRequest: + description: Object used to update Org profile information + properties: + description: + description: optional description of the organization + maxLength: 128 + type: string + displayName: + description: Name of the organization that will be shown to users + maxLength: 255 + minLength: 1 + type: string + type: object + UserUpdateRequest: + description: object used to request user update + properties: + hasEmailOptIn: + description: indicates if user has opt in to nvidia emails + type: boolean + hasSignedAODTEULA: + description: indicates if user has accepted AODT End User License Agreement. + type: boolean + hasSignedAiFoundryPartnershipsEULA: + description: indicates if user has accepted AI Foundry Partnerships End User License Agreement. + type: boolean + hasSignedBaseCommandEULA: + description: indicates if user has accepted Base Command EULA + type: boolean + hasSignedBaseCommandManagerEULA: + description: indicates if user has accepted Base Command Manager End User License Agreement. + type: boolean + hasSignedBioNeMoEULA: + description: indicates if user has accepted BioNeMo End User License Agreement. + type: boolean + hasSignedContainerPublishingEULA: + description: indicates if user has accepted container publishing eula + type: boolean + hasSignedCuOptEULA: + description: indicates if user has accepted CuOpt End User License Agreement. + type: boolean + hasSignedEULA: + description: indicates if user has accepted NGC EULA + type: boolean + hasSignedEarth2EULA: + description: indicates if user has accepted Earth-2 End User License Agreement. + type: boolean + hasSignedEgxEULA: + description: indicates if user has accepted EGX EULA + type: boolean + hasSignedFleetCommandEULA: + description: indicates if user has accepted Fleet Command End User License Agreement. + type: boolean + hasSignedLlmEULA: + description: indicates if user has accepted LLM End User License Agreement. + type: boolean + hasSignedNVAIEEULA: + description: indicates if user has accepted Fleet Command End User License Agreement. + type: boolean + hasSignedNVQCEULA: + description: indicates if user has accepted Nvidia Quantum Cloud End User License Agreement. + type: boolean + hasSignedNvidiaEULA: + description: indicates if user has accepted NVIDIA EULA + type: boolean + hasSignedOmniverseEULA: + description: indicates if user has accepted Omniverse End User License Agreement. + type: boolean + hasSignedPrivacyPolicy: + description: indicates if the user has signed the Privacy Policy + type: boolean + hasSignedThirdPartyRegistryShareEULA: + description: indicates if user has consented to share their registration info with other parties + type: boolean + name: + description: user name + maxLength: 64 + minLength: 1 + type: string + userMetadata: + $ref: '#/components/schemas/UserMetadata' + type: object + UserKeyResponse: + description: response to a request to access key such as docker token + properties: + cloudNfsKey: + type: string + cloudNfsKeyPwd: + type: string + cloudNfsUserName: + type: string + key: + maxLength: 255 + type: string + requestStatus: + $ref: '#/components/schemas/RequestStatus' + required: + - key + type: object + OrgCreateRequestV3: + description: Request to create new Organization in v3 flow + properties: + country: + description: user country + type: string + description: + description: optional description of the organization + maxLength: 128 + type: string + displayName: + description: Name of the organization that will be shown to users. + maxLength: 255 + minLength: 1 + type: string + initiator: + description: Identify the initiator of the org request + type: string + isInternal: + description: Is NVIDIA internal org or not + type: boolean + name: + description: Organization name + maxLength: 64 + minLength: 2 + type: string + ncaId: + description: NVIDIA Cloud Account Identifier + type: string + ncaNumber: + description: NVIDIA Cloud Account Number + type: string + orgOwner: + $ref: '#/components/schemas/OrgOwnerV3' + pecName: + description: product end customer name for enterprise(Fleet Command) product + type: string + pecSfdcId: + description: product end customer salesforce.com Id (external customer Id) for enterprise(Fleet Command) product + type: string + productEnablements: + items: + $ref: '#/components/schemas/ProductEnablement' + type: array + productSubscriptions: + description: This should be deprecated, use productEnablements instead + items: + $ref: '#/components/schemas/ProductSubscription' + type: array + protoOrgId: + description: Proto org identifier + type: string + salesforceAccountIndustry: + description: Company or organization industry + type: string + sendEmail: + description: Send email to org owner or not. Default is true + type: boolean + type: + enum: + - UNKNOWN + - CLOUD + - ENTERPRISE + - INDIVIDUAL + type: string + type: object + OrgInvitationResponse: + description: Invitation Validation Response. + properties: + orgInvitation: + $ref: '#/components/schemas/OrgInvitation' + requestStatus: + $ref: '#/components/schemas/RequestStatus' + type: object + UserNcaInvitationRequest: + description: NCA User invitation request + properties: + email: + description: Is the user email + maxLength: 128 + minLength: 7 + type: string + invitationExpirationIn: + description: Is the numbers of days the invitation will expire + format: int32 + type: integer + inviteAs: + description: Nca allow users to be invited as Admin and as Member + enum: + - ADMIN + - MEMBER + type: string + message: + description: Is a message to the new user + type: string + type: object + RequestStatus: + properties: + requestId: + type: string + serverId: + type: string + statusCode: + description: Describes response status reported by the server. + enum: + - UNKNOWN + - SUCCESS + - UNAUTHORIZED + - PAYMENT_REQUIRED + - FORBIDDEN + - TIMEOUT + - EXISTS + - NOT_FOUND + - INTERNAL_ERROR + - INVALID_REQUEST + - INVALID_REQUEST_VERSION + - INVALID_REQUEST_DATA + - METHOD_NOT_ALLOWED + - CONFLICT + - UNPROCESSABLE_ENTITY + - TOO_MANY_REQUESTS + - INSUFFICIENT_STORAGE + - SERVICE_UNAVAILABLE + - PAYLOAD_TOO_LARGE + - NOT_ACCEPTABLE + - UNAVAILABLE_FOR_LEGAL_REASONS + - BAD_GATEWAY + - PRECONDITION_FAILED + type: string + statusDescription: + type: string + type: object + UserRoleDefinition: + description: List of roles + properties: + allowedActions: + description: List of actions that this role allows + items: + $ref: '#/components/schemas/ServiceAccess' + type: array + displayName: + description: Display Name of the role + type: string + name: + description: Name of the role + type: string + product: + $ref: '#/components/schemas/RoleProduct' + shortDisplayName: + description: Short Display Name of the role + type: string + type: object + User: + description: information about the user + properties: + clientId: + description: unique auth client id of this user. + type: string + createdDate: + description: Created date for this user + type: string + email: + description: Email address of the user. This should be unique. + maxLength: 128 + minLength: 7 + type: string + firstLoginDate: + description: Last time the user logged in + type: string + hasBetaAccess: + description: Determines if the user has beta access + type: boolean + hasProfile: + description: indicate if user profile has been completed. + type: boolean + hasSignedAODTEULA: + description: indicates if user has accepted AODT End User License Agreement. + type: boolean + hasSignedAiFoundryPartnershipsEULA: + description: indicates if user has accepted AI Foundry Partnerships eula + type: boolean + hasSignedBaseCommandEULA: + description: indicates if user has accepted Base Command End User License Agreement. + type: boolean + hasSignedBaseCommandManagerEULA: + description: indicates if user has accepted Base Command Manager End User License Agreement. + type: boolean + hasSignedBioNeMoEULA: + description: indicates if user has accepted BioNeMo End User License Agreement. + type: boolean + hasSignedContainerPublishingEULA: + description: indicates if user has accepted container publishing eula + type: boolean + hasSignedCuOptEULA: + description: indicates if user has accepted CuOpt eula + type: boolean + hasSignedEULA: + description: Determines if the user has signed the NGC End User License Agreement. + type: boolean + hasSignedEarth2EULA: + description: indicates if user has accepted Earth-2 eula + type: boolean + hasSignedEgxEULA: + description: '[Deprecated] indicates if user has accepted EGX End User License Agreement.' + type: boolean + hasSignedFleetCommandEULA: + description: indicates if user has accepted Fleet Command End User License Agreement. + type: boolean + hasSignedLlmEULA: + description: indicates if user has accepted LLM End User License Agreement. + type: boolean + hasSignedNVAIEEULA: + description: indicates if user has accepted Fleet Command End User License Agreement. + type: boolean + hasSignedNVQCEULA: + description: indicates if user has accepted Nvidia Quantum Cloud End User License Agreement. + type: boolean + hasSignedNvidiaEULA: + description: Determines if the user has signed the NVIDIA End User License Agreement. + type: boolean + hasSignedOmniverseEULA: + description: indicates if user has accepted Omniverse End User License Agreement. + type: boolean + hasSignedPrivacyPolicy: + description: Determines if the user has signed the Privacy Policy. + type: boolean + hasSignedThirdPartyRegistryShareEULA: + description: indicates if user has consented to share their registration info with other parties + type: boolean + hasSubscribedToEmail: + description: Determines if the user has opted in email subscription. + type: boolean + id: + description: unique Id of this user. + format: int64 + type: integer + idpType: + description: Type of IDP, Identity Provider. Used for login. + enum: + - NVIDIA + - ENTERPRISE + type: string + isActive: + description: Determines if the user is active or not. + type: boolean + isDeleted: + description: Indicates if user was deleted from the system. + type: boolean + isSAML: + description: Determines if the user is a SAML account or not. + type: boolean + jobPositionTitle: + description: Title of user's job position. + type: string + lastLoginDate: + description: Last time the user logged in + type: string + name: + description: user name + maxLength: 64 + minLength: 1 + type: string + roles: + description: List of roles that the user have + items: + $ref: '#/components/schemas/UserRole' + type: array + starfleetId: + description: unique starfleet id of this user. + type: string + storageQuota: + description: Storage quota for this user. + items: + $ref: '#/components/schemas/UserStorageQuota' + type: array + updatedDate: + description: Updated date for this user + type: string + userMetadata: + $ref: '#/components/schemas/UserMetadata' + verified: + description: Is user's email or phone number is verified + type: boolean + type: object + UserRole: + description: List of roles that the user have + properties: + org: + $ref: '#/components/schemas/Organization' + orgRoles: + description: List of org role types that the user have + items: + description: List of org role types that the user have + type: string + type: array + roleTypes: + description: DEPRECATED - List of role types that the user have + items: + description: DEPRECATED - List of role types that the user have + type: string + type: array + targetSystemUserIdentifier: + $ref: '#/components/schemas/TargetSystemUserIdentifier' + team: + $ref: '#/components/schemas/Team' + teamRoles: + description: List of team role types that the user have + items: + description: List of team role types that the user have + type: string + type: array + type: object + SearchParamFilter: + properties: + field: + type: string + value: + type: string + type: object + SearchParamOrderBy: + properties: + field: + type: string + value: + enum: + - ASC + - DESC + type: string + type: object + PaginationInfo: + description: object that describes the pagination information + properties: + index: + description: Page index of results + format: int32 + type: integer + nextPage: + description: Serialized pointer to the next results page. Should be used for fetching next page. Can be empty + type: string + size: + description: Number of results in page + format: int32 + type: integer + totalPages: + description: Total number of pages available + format: int64 + type: integer + totalResults: + description: Total number of results available + format: int64 + type: integer + type: object + UserMetadata: + description: Metadata information about the user. + properties: + company: + description: Name of the company + maxLength: 128 + type: string + companyUrl: + description: Company URL + type: string + country: + description: Country of the user + type: string + firstName: + description: User's first name + maxLength: 255 + type: string + industry: + description: Industry segment + type: string + interest: + description: List of development areas that user has interest + items: + description: List of development areas that user has interest + type: string + type: array + lastName: + description: User's last name + maxLength: 255 + type: string + role: + description: Role of the user in the company + type: string + type: object + UserInvitation: + description: User invitation to an NGC org or team + properties: + createdDate: + description: Date on which the invitation was created. (ISO-8601 format) + type: string + email: + description: Email address of the user. + maxLength: 128 + minLength: 7 + type: string + id: + description: Unique invitation ID + type: string + isProcessed: + description: Flag indicating if the invitation has already been accepted by the user. + type: boolean + name: + description: user name + maxLength: 64 + minLength: 1 + type: string + org: + description: Org to which a user was invited. + type: string + roles: + description: List of roles that the user have. + items: + description: List of roles that the user have. + type: string + type: array + team: + description: Team to which a user was invited. + type: string + type: + description: Type of invitation. The invitation is either to an organization or to a team within organization. + enum: + - ORGANIZATION + - TEAM + type: string + type: object + Team: + description: Information about the team + properties: + description: + description: description of the team + type: string + id: + description: unique Id of this team. + format: int64 + type: integer + infinityManagerSettings: + $ref: '#/components/schemas/InfinityManagerSettings' + isDeleted: + description: indicates if the team is deleted or not + type: boolean + name: + description: team name + type: string + repoScanSettings: + $ref: '#/components/schemas/RepoScanSettings' + type: object + InfinityManagerSettings: + description: Infinity manager setting definition + properties: + infinityManagerEnableTeamOverride: + description: Allow override settings at team level. Only used in org level object + type: boolean + infinityManagerEnabled: + description: Enable the infinity manager or not. Used both in org and team level object + type: boolean + type: object + RepoScanSettings: + description: Repo scan setting definition + properties: + repoScanAllowOverride: + description: Allow org admin to override the org level repo scan settings + type: boolean + repoScanByDefault: + description: Allow repository scanning by default + type: boolean + repoScanEnableNotifications: + description: Sends notification to end user after scanning is done + type: boolean + repoScanEnableTeamOverride: + description: Allow override settings at team level. Only used in org level object + type: boolean + repoScanEnabled: + description: Enable the repository scan or not. Only used in org level object + type: boolean + repoScanShowResults: + description: Allow showing scan results to CLI or UI + type: boolean + type: object + Organization: + description: Information about the Organization + properties: + alternateContact: + $ref: '#/components/schemas/AlternateContact' + billingAccountId: + description: Billing account ID. + type: string + canAddOn: + description: Identifies if the org can be reused. + type: boolean + country: + description: ISO country code of the organization. + type: string + description: + description: Optional description of the organization. + type: string + displayName: + description: Name of the organization that will be shown to users. + maxLength: 255 + minLength: 1 + type: string + id: + description: Unique Id of this team. + format: int64 + type: integer + idpId: + description: Identity Provider ID. + type: string + industry: + description: Industry of the organization. + type: string + infinityManagerSettings: + $ref: '#/components/schemas/InfinityManagerSettings' + isDatasetServiceEnabled: + description: Dataset Service enable flag for an organization + type: boolean + isInternal: + description: Is NVIDIA internal org or not + type: boolean + isProto: + description: Indicates when the org is a proto org + type: boolean + isQuickStartEnabled: + description: Quick Start enable flag for an organization + type: boolean + isRegistrySSEEnabled: + description: If a server side encryption is enabled for private registry (models, resources) + type: boolean + isSecretsManagerServiceEnabled: + description: Secrets Manager Service enable flag for an organization + type: boolean + isSecureCredentialSharingServiceEnabled: + description: Secure Credential Sharing Service enable flag for an organization + type: boolean + isSeparateInfluxDbUsed: + description: If a separate influx db used for an organization in BCP for job telemetry + type: boolean + name: + description: Organization name. + type: string + ncaAccountNumber: + description: NVIDIA Cloud Account Number. + type: string + orgOwner: + $ref: '#/components/schemas/OrgOwner' + orgOwners: + description: Org owners + items: + $ref: '#/components/schemas/OrgOwner' + type: array + pecSfdcId: + description: Product end customer salesforce.com Id (external customer Id). pecSfdcId is for EMS (entitlement management service) to track external paid customer. + type: string + productEnablements: + items: + $ref: '#/components/schemas/ProductEnablement' + type: array + productSubscriptions: + items: + $ref: '#/components/schemas/ProductSubscription' + type: array + repoScanSettings: + $ref: '#/components/schemas/RepoScanSettings' + type: + enum: + - UNKNOWN + - CLOUD + - ENTERPRISE + - INDIVIDUAL + type: string + usersInfo: + $ref: '#/components/schemas/UsersInfo' + type: object + OrgOwnerV3: + description: Org owner. + properties: + email: + description: Email address of the org owner. + maxLength: 128 + type: string + fullName: + description: Org owner name. + maxLength: 64 + minLength: 1 + type: string + idpId: + description: Identity Provider ID of the org owner. + type: string + starfleetId: + description: Starfleet ID of the org owner. + type: string + required: + - email + type: object + ProductEnablement: + description: Product Enablement + properties: + expirationDate: + description: Date on which the subscription expires. The subscription is invalid after this date. (yyyy-MM-dd) + type: string + poDetails: + items: + $ref: '#/components/schemas/PurchaseOrder' + type: array + productName: + description: Product Name (NVAIE, BASE_COMMAND, REGISTRY, etc) + type: string + type: + description: Product Enablement Types + enum: + - NGC_ADMIN_EVAL + - NGC_ADMIN_NFR + - NGC_ADMIN_COMMERCIAL + - EMS_EVAL + - EMS_NFR + - EMS_COMMERCIAL + - NGC_ADMIN_DEVELOPER + type: string + required: + - productName + - type + type: object + ProductSubscription: + description: Product Subscription + properties: + emsEntitlementType: + description: 'EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL)' + enum: + - EMS_EVAL + - EMS_NFR + - EMS_COMMERICAL + - EMS_COMMERCIAL + type: string + expirationDate: + description: Date on which the subscription expires. The subscription is invalid after this date. (yyyy-MM-dd) + type: string + id: + description: Unique entitlement identifier + type: string + productName: + description: Product Name (NVAIE, BASE_COMMAND, FleetCommand, REGISTRY, etc). + type: string + startDate: + description: Date on which the subscription becomes active. (yyyy-MM-dd) + type: string + type: + description: 'Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, NGC_ADMIN_COMMERCIAL)' + enum: + - NGC_ADMIN_EVAL + - NGC_ADMIN_NFR + - NGC_ADMIN_COMMERCIAL + type: string + required: + - productName + type: object + OrgInvitation: + description: Org invitation to NGC + properties: + email: + description: Email address of the user. + type: string + protoOrgId: + description: Proto Org identifier. + type: string + type: object + ServiceAccess: + description: List of actions that this role allows + properties: + accessLevels: + description: List of access levels that this role allows + items: + description: List of access levels that this role allows + type: string + type: array + service: + description: Service that this role allows + type: string + type: object + RoleProduct: + description: Product information of the role + properties: + displayName: + description: Display Name of the product from the product catalog to which this role is associated with + type: string + name: + description: Name of the product from the product catalog to which this role is associated with + type: string + type: object + UserStorageQuota: + description: represents user storage quota for a given ace and available unused storage + properties: + aceId: + description: id of the ace + format: int64 + type: integer + aceName: + description: name of the ace + type: string + available: + description: Available space in bytes + format: int64 + type: integer + datasetCount: + description: Number of datasets that are a part of user's used storage + format: int64 + type: integer + datasetsUsage: + description: Space used by datasets in bytes + format: int64 + type: integer + orgName: + description: The org name that this user quota tied to. This is needed for analytics + type: string + quota: + description: Assigned quota in bytes + format: int64 + type: integer + resultsetCount: + description: Number of resultsets that are a part of user's used storage + format: int64 + type: integer + resultsetsUsage: + description: Space used by resultsets in bytes + format: int64 + type: integer + storageClusterDescription: + description: Description of this storage cluster + type: string + storageClusterName: + description: Name of storage cluster + type: string + storageClusterUuid: + description: Identifier to this storage cluster + type: string + workspacesCount: + description: Number of workspaces that are a part of user's used storage + format: int64 + type: integer + workspacesUsage: + description: Space used by workspaces in bytes + format: int64 + type: integer + type: object + TargetSystemUserIdentifier: + description: Information about the user who is attempting to run the job + properties: + gid: + description: gid of the user on this team + format: int64 + type: integer + orgName: + description: Org context for the job + type: string + starfleetId: + description: Starfleet ID of the user creating the job. + type: string + teamName: + description: Team context for the job + type: string + uid: + description: uid of the user on this team + format: int64 + type: integer + userId: + description: Unique ID of the user who submitted the job + format: int64 + type: integer + type: object + AlternateContact: + description: Org Owner Alternate Contact + properties: + email: + description: Alternate contact's email. + maxLength: 128 + minLength: 6 + type: string + fullName: + description: Full name of the alternate contact. + maxLength: 255 + type: string + type: object + OrgOwner: + description: Org owner. + properties: + email: + description: Email address of the org owner. + maxLength: 128 + type: string + fullName: + description: Org owner name. + maxLength: 64 + minLength: 1 + type: string + lastLoginDate: + description: Last time the org owner logged in. + type: string + required: + - email + type: object + UsersInfo: + description: Users information. + properties: + totalUsers: + description: Total number of users. + format: int64 + type: integer + type: object + PurchaseOrder: + description: Purchase Order. + properties: + entitlementId: + description: Entitlement identifier. + type: string + pkId: + description: PAK (Product Activation Key) identifier. + type: string + type: object + x-stackQL-resources: + roles: + id: nvidia.orgs.roles + name: roles + title: Roles + methods: + list: + operation: + $ref: '#/paths/~1roles/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.roles + request: + nativeCasing: kebab + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/roles/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + users: + id: nvidia.orgs.users + name: users + title: Users + methods: + get_by_starfleet_id: + operation: + $ref: '#/paths/~1starfleetIds~1{starfleet_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.user + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1users/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.users + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1users/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + delete: + operation: + $ref: '#/paths/~1users~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1users~1{user_email_or_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.user + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/users/methods/get_by_starfleet_id' + - $ref: '#/components/x-stackQL-resources/users/methods/get' + - $ref: '#/components/x-stackQL-resources/users/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/users/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/users/methods/delete' + replace: [] + team_members: + id: nvidia.orgs.team_members + name: team_members + title: Team Members + methods: + get_by_starfleet_id: + operation: + $ref: '#/paths/~1team~1{team_name}~1starfleetIds~1{starfleet_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1team~1{team_name}~1users/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.users + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1users/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + add: + operation: + $ref: '#/paths/~1team~1{team_name}~1users~1{id}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + remove: + operation: + $ref: '#/paths/~1teams~1{team_name}~1users~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1teams~1{team_name}~1users~1{user_email_or_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/team_members/methods/get_by_starfleet_id' + - $ref: '#/components/x-stackQL-resources/team_members/methods/get' + - $ref: '#/components/x-stackQL-resources/team_members/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/team_members/methods/add' + - $ref: '#/components/x-stackQL-resources/team_members/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/team_members/methods/remove' + replace: [] + team_invitations: + id: nvidia.orgs.team_invitations + name: team_invitations + title: Team Invitations + methods: + list: + operation: + $ref: '#/paths/~1team~1{team_name}~1users~1invitations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.invitations + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + delete: + operation: + $ref: '#/paths/~1team~1{team_name}~1users~1invitations~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + resend_email: + operation: + $ref: '#/paths/~1team~1{team_name}~1users~1invitations~1{id}~1resend-invitation-email/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create_nca: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1teams~1{team_name}~1users~1nca-invitations/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/team_invitations/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/team_invitations/methods/create_nca' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/team_invitations/methods/delete' + replace: [] + teams: + id: nvidia.orgs.teams + name: teams + title: Teams + methods: + list: + operation: + $ref: '#/paths/~1teams/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.teams + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1teams/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1teams~1{team_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.team + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1teams~1{team_name}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1teams~1{team_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/teams/methods/get' + - $ref: '#/components/x-stackQL-resources/teams/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/teams/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/teams/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/teams/methods/delete' + replace: [] + user_invitations: + id: nvidia.orgs.user_invitations + name: user_invitations + title: User Invitations + methods: + list: + operation: + $ref: '#/paths/~1users~1invitations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.invitations + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + delete: + operation: + $ref: '#/paths/~1users~1invitations~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + resend_email: + operation: + $ref: '#/paths/~1users~1invitations~1{id}~1resend-invitation-email/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create_nca: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1users~1nca-invitations/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/user_invitations/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/user_invitations/methods/create_nca' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/user_invitations/methods/delete' + replace: [] + orgs: + id: nvidia.orgs.orgs + name: orgs + title: Orgs + methods: + list: + operation: + $ref: '#/paths/~1v2~1orgs/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.organizations + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + get: + operation: + $ref: '#/paths/~1v2~1orgs~1{org_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.organizations + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1orgs~1{org_name}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1orgs/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/orgs/methods/get' + - $ref: '#/components/x-stackQL-resources/orgs/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/orgs/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/orgs/methods/update' + delete: [] + replace: [] + current_user: + id: nvidia.orgs.current_user + name: current_user + title: Current User + methods: + get: + operation: + $ref: '#/paths/~1v2~1users~1me/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.user + request: + nativeCasing: kebab + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1users~1me/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create_api_key: + operation: + $ref: '#/paths/~1v2~1users~1me~1api-key/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/current_user/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/current_user/methods/update' + delete: [] + replace: [] + proto_orgs: + id: nvidia.orgs.proto_orgs + name: proto_orgs + title: Proto Orgs + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1orgs~1proto-org/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + validate: + operation: + $ref: '#/paths/~1v3~1orgs~1proto-org~1validate/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.orgInvitation + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/proto_orgs/methods/validate' + insert: + - $ref: '#/components/x-stackQL-resources/proto_orgs/methods/create' + update: [] + delete: [] + replace: [] + team_member_roles: + id: nvidia.orgs.team_member_roles + name: team_member_roles + title: Team Member Roles + methods: + add: + operation: + $ref: '#/paths/~1teams~1{team_name}~1users~1{user_email_or_id}~1add-role/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + remove: + operation: + $ref: '#/paths/~1teams~1{team_name}~1users~1{user_email_or_id}~1remove-role/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/team_member_roles/methods/add' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/team_member_roles/methods/remove' + replace: [] + user_roles: + id: nvidia.orgs.user_roles + name: user_roles + title: User Roles + methods: + add: + operation: + $ref: '#/paths/~1users~1{user_email_or_id}~1add-role/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + remove: + operation: + $ref: '#/paths/~1users~1{user_email_or_id}~1remove-role/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/user_roles/methods/add' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/user_roles/methods/remove' + replace: [] +servers: + - url: https://api.ngc.nvidia.com diff --git a/provider-dev/openapi/src/nvidia/v00.00.00000/services/private_registry.yaml b/provider-dev/openapi/src/nvidia/v00.00.00000/services/private_registry.yaml new file mode 100644 index 0000000..cdd36dd --- /dev/null +++ b/provider-dev/openapi/src/nvidia/v00.00.00000/services/private_registry.yaml @@ -0,0 +1,20458 @@ +openapi: 3.1.0 +info: + title: NVIDIA NGC Private Registry + description: 'Org-scoped artifact metadata in the NGC private registry: models, resources, recipes, generic artifacts (helm charts, endpoints, blueprints, agents, playbooks, APIs, skills), versions and files, collections, shares, deployment parameters, encryption keys and workflows. Team-scoped twins are mapped as *_by_team methods (source: the Private Artifacts (Models) API definition, responses from the ngcsdk data classes).' + version: 0.0.1-SNAPSHOT +paths: + /encryption-keys: + get: + description: List encryption keys in org + operationId: listKeysInOrg + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/KeyListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List encryption keys in org + tags: + - Encryption Keys + servers: + - url: https://api.ngc.nvidia.com/v2/artifact-registry/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /encryption-keys/{key_id}: + get: + description: List artifacts for encryption key in org + operationId: listArtifactsForKeyInOrg + parameters: + - description: Key ID + in: path + name: key_id + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: query + name: artifact-type + required: false + schema: + default: MODEL + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/KeyArtifactListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifacts for encryption key in org + tags: + - Encryption Keys + delete: + description: Revoke encryption key and disassociate from all artifacts in org + operationId: deleteKeyFromOrg + parameters: + - description: Key ID + in: path + name: key_id + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + responses: + '202': + content: + application/json: + schema: + $ref: '#/components/schemas/WorkflowStatusUrlResponse' + description: Accepted + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Revoke encryption key in org + tags: + - Encryption Keys + servers: + - url: https://api.ngc.nvidia.com/v2/artifact-registry/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/encryption-keys: + get: + description: List encryption keys in org/team + operationId: listKeysInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/KeyListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List encryption keys in org/team + tags: + - Encryption Keys + servers: + - url: https://api.ngc.nvidia.com/v2/artifact-registry/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/encryption-keys/{key_id}: + get: + description: List artifacts for encryption key in org/team + operationId: listArtifactsForKeyInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Key ID + in: path + name: key_id + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: query + name: artifactType + required: false + schema: + default: MODEL + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/KeyArtifactListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifacts for encryption key in org/team + tags: + - Encryption Keys + delete: + description: Revoke encryption key and disassociate from all artifacts in org/team + operationId: deleteKeyFromTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Key ID + in: path + name: key_id + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + responses: + '202': + content: + application/json: + schema: + $ref: '#/components/schemas/WorkflowStatusUrlResponse' + description: Accepted + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Revoke encryption key in org/team + tags: + - Encryption Keys + servers: + - url: https://api.ngc.nvidia.com/v2/artifact-registry/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team}/workflows/{workflow_id}: + get: + description: Returns the current status (pending, running, completed, or failed) of an artifact-registry Temporal workflow execution within the specified organization and team. + operationId: getWorkflowStatusForTeam + parameters: + - description: Team name + in: path + name: team + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Workflow identifier + in: path + name: workflow_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/WorkflowStatusResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get team-scoped workflow status + tags: + - Workflows + servers: + - url: https://api.ngc.nvidia.com/v2/artifact-registry/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /workflows/{workflow_id}: + get: + description: Returns the current status (pending, running, completed, or failed) of an artifact-registry Temporal workflow execution within the specified organization. + operationId: getWorkflowStatus + parameters: + - description: Workflow identifier + in: path + name: workflow_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/WorkflowStatusResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get workflow status + tags: + - Workflows + servers: + - url: https://api.ngc.nvidia.com/v2/artifact-registry/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /collections: + get: + description: List collections the user can access in the specified org + operationId: listCollectionsInOrg + parameters: + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Order by + in: query + name: order-by + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List collections in org + tags: + - Collections + post: + description: Create collection in org + operationId: createCollectionInOrg + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create collection in org + tags: + - Collections + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /collections/{collection_name}: + get: + description: Get collection details in org + operationId: getCollectionInOrg + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get collection in org + tags: + - Collections + patch: + description: Update collection details in org + operationId: updateCollectionInOrg + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update collection in org + tags: + - Collections + delete: + description: Delete collection in the specified org + operationId: deleteCollectionInOrg + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete collection in org + tags: + - Collections + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /collections/{collection_name}/artifacts: + patch: + description: Patch collection in the specified org + operationId: patchCollectionInOrg + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionPatchRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Patch collection in org + tags: + - Collections + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /collections/{collection_name}/artifacts/org/{artifact_org_name}/team/{artifact_team_name}/{artifact_type}/{artifact_name}: + put: + description: Add artifact to the specified collection in the specified org from another org and team + operationId: addArtifactToCollectionInOrgFromAnotherOrgAndTeam + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact organization name + in: path + name: artifact_org_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact team name + in: path + name: artifact_team_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Add artifact to collection in org from another org and team + tags: + - Collections + delete: + description: Remove artifact from the specified collection in the specified org from another org + operationId: removeArtifactFromCollectionInOrgFromAnotherOrgAndTeam + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact organization name + in: path + name: artifact_org_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact team name + in: path + name: artifact_team_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Remove artifact from collection in org from another org + tags: + - Collections + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /collections/{collection_name}/artifacts/org/{artifact_org_name}/{artifact_type}/{artifact_name}: + put: + description: Add artifact to the specified collection in the specified org from another org + operationId: addArtifactToCollectionInOrgFromAnotherOrg + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact organization name + in: path + name: artifact_org_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Add artifact to collection in org from another org + tags: + - Collections + delete: + description: Remove artifact from the specified collection in the specified org from another org + operationId: removeArtifactFromCollectionInOrgFromAnotherOrg + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact organization name + in: path + name: artifact_org_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Remove artifact from collection in org from another org + tags: + - Collections + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /collections/{collection_name}/artifacts/{artifact_type}: + get: + description: List collection artifacts the user can access in the specified org + operationId: listCollectionArtifactsInOrg + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Order by + in: query + name: order-by + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List collection artifacts in org + tags: + - Collections + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /collections/{collection_name}/share/product: + put: + description: Publish collection to product + operationId: publishCollectionFromRequest + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionPublishRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Publish collection to product + tags: + - Publish + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /collections/{collection_name}/{artifact_type}/{artifact_name}: + put: + description: Add artifact to the specified collection in the specified org + operationId: addArtifactToCollectionInOrg + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Add artifact to collection in org + tags: + - Collections + delete: + description: Remove artifact from the specified collection in the specified org + operationId: removeArtifactFromCollectionInOrg + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Remove artifact from collection in org + tags: + - Collections + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /helm-charts/{artifact_name}/versions: + get: + description: List chart versions in org + operationId: listHelmChartVersionsInOrg + parameters: + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List chart versions in org + tags: + - Helm Charts + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /helm-charts/{artifact_name}/versions/{version_id}: + get: + description: Get chart version in org + operationId: getHelmChartVersionInOrg + parameters: + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get chart version in org + tags: + - Helm Charts + patch: + description: Update chart version information in org e.g. upload status + operationId: updateHelmChartVersionInOrg + parameters: + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update chart version in org + tags: + - Helm Charts + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /models: + get: + description: This operation lists models the user can access in the org. + operationId: listModelsInOrg + parameters: + - deprecated: true + description: Application name + in: query + name: app-name + required: false + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - deprecated: true + description: '[Deprecated] Page reference, Use page-number instead' + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List models in org + tags: + - Models + post: + description: This operation creates a model in the org. + operationId: createModelInOrg + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModelCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create model in org + tags: + - Models + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /models/{artifact_name}/versions/{version_id}/stash: + patch: + description: Stash artifact version information in org during upload paused state + operationId: stashArtifactVersionInOrg + parameters: + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Stash artifact version in org + tags: + - Model Version + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /models/{model_name}: + get: + description: This operation gets info of a model in the org. + operationId: getModelInOrg + parameters: + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get model details in org + tags: + - Models + patch: + description: This operation updates details of a model in the org. + operationId: updateModelInOrg + parameters: + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModelUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update model in org + tags: + - Models + delete: + tags: + - Models + summary: Delete model in org + description: 'This operation deletes a model in the org (SDK evidence: ngcsdk registry/api/models.py remove_model; not declared in the published definition).' + operationId: deleteModelInOrg + parameters: + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + x-stackql-sdk-evidence: ngcsdk registry/api + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /models/{model_name}/encryption-key: + delete: + description: Disassociate encryption key from model in org and mark it for offline deletion + operationId: disassociateKeyFromModelInOrg + parameters: + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + responses: + '202': + content: + application/json: + schema: + $ref: '#/components/schemas/WorkflowStatusUrlResponse' + description: Accepted + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Disassociate encryption key from model in org + tags: + - Models + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /models/{model_name}/versions: + get: + description: List model versions in org + operationId: listModelVersionsInOrg + parameters: + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List model versions in org + tags: + - Model Version + post: + description: Create a new and empty model version in org. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org + operationId: createModelVersionInOrg + parameters: + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create model version in org + tags: + - Model Version + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /models/{model_name}/versions/{version_id}: + get: + description: Get model version in org + operationId: getModelVersionInOrg + parameters: + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get model version in org + tags: + - Model Version + patch: + description: Update model version information in org e.g. upload status + operationId: updateModelVersionInOrg + parameters: + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + - description: Create zip of version content + in: query + name: create-zip + required: false + schema: + type: boolean + - description: Set version to latest + in: query + name: set-latest + required: false + schema: + type: boolean + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update model version in org + tags: + - Model Version + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /models/{model_name}/versions/{version_id}/files: + get: + description: List files of the model version in org + operationId: listModeFilesInOrg + parameters: + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List model files in org + tags: + - Model Version Files + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /recipes: + get: + description: List recipes the user can access in the specified org + operationId: listRecipesInOrg + parameters: + - description: Application name + in: query + name: app-name + required: false + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipes in org + tags: + - Resources + post: + description: Create recipe in org + operationId: createRecipeInOrg + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create recipe in org + tags: + - Resources + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /recipes/{recipe_name}: + get: + description: Get recipe in org + operationId: getRecipeInOrg + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe in org + tags: + - Resources + patch: + description: Update recipe details in org + operationId: updateRecipeInOrg + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update recipe in org + tags: + - Resources + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /recipes/{recipe_name}/versions: + get: + description: List recipe versions in org + operationId: listRecipeVersionsInOrg + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe versions in org + tags: + - Resource Versions + post: + description: Create recipe version in org. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org + operationId: createRecipeVersionInOrg + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create recipe version in org + tags: + - Resource Versions + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /recipes/{recipe_name}/versions/{version_id}: + get: + description: Get recipe version in org + operationId: getRecipeVersionInOrg + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe version in org + tags: + - Resource Versions + patch: + description: Update recipe version information in org e.g. upload status + operationId: updateRecipeVersionInOrg + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Create zip of version content + in: query + name: create-zip + required: false + schema: + type: boolean + - description: Set version to latest + in: query + name: set-latest + required: false + schema: + type: boolean + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update recipe version in org + tags: + - Resource Versions + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /recipes/{recipe_name}/versions/{version_id}/files: + get: + description: List recipe files in org + operationId: listRecipeFilesInOrg + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe files in org + tags: + - Resource Version Files endpoints + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /repositories/{container_name}/associated-models: + get: + description: List associated model versions by container + operationId: listModelVersionsAssociatedByContainer + parameters: + - description: Container name + in: path + name: container_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List associated model versions by container + tags: + - Model Version + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /repositories/{container_name}/tags/{container_tag}/associated-models: + get: + description: List associated model versions by container + operationId: listModelVersionsAssociatedByContainer_2 + parameters: + - description: Container name + in: path + name: container_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Container tag + in: path + name: container_tag + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List associated model versions by container + tags: + - Model Version + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /resources: + get: + description: List recipes the user can access in the specified org + operationId: listRecipesInOrg_1 + parameters: + - description: Application name + in: query + name: app-name + required: false + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipes in org + tags: + - Resources + post: + description: Create recipe in org + operationId: createRecipeInOrg_1 + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create recipe in org + tags: + - Resources + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /resources/{recipe_name}: + get: + description: Get recipe in org + operationId: getRecipeInOrg_1 + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe in org + tags: + - Resources + patch: + description: Update recipe details in org + operationId: updateRecipeInOrg_1 + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update recipe in org + tags: + - Resources + delete: + tags: + - Resources + summary: Delete resource in org + description: 'This operation deletes a resource in the org (SDK evidence: ngcsdk registry/api/resources.py remove; not declared in the published definition).' + operationId: deleteResourceInOrg + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + x-stackql-sdk-evidence: ngcsdk registry/api + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /resources/{recipe_name}/versions: + get: + description: List recipe versions in org + operationId: listRecipeVersionsInOrg_1 + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe versions in org + tags: + - Resource Versions + post: + description: Create recipe version in org. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org + operationId: createRecipeVersionInOrg_1 + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create recipe version in org + tags: + - Resource Versions + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /resources/{recipe_name}/versions/{version_id}: + get: + description: Get recipe version in org + operationId: getRecipeVersionInOrg_1 + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe version in org + tags: + - Resource Versions + patch: + description: Update recipe version information in org e.g. upload status + operationId: updateRecipeVersionInOrg_1 + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Create zip of version content + in: query + name: create-zip + required: false + schema: + type: boolean + - description: Set version to latest + in: query + name: set-latest + required: false + schema: + type: boolean + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update recipe version in org + tags: + - Resource Versions + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /resources/{recipe_name}/versions/{version_id}/files: + get: + description: List recipe files in org + operationId: listRecipeFilesInOrg_1 + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe files in org + tags: + - Resource Version Files endpoints + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/collections: + get: + description: List collections the user can access in the specified org and team + operationId: listCollectionsInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Order by + in: query + name: order-by + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List collections in team + tags: + - Collections + post: + description: Create collection in org and team + operationId: createCollectionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create collection in org and team + tags: + - Collections + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/collections/{collection_name}: + get: + description: Get collection details in team + operationId: getCollectionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get collection in team + tags: + - Collections + patch: + description: Update collection details in team + operationId: updateCollectionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update collection in team + tags: + - Collections + delete: + description: Delete collection in the specified org and team + operationId: deleteCollectionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete collection in org and team + tags: + - Collections + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/collections/{collection_name}/artifacts: + patch: + description: Patch collection in the specified org and team + operationId: patchCollectionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionPatchRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Patch collection in org and team + tags: + - Collections + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/team/{artifact_team_name}/{artifact_type}/{artifact_name}: + put: + description: Add artifact to the specified collection in the specified org and team from another org and team + operationId: addArtifactToCollectionInTeamFromAnotherOrgAndTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact organization name + in: path + name: artifact_org_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact team name + in: path + name: artifact_team_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Add artifact to collection in org and team from another org and team + tags: + - Collections + delete: + description: Remove artifact from the specified collection in the specified org and team from another org and team + operationId: removeArtifactFromCollectionInTeamFromAnotherOrgAndTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact organization name + in: path + name: artifact_org_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact team name + in: path + name: artifact_team_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Remove artifact from collection in org and team from another org and team + tags: + - Collections + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/{artifact_type}/{artifact_name}: + put: + description: Add artifact to the specified collection in the specified org and team from another org + operationId: addArtifactToCollectionInTeamFromAnotherOrg + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact organization name + in: path + name: artifact_org_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Add artifact to collection in org and team from another org + tags: + - Collections + delete: + description: Remove artifact from the specified collection in the specified org and team from another org + operationId: removeArtifactFromCollectionInTeamFromAnotherOrg + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact organization name + in: path + name: artifact_org_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Remove artifact from collection in org and team from another org + tags: + - Collections + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/collections/{collection_name}/artifacts/{artifact_type}: + get: + description: List collection artifacts the user can access in the specified org and team + operationId: listCollectionArtifactsInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Order by + in: query + name: order-by + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List collection artifacts in org and team + tags: + - Collections + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/collections/{collection_name}/share/product: + put: + description: Publish collection to product + operationId: publishCollectionFromRequest_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionPublishRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Publish collection to product + tags: + - Publish + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/collections/{collection_name}/{artifact_type}/{artifact_name}: + put: + description: Add artifact to the specified collection in the specified org and team + operationId: addArtifactToCollectionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Add artifact to collection in org and team + tags: + - Collections + delete: + description: Remove artifact from the specified collection in the specified org and team + operationId: removeArtifactFromCollectionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Remove artifact from collection in org and team + tags: + - Collections + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/helm-charts/{artifact_name}/versions: + get: + description: List chart versions in team + operationId: listHelmChartVersionsInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List chart versions in team + tags: + - Helm Charts + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/helm-charts/{artifact_name}/versions/{version_id}: + get: + description: Get chart version in team + operationId: getHelmChartVersionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get chart version in team + tags: + - Helm Charts + patch: + description: Update chart version information in team e.g. upload status + operationId: updateHelmChartVersionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update chart version in team + tags: + - Helm Charts + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/models: + get: + description: This operation lists models the user can access in the org/team. + operationId: listModelsInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - deprecated: true + description: Application name + in: query + name: app-name + required: false + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - deprecated: true + description: '[Deprecated] Page reference, Use page-number instead' + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List models in team + tags: + - Models + post: + description: This operation creates a model in the org/team. + operationId: createModelInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModelCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create model in team + tags: + - Models + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/models/{artifact_name}/versions/{version_id}/stash: + patch: + description: Stash artifact version information in team in model version upload paused state + operationId: stashArtifactVersionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Stash artifact version in team + tags: + - Model Version + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/models/{model_name}: + get: + description: This operation gets info of a model in the org/team. + operationId: getModelInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get model in team + tags: + - Models + patch: + description: This operation updates details of a model in the org/team. + operationId: updateModelInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModelUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update model in team + tags: + - Models + delete: + tags: + - Models + summary: Delete model in org/team + description: 'This operation deletes a model in the org/team (SDK evidence: ngcsdk registry/api/models.py remove_model; not declared in the published definition).' + operationId: deleteModelInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + x-stackql-sdk-evidence: ngcsdk registry/api + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/models/{model_name}/encryption-key: + delete: + description: Disassociate encryption key from model in team and mark it for offline deletion + operationId: disassociateKeyFromModelInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + responses: + '202': + content: + application/json: + schema: + $ref: '#/components/schemas/WorkflowStatusUrlResponse' + description: Accepted + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Disassociate encryption key from model in team + tags: + - Models + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/models/{model_name}/versions: + get: + description: List model versions in team + operationId: listModelVersionsInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List model versions in team + tags: + - Model Version + post: + description: Create model version in team. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org + operationId: createModelVersionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create model version in team. + tags: + - Model Version + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/models/{model_name}/versions/{version_id}: + get: + description: Get model version in team + operationId: getModelVersionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get model version in team + tags: + - Model Version + patch: + description: Update model version information in team e.g. upload status + operationId: updateModelVersionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + - description: Create zip of version content + in: query + name: create-zip + required: false + schema: + type: boolean + - description: Set version to latest + in: query + name: set-latest + required: false + schema: + type: boolean + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update model version in team + tags: + - Model Version + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/models/{model_name}/versions/{version_id}/files: + get: + description: List files of the model version in team + operationId: listModeFilesInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List model files in team + tags: + - Model Version Files + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/recipes: + get: + description: List recipes the user can access in the specified org and team + operationId: listRecipesInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Application name + in: query + name: app-name + required: false + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipes in team + tags: + - Resources + post: + description: Create recipe in team + operationId: createRecipeInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create recipe in team + tags: + - Resources + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/recipes/{recipe_name}: + get: + description: Get recipe details in team + operationId: getRecipeInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe in team + tags: + - Resources + patch: + description: Update recipe details in team + operationId: updateRecipeInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update recipe in team + tags: + - Resources + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/recipes/{recipe_name}/versions: + get: + description: List recipe versions in team + operationId: listRecipeVersionsInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe versions in team + tags: + - Resource Versions + post: + description: Create recipe version in team. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org + operationId: createRecipeVersionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create recipe version in team + tags: + - Resource Versions + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/recipes/{recipe_name}/versions/{version_id}: + get: + description: Get recipe version in team + operationId: getRecipeVersionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe version in team + tags: + - Resource Versions + patch: + description: Update recipe version information in team e.g. upload status + operationId: updateRecipeVersionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Create zip of version content + in: query + name: create-zip + required: false + schema: + type: boolean + - description: Set version to latest + in: query + name: set-latest + required: false + schema: + type: boolean + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update recipe version in team + tags: + - Resource Versions + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/recipes/{recipe_name}/versions/{version_id}/files: + get: + description: List recipe files in team + operationId: listRecipeFilesInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe files in team + tags: + - Resource Version Files endpoints + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/repositories/{container_name}/associated-models: + get: + description: List associated model versions by container + operationId: listModelVersionsAssociatedByContainer_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Container name + in: path + name: container_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List associated model versions by container + tags: + - Model Version + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/repositories/{container_name}/tags/{container_tag}/associated-models: + get: + description: List associated model versions by container + operationId: listModelVersionsAssociatedByContainer_3 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Container name + in: path + name: container_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Container tag + in: path + name: container_tag + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List associated model versions by container + tags: + - Model Version + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/resources: + get: + description: List recipes the user can access in the specified org and team + operationId: listRecipesInTeam_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Application name + in: query + name: app-name + required: false + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipes in team + tags: + - Resources + post: + description: Create recipe in team + operationId: createRecipeInTeam_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create recipe in team + tags: + - Resources + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/resources/{recipe_name}: + get: + description: Get recipe details in team + operationId: getRecipeInTeam_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe in team + tags: + - Resources + patch: + description: Update recipe details in team + operationId: updateRecipeInTeam_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update recipe in team + tags: + - Resources + delete: + tags: + - Resources + summary: Delete resource in org/team + description: 'This operation deletes a resource in the org/team (SDK evidence: ngcsdk registry/api/resources.py remove; not declared in the published definition).' + operationId: deleteResourceInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + x-stackql-sdk-evidence: ngcsdk registry/api + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/resources/{recipe_name}/versions: + get: + description: List recipe versions in team + operationId: listRecipeVersionsInTeam_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe versions in team + tags: + - Resource Versions + post: + description: Create recipe version in team. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org + operationId: createRecipeVersionInTeam_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create recipe version in team + tags: + - Resource Versions + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/resources/{recipe_name}/versions/{version_id}: + get: + description: Get recipe version in team + operationId: getRecipeVersionInTeam_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe version in team + tags: + - Resource Versions + patch: + description: Update recipe version information in team e.g. upload status + operationId: updateRecipeVersionInTeam_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Create zip of version content + in: query + name: create-zip + required: false + schema: + type: boolean + - description: Set version to latest + in: query + name: set-latest + required: false + schema: + type: boolean + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update recipe version in team + tags: + - Resource Versions + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/resources/{recipe_name}/versions/{version_id}/files: + get: + description: List recipe files in team + operationId: listRecipeFilesInTeam_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe files in team + tags: + - Resource Version Files endpoints + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}: + get: + description: List artifacts the user can access in the specified org and team + operationId: listArtifactsInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifacts in team + tags: + - Artifacts + post: + description: Create artifact in team + operationId: createArtifactInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create artifact in team + tags: + - Artifacts + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}/{artifact_name}: + get: + description: Get artifact details in team + operationId: getArtifactInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get artifact in team + tags: + - Artifacts + put: + description: Replace artifact details in team + operationId: replaceArtifactInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Replace artifact in team + tags: + - Artifacts + patch: + description: Update artifact details in team + operationId: updateArtifactInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update artifact in team + tags: + - Artifacts + delete: + description: Delete artifact in team + operationId: deleteArtifactInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete artifact in team + tags: + - Artifacts + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}/{artifact_name}/catalog/flags: + get: + description: Get the Catalog Public flags for artifact in team + operationId: getPublicFlagsInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactCatalogFlags' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get Catalog flags + tags: + - Publish + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}/{artifact_name}/collections: + get: + description: List artifact collections the user can access in the specified org and team + operationId: listArtifactCollectionsInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Order by + in: query + name: order-by + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifact collections in org and team + tags: + - Collections + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}/{artifact_name}/collections/sync-release-type-labels: + post: + description: Sync release type labels for all collections containing this artifact. Internal API for service-to-service communication. + operationId: syncCollectionReleaseTypeLabelsForArtifact_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Sync collection release type labels for artifact + tags: + - Collections + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}/{artifact_name}/deployments/params: + get: + description: List artifact deployment parameters in team + operationId: listArtifactDeploymentParametersInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Inherit CSP parameters + in: query + name: inherit-csp-parameters + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifact deployment parameters in team + tags: + - Artifact deployment parameters + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params: + get: + description: Get artifact deployment parameters details in team + operationId: getArtifactDeploymentParametersInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Inherit CSP parameters + in: query + name: inherit-csp-parameters + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get artifact deployment parameters details in team + tags: + - Artifact deployment parameters + post: + description: Create artifact deployment parameters in team + operationId: createArtifactDeploymentParametersInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: No auto labels + in: query + name: no-auto-labels + required: false + schema: + type: boolean + - description: Merge CSP parameters in response + in: query + name: merge-csp-parameters + required: false + schema: + type: boolean + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Conflict + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create artifact deployment parameters in team + tags: + - Artifact deployment parameters + patch: + description: Update artifact deployment parameters in team + operationId: updateArtifactDeploymentParametersInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Merge CSP parameters in response + in: query + name: merge-csp-parameters + required: false + schema: + type: boolean + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Conflict + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update artifact deployment parameters in team + tags: + - Artifact deployment parameters + delete: + description: Delete artifact deployment parameters in team + operationId: deleteArtifactDeploymentParametersInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Conflict + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete artifact deployment parameters in team + tags: + - Artifact deployment parameters + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}/{artifact_name}/license/acceptance: + post: + description: Record license acceptance for an org artifact. + operationId: acceptArtifactLicense_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AcceptArtifactLicenseRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Accept artifact license + tags: + - Publish + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}/{artifact_name}/release-type: + put: + description: Updates the release type (for example GA, EA, beta) of an artifact version within the specified organization and optional team. + operationId: updateReleaseLabel_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateReleaseTypeRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update artifact version release type + tags: + - Publish + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}/{artifact_name}/share: + put: + description: Publish artifact to public + operationId: publishArtifact_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Indicates if guest users can download this artifact + in: query + name: guest-can-download + required: true + schema: + type: boolean + - description: Indicates if artifact is listed publicly + in: query + name: public-can-list + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Publish artifact to public + tags: + - Publish + delete: + description: Undo publishing of artifact to public + operationId: undoPublishArtifact_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Undo publishing of artifact to public + tags: + - Publish + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}/{artifact_name}/share/product: + put: + description: Publish artifact to product + operationId: publishArtifactFromRequest_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactPublishRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Publish artifact to product + tags: + - Publish + delete: + description: Undo publishing of product artifacts + operationId: undoPublishProduct_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Undo publishing of product artifacts + tags: + - Publish + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}/{artifact_name}/terms-of-service: + put: + description: Update artifact terms of service + operationId: updateTermsOfService_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactPublishRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update artifact terms of service + tags: + - Publish + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}: + delete: + description: Delete a artifact version in team + operationId: deleteArtifactVersionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete a artifact version in team + tags: + - Artifact Versions + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/configs: + patch: + description: Update artifact version with configs like policy badge + operationId: updateTagLevelPublishConfigs_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateArtifactVersionConfigs' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Publish artifact version with configs like policy badge + tags: + - Publish + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/deployments/{csp_name}: + post: + description: Create artifact version deployment url in team + operationId: createArtifactDeploymentUrlInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentUrlCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentUrlResponse' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Conflict + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create artifact version deployment url in team + tags: + - Artifact deployment parameters + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files: + get: + description: List files of the artifact version in team + operationId: listArtifactFilesInTeam + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifact files in team + tags: + - Artifact Version Files + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/signature: + put: + description: Request to sign artifact version + operationId: signArtifactVersion_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactDownloadResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + tags: + - ArtifactSigning + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}: + get: + description: List artifacts the user can access in the specified org + operationId: listArtifactsInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifacts in org + tags: + - Artifacts + post: + description: Create artifact in org + operationId: createArtifactInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create artifact in org + tags: + - Artifacts + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}/{artifact_name}: + get: + description: Get artifact details in org + operationId: getArtifactInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get artifact in org + tags: + - Artifacts + put: + description: Replace artifact details in org + operationId: replaceArtifactInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Replace artifact in org + tags: + - Artifacts + patch: + description: Update artifact details in org + operationId: updateArtifactInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update artifact in org + tags: + - Artifacts + delete: + description: Delete artifact in org + operationId: deleteArtifactInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete artifact in org + tags: + - Artifacts + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}/{artifact_name}/catalog/flags: + get: + description: Get the Catalog Public flags for artifact in org + operationId: getPublicFlagsInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactCatalogFlags' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get Catalog flags + tags: + - Publish + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}/{artifact_name}/collections: + get: + description: List artifact collections the user can access in the specified org + operationId: listArtifactCollectionsInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Order by + in: query + name: order-by + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifact collections in org + tags: + - Collections + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}/{artifact_name}/collections/sync-release-type-labels: + post: + description: Sync release type labels for all collections containing this artifact. Internal API for service-to-service communication. + operationId: syncCollectionReleaseTypeLabelsForArtifact + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Sync collection release type labels for artifact + tags: + - Collections + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}/{artifact_name}/deployments/params: + get: + description: List artifact deployment parameters in org + operationId: listArtifactDeploymentParametersInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Inherit CSP parameters + in: query + name: inherit-csp-parameters + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifact deployment parameters in org + tags: + - Artifact deployment parameters + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}/{artifact_name}/deployments/{csp_name}/params: + get: + description: Get artifact deployment parameters details in org + operationId: getArtifactDeploymentParametersInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Inherit CSP parameters + in: query + name: inherit-csp-parameters + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get artifact deployment parameters details in org + tags: + - Artifact deployment parameters + post: + description: Create artifact deployment parameters in org + operationId: createArtifactDeploymentParametersInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: No auto labels + in: query + name: no-auto-labels + required: false + schema: + type: boolean + - description: Merge CSP parameters in response + in: query + name: merge-csp-parameters + required: false + schema: + type: boolean + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Conflict + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create artifact deployment parameters in org + tags: + - Artifact deployment parameters + patch: + description: Update artifact deployment parameters in org + operationId: updateArtifactDeploymentParametersInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Merge CSP parameters in response + in: query + name: merge-csp-parameters + required: false + schema: + type: boolean + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Conflict + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update artifact deployment parameters in org + tags: + - Artifact deployment parameters + delete: + description: Delete artifact deployment parameters in org + operationId: deleteArtifactDeploymentParametersInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Conflict + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete artifact deployment parameters in org + tags: + - Artifact deployment parameters + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}/{artifact_name}/license/acceptance: + post: + description: Record license acceptance for an org artifact. + operationId: acceptArtifactLicense + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AcceptArtifactLicenseRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Accept artifact license + tags: + - Publish + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}/{artifact_name}/release-type: + put: + description: Updates the release type (for example GA, EA, beta) of an artifact version within the specified organization and optional team. + operationId: updateReleaseLabel + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateReleaseTypeRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update artifact version release type + tags: + - Publish + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}/{artifact_name}/share: + put: + description: Publish artifact to public + operationId: publishArtifact + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Indicates if guest users can download this artifact + in: query + name: guest-can-download + required: true + schema: + type: boolean + - description: Indicates if artifact is listed publicly + in: query + name: public-can-list + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Publish artifact to public + tags: + - Publish + delete: + description: Undo publishing of artifact to public + operationId: undoPublishArtifact + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Undo publishing of artifact to public + tags: + - Publish + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}/{artifact_name}/share/product: + put: + description: Publish artifact to product + operationId: publishArtifactFromRequest + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactPublishRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Publish artifact to product + tags: + - Publish + delete: + description: Undo publishing of product artifacts + operationId: undoPublishProduct + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Undo publishing of product artifacts + tags: + - Publish + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}/{artifact_name}/terms-of-service: + put: + description: Update artifact terms of service + operationId: updateTermsOfService + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactPublishRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update artifact terms of service + tags: + - Publish + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}/{artifact_name}/versions/{version_id}: + delete: + description: Delete a artifact version in org + operationId: deleteArtifactVersionInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete a artifact version in org + tags: + - Artifact Versions + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}/{artifact_name}/versions/{version_id}/configs: + patch: + description: Update artifact version with configs like policy badge + operationId: updateTagLevelPublishConfigs + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateArtifactVersionConfigs' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Publish artifact version with configs like policy badge + tags: + - Publish + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}/{artifact_name}/versions/{version_id}/deployments/{csp_name}: + post: + description: Create artifact version deployment url in org + operationId: createArtifactDeploymentUrlInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentUrlCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentUrlResponse' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Conflict + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create artifact version deployment url in org + tags: + - Artifact deployment parameters + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}/{artifact_name}/versions/{version_id}/files: + get: + description: List files of the artifact version in org + operationId: listArtifactFilesInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifact files in org + tags: + - Artifact Version Files + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}/{artifact_name}/versions/{version_id}/signature: + put: + description: Request to sign artifact version + operationId: signArtifactVersion + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactDownloadResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + tags: + - ArtifactSigning + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/malware-scan: + post: + description: Initiates malwares can for the artifact + operationId: initiateMalwareScan_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + - description: Contact email + in: query + name: contact-email + required: false + schema: + format: UTF-8 + maxLength: 320 + minLength: 0 + type: string + - description: Nspect identifier + in: query + name: nspect-id + required: false + schema: + format: UTF-8 + maxLength: 64 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Initiates malwares can for the artifact + tags: + - MalwareScan + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}/spec: + post: + description: Create AI Playground for artifactType + operationId: createModelArtifactsSpec_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - models + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create AI Playground for artifactType + tags: + - AIPlayground + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}/{artifact_name}/purge: + delete: + description: Purge Search DB for deleted artifacts + operationId: purgeDeletedArtifact_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Purge Search DB + tags: + - Artifacts + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /team/{team_name}/{artifact_type}/{artifact_name}/spec: + get: + description: Get AI Playground for artifactType + operationId: getModelArtifactsSpec_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - models + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Model name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get AI Playground for artifactType + tags: + - AIPlayground + put: + description: Update AI Playground for artifactType + operationId: updateModelArtifactsSpec_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - models + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Model name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update AI Playground for artifactType + tags: + - AIPlayground + delete: + description: Delete AI Playground for artifactType + operationId: deleteModelArtifactsSpec_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - models + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Model name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete AI Playground for artifactType + tags: + - AIPlayground + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}/{artifact_name}/versions/{version_id}/malware-scan: + post: + description: Initiates malwares can for the artifact + operationId: initiateMalwareScan + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + - description: Contact email + in: query + name: contact-email + required: false + schema: + format: UTF-8 + maxLength: 320 + minLength: 0 + type: string + - description: Nspect identifier + in: query + name: nspect-id + required: false + schema: + format: UTF-8 + maxLength: 64 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Initiates malwares can for the artifact + tags: + - MalwareScan + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}/spec: + post: + description: Create AI Playground for artifactType + operationId: createModelArtifactsSpec + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - models + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create AI Playground for artifactType + tags: + - AIPlayground + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}/{artifact_name}/purge: + delete: + description: Purge Search DB for deleted artifacts + operationId: purgeDeletedArtifact + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Purge Search DB + tags: + - Artifacts + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG + /{artifact_type}/{artifact_name}/spec: + get: + description: Get AI Playground for artifactType + operationId: getModelArtifactsSpec + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - models + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Model name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get AI Playground for artifactType + tags: + - AIPlayground + put: + description: Update AI Playground for artifactType + operationId: updateModelArtifactsSpec + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - models + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Model name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update AI Playground for artifactType + tags: + - AIPlayground + delete: + description: Delete AI Playground for artifactType + operationId: deleteModelArtifactsSpec + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - models + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Model name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete AI Playground for artifactType + tags: + - AIPlayground + servers: + - url: https://api.ngc.nvidia.com/v2/org/{org_name} + variables: + org_name: + description: NGC organization name (the org id shown in the NGC console under Organization -> Setup, e.g. 0123456789ab). Resolved from the NGC_ORG environment variable when it is set (x-stackQL-envVar - the same variable the NVIDIA Terraform provider reads); otherwise it must be supplied on every org-scoped query as WHERE org_name = '<org>'. A WHERE value always takes precedence over the environment. + x-stackQL-envVar: NGC_ORG +components: + schemas: + KeyListResponse: + description: Response to list keys request + properties: + encryptionKeys: + items: + $ref: '#/components/schemas/KeyItem' + type: array + type: object + Response: + properties: + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + WorkflowStatusUrlResponse: + description: Response containing workflow status URL and ID + properties: + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + statusUrl: + description: URL to check the workflow status + type: string + workflowId: + description: ID of the workflow + type: string + type: object + KeyArtifactListResponse: + description: Response containing a list of artifacts associated with a key + properties: + artifacts: + items: + $ref: '#/components/schemas/ArtifactItem' + type: array + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + WorkflowStatusResponse: + description: Response containing workflow status information + properties: + cloneStatus: + $ref: '#/components/schemas/CloneStatus' + description: Progress of cloning artifact version files + duration: + description: Wall-clock execution duration as an ISO-8601 duration (e.g. PT1H30M5S, PT0.001S); Omitted while IN_PROGRESS. + type: string + endTime: + description: UTC instant when the workflow reached a closed state; omitted while IN_PROGRESS. + format: date-time + type: string + message: + description: Human-readable message about the workflow status + maxLength: 255 + type: string + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + startTime: + description: UTC instant when the workflow execution started. + format: date-time + type: string + status: + description: Current status of the workflow + enum: + - IN_PROGRESS + - COMPLETED + - FAILED + - CANCELED + - TERMINATED + - CONTINUED_AS_NEW + - TIMED_OUT + - UNKNOWN + type: string + workflowType: + description: Workflow type. + enum: + - CLONE + - CUSTOMER_MANAGED_KEY + type: string + required: + - message + - requestStatus + - status + type: object + CollectionListResponse: + description: Response to list collections request + properties: + collections: + items: + $ref: '#/components/schemas/Collection' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + CollectionCreateRequest: + description: Properties for the collections to be created + properties: + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + builtBy: + description: organization that built the collection + type: string + category: + enum: + - HEALTHCARE + - SMART_CITIES + - RETAIL + - MANUFACTURING + - SUPERCOMPUTING + - ROBOTICS + - AUTOMOTIVE + - TELECOMMUNICATIONS + - FINANCE + - OIL_AND_GAS + - NATURAL_LANGUAGE_PROCESSING + - AUTOMATIC_SPEECH_RECOGNITION + - INTELLIGENT_VIDEO_ANALYTICS + - OBJECT_DETECTION + - IMAGE_CLASSIFICATION + - ANNOTATION + - IMAGE_SYNTHESIS + - MACHINE_LEARNING + - DEEP_LEARNING + - INFRASTRUCTURE + - HIGH_PERFORMANCE_COMPUTING + - WINDOWS_RTX_ACCELERATED_MODELS + - BEGINNER + - ADVANCED + type: string + description: + description: Description of the collection + type: string + displayName: + description: Display name + maxLength: 64 + minLength: 2 + type: string + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + labelsV2: + items: + type: string + type: array + logo: + description: URL for the logo image + maxLength: 255 + type: string + name: + description: Unique name of the collection + maxLength: 128 + minLength: 1 + pattern: ^[a-z][a-z\d._-]*$ + type: string + ownerName: + description: Name of the user who owns this collection + maxLength: 255 + type: string + publisher: + description: organization that published the collection + maxLength: 255 + type: string + shortDescription: + description: Short description of the collection + maxLength: 255 + type: string + required: + - category + - name + - shortDescription + type: object + CollectionResponse: + description: Response to create collection request + properties: + collection: + $ref: '#/components/schemas/Collection' + description: Collection object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + CollectionUpdateRequest: + description: Properties for the collection to update + properties: + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + builtBy: + description: organization that built the collection + type: string + category: + enum: + - HEALTHCARE + - SMART_CITIES + - RETAIL + - MANUFACTURING + - SUPERCOMPUTING + - ROBOTICS + - AUTOMOTIVE + - TELECOMMUNICATIONS + - FINANCE + - OIL_AND_GAS + - NATURAL_LANGUAGE_PROCESSING + - AUTOMATIC_SPEECH_RECOGNITION + - INTELLIGENT_VIDEO_ANALYTICS + - OBJECT_DETECTION + - IMAGE_CLASSIFICATION + - ANNOTATION + - IMAGE_SYNTHESIS + - MACHINE_LEARNING + - DEEP_LEARNING + - INFRASTRUCTURE + - HIGH_PERFORMANCE_COMPUTING + - WINDOWS_RTX_ACCELERATED_MODELS + - BEGINNER + - ADVANCED + type: string + description: + description: Description of the collection + type: string + displayName: + description: Display name + maxLength: 64 + minLength: 2 + type: string + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + labelsV2: + items: + type: string + type: array + logo: + description: URL for the logo image + maxLength: 255 + type: string + ownerName: + description: Name of the user who owns this collection + maxLength: 255 + type: string + publisher: + description: organization that published the collection + maxLength: 255 + type: string + shortDescription: + description: Short description of the collection + maxLength: 255 + type: string + type: object + CollectionPatchRequest: + description: Properties for the collection to patch + properties: + operations: + items: + $ref: '#/components/schemas/CollectionOperation' + maxItems: 100 + maxItems: 100 + type: array + type: object + ArtifactListResponse: + description: Response to list artifacts request + properties: + artifacts: + items: + $ref: '#/components/schemas/Artifact' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + CollectionPublishRequest: + description: Request to publish a collection + properties: + accessType: + enum: + - LISTED + - EXCLUSIVE + - NOT_LISTED + type: string + canGuestPull: + type: boolean + canPublicList: + type: boolean + isPublic: + type: boolean + productNames: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + type: object + ArtifactVersionListResponse: + description: Response to list artifact versions request + properties: + artifact: + $ref: '#/components/schemas/Artifact' + description: Artifact object + artifactVersions: + items: + $ref: '#/components/schemas/ArtifactVersion' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ArtifactVersionResponse: + description: Response to artifact version request + properties: + artifact: + $ref: '#/components/schemas/Artifact' + description: Artifact object + artifactVersion: + $ref: '#/components/schemas/ArtifactVersion' + description: Artifact version object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ArtifactVersionUpdateRequest: + description: Version properties to update + properties: + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + description: + description: Description of the artifact version + maxLength: 255 + type: string + status: + description: Version status + enum: + - UPLOAD_PENDING + - UPLOAD_COMPLETE + type: string + type: object + ModelListResponse: + description: Response to list models request + properties: + models: + items: + $ref: '#/components/schemas/Model' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ModelCreateRequest: + description: Properties for the models to be created + properties: + application: + description: Application of the model + maxLength: 255 + type: string + bias: + description: Text describing bias in the model + type: string + builtBy: + description: organization that built the repository + maxLength: 255 + type: string + description: + description: Description of the model + type: string + displayName: + description: Display name + maxLength: 64 + minLength: 2 + type: string + encryptionKey: + $ref: '#/components/schemas/EncryptionKey' + description: Customer Managed Key shard configuration for the model + explainability: + description: Text describing explainability for this model + type: string + framework: + description: Framework used to train this model + maxLength: 255 + type: string + hasPlayground: + description: indicate if the Model has AI Playground configured + type: boolean + isPlaygroundEnabled: + description: indicate if AI Playground is enabled in the catalog + type: boolean + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + labelsV2: + items: + type: string + type: array + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + maxLength: 255 + type: string + modelFormat: + description: Format of the model + maxLength: 255 + type: string + name: + description: Unique name of the model + maxLength: 128 + minLength: 1 + pattern: ^[a-z][a-z\d._-]*$ + type: string + ownerName: + description: Name of the user who owns this model + maxLength: 255 + type: string + precision: + description: Precision this model was trained with + maxLength: 255 + type: string + privacy: + description: Text describing the privacy for this model + type: string + publicDatasetUsed: + $ref: '#/components/schemas/Dataset' + publisher: + description: organization that published the repository + maxLength: 255 + type: string + safetyAndSecurity: + description: Text for describing the safety and security in the model + type: string + shortDescription: + description: Short description of the model + maxLength: 255 + type: string + required: + - framework + - name + - precision + type: object + ModelResponse: + description: Response to create model request + properties: + model: + $ref: '#/components/schemas/Model' + description: Model object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ModelUpdateRequest: + description: Properties for the model to update + properties: + application: + description: Application of the model + maxLength: 255 + type: string + bias: + description: Text describing bias in the model + type: string + builtBy: + description: organization that built the repository + maxLength: 255 + type: string + description: + description: Description of the model + type: string + displayName: + description: Display name + maxLength: 64 + minLength: 2 + type: string + explainability: + description: Text describing explainability for this model + type: string + framework: + description: Framework used to train this model + maxLength: 255 + type: string + hasPlayground: + description: indicate if the Model has AI Playground configured + type: boolean + isPlaygroundEnabled: + description: indicate if AI Playground is enabled in the catalog + type: boolean + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + labelsV2: + items: + type: string + type: array + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + maxLength: 255 + type: string + modelFormat: + description: Format of the model + maxLength: 255 + type: string + ownerName: + description: Name of the user who owns this model + maxLength: 255 + type: string + precision: + description: Precision this model was trained with + maxLength: 255 + type: string + privacy: + description: Text describing the privacy for this model + type: string + publicDatasetUsed: + $ref: '#/components/schemas/Dataset' + publisher: + description: organization that published the repository + maxLength: 255 + type: string + safetyAndSecurity: + description: Text for describing the safety and security in the model + type: string + shortDescription: + description: Short description of the model + maxLength: 255 + type: string + type: object + ModelVersionListResponse: + description: Response to list model versions request + properties: + model: + $ref: '#/components/schemas/Model' + description: Model object + modelVersions: + items: + $ref: '#/components/schemas/ModelVersion' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ModelVersionCreateRequest: + description: Properties for the model version to be created + properties: + accuracyReached: + description: Accuracy this model reached + format: float + maximum: 100 + minimum: 0 + type: number + batchSize: + description: Batch size this model was trained with + format: int64 + minimum: 0 + type: integer + customMetrics: + items: + $ref: '#/components/schemas/CustomMetricGroup' + type: array + description: + description: Description of the model version + maxLength: 255 + type: string + gpuModel: + description: GPU model and memory + maxLength: 255 + type: string + id: + description: 'Deprecated: Please use version instead. Unique ID of the version' + format: int64 + maximum: 2147483647 + minimum: 1 + type: integer + memoryFootprint: + description: Model size/memory footprint for inference + maxLength: 255 + type: string + numberOfEpochs: + description: Number of epochs this model trained + format: int64 + minimum: 0 + type: integer + nvcfContainerConfiguration: + $ref: '#/components/schemas/NvcfContainerConfiguration' + description: NVCF container configuration parameters + nvcfDeploymentSpecification: + $ref: '#/components/schemas/NvcfDeploymentSpecification' + description: NVCF deployment specification + otherContents: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + ownerName: + description: Name of the user who owns this version + maxLength: 255 + type: string + versionId: + description: Unique version id. Please use this instead of 'id' + maxLength: 255 + pattern: '[^/]+' + type: string + type: object + ModelVersionResponse: + description: Response to create a model version request + properties: + model: + $ref: '#/components/schemas/Model' + description: Model object + modelVersion: + $ref: '#/components/schemas/ModelVersion' + description: Model version object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ModelVersionUpdateRequest: + description: Version properties to update + properties: + accuracyReached: + description: Accuracy this model reached + format: float + maximum: 100 + minimum: 0 + type: number + batchSize: + description: Batch size this model was trained with + format: int64 + minimum: 0 + type: integer + customMetrics: + items: + $ref: '#/components/schemas/CustomMetricGroup' + type: array + description: + description: Description of the model version + maxLength: 255 + type: string + gpuModel: + description: GPU model and memory + maxLength: 255 + type: string + memoryFootprint: + description: Model size/memory footprint for inference + maxLength: 255 + type: string + numberOfEpochs: + description: Number of epochs this model trained + format: int64 + minimum: 0 + type: integer + nvcfContainerConfiguration: + $ref: '#/components/schemas/NvcfContainerConfiguration' + description: NVCF container configuration parameters + nvcfDeploymentSpecification: + $ref: '#/components/schemas/NvcfDeploymentSpecification' + description: NVCF deployment specification + otherContents: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + ownerName: + description: Name of the user who owns this version + maxLength: 255 + type: string + status: + description: Version status + enum: + - UPLOAD_PENDING + - UPLOAD_COMPLETE + type: string + type: object + ModelVersionFileListResponse: + description: Response to list files for model version request + properties: + model: + $ref: '#/components/schemas/Model' + description: Model object + modelFiles: + items: + $ref: '#/components/schemas/ModelFile' + type: array + modelVersion: + $ref: '#/components/schemas/ModelVersion' + description: Model version object + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + RecipeListResponse: + description: Response to list recipes request + properties: + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + recipes: + items: + $ref: '#/components/schemas/Recipe' + type: array + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + RecipeCreateRequest: + description: Properties for the recipe to create + properties: + advanced: + description: Text for describing advanced information + type: string + application: + enum: + - CLASSIFICATION + - OBJECT_DETECTION + - SEGMENTATION + - TRANSLATION + - TEXT_TO_SPEECH + - RECOMMENDER + - SENTIMENT + - NLP + - KUBEFLOW_PIPELINE + - OTHER + - SPEAKER_VERIFICATION + - PUNCTUATION_AND_CAPITALIZATION + - DIALOG_STATE_TRACKING + - SPEAKER_DIARIZATION + - SPEAKER_RECOGNITION + - SPEECH_SYNTHESIS + - VOICE_ACTIVITY_DETECTION + - SPEECH_RECOGNITION + - LANGUAGE_MODELING + - NAMED_ENTITY_RECOGNITION + - TEXT_CLASSIFICATION + - TEXT_PROCESSING + - QUESTION_ANSWERING + - CONTENT_GENERATION + type: string + builtBy: + description: organization that built the recipe + maxLength: 255 + type: string + description: + description: Description of the recipe + type: string + displayName: + description: Display name + maxLength: 64 + minLength: 2 + type: string + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + labelsV2: + items: + type: string + type: array + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + maxLength: 255 + type: string + modelFormat: + description: Format of the model this recipe produces + maxLength: 255 + type: string + name: + description: Unique name of the recipe + maxLength: 128 + minLength: 1 + pattern: ^[a-z][a-z\d._-]*$ + type: string + performance: + description: Text describing performance of the recipe results + type: string + precision: + enum: + - FP16 + - FP32 + - INT8 + - FPBOTH + - OTHER + - ALL + type: string + publicDatasetUsed: + $ref: '#/components/schemas/Dataset' + publisher: + description: organization that published the recipe + maxLength: 255 + type: string + quickStartGuide: + description: Text with a guide to getting started + type: string + setup: + description: Text describing recipe setup + type: string + shortDescription: + description: Short description of the recipe + maxLength: 255 + type: string + trainingFramework: + enum: + - TensorFlow + - Caffe2 + - CNTK + - Torch + - PyTorch + - MXNet + - Keras + - Other + - TransferLearningToolkit + - TensorFlow2 + type: string + required: + - application + - modelFormat + - name + - precision + - publicDatasetUsed + - shortDescription + - trainingFramework + type: object + RecipeResponse: + description: Response to recipe request + properties: + recipe: + $ref: '#/components/schemas/Recipe' + description: Recipe object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + RecipeUpdateRequest: + description: Properties for the recipe to update + properties: + advanced: + description: Text for describing advanced information + type: string + application: + enum: + - CLASSIFICATION + - OBJECT_DETECTION + - SEGMENTATION + - TRANSLATION + - TEXT_TO_SPEECH + - RECOMMENDER + - SENTIMENT + - NLP + - KUBEFLOW_PIPELINE + - OTHER + - SPEAKER_VERIFICATION + - PUNCTUATION_AND_CAPITALIZATION + - DIALOG_STATE_TRACKING + - SPEAKER_DIARIZATION + - SPEAKER_RECOGNITION + - SPEECH_SYNTHESIS + - VOICE_ACTIVITY_DETECTION + - SPEECH_RECOGNITION + - LANGUAGE_MODELING + - NAMED_ENTITY_RECOGNITION + - TEXT_CLASSIFICATION + - TEXT_PROCESSING + - QUESTION_ANSWERING + - CONTENT_GENERATION + type: string + builtBy: + description: organization that built the recipe + maxLength: 255 + type: string + description: + description: Description of the recipe + type: string + displayName: + description: Display name + maxLength: 64 + minLength: 2 + type: string + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + labelsV2: + items: + type: string + type: array + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + maxLength: 255 + type: string + modelFormat: + description: Format of the model this recipe produces + maxLength: 255 + type: string + performance: + description: Text describing performance of the recipe results + type: string + precision: + enum: + - FP16 + - FP32 + - INT8 + - FPBOTH + - OTHER + - ALL + type: string + publicDatasetUsed: + $ref: '#/components/schemas/Dataset' + publisher: + description: organization that published the recipe + maxLength: 255 + type: string + quickStartGuide: + description: Text with a guide to getting started + type: string + relatedModels: + items: + $ref: '#/components/schemas/ModelSimplified' + type: array + setup: + description: Text describing recipe setup + type: string + shortDescription: + description: Short description of the recipe + maxLength: 255 + type: string + trainingFramework: + enum: + - TensorFlow + - Caffe2 + - CNTK + - Torch + - PyTorch + - MXNet + - Keras + - Other + - TransferLearningToolkit + - TensorFlow2 + type: string + type: object + RecipeVersionListResponse: + description: Response to list recipe versions request + properties: + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + recipe: + $ref: '#/components/schemas/Recipe' + description: Recipe object + recipeVersions: + items: + $ref: '#/components/schemas/RecipeVersion' + type: array + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + RecipeVersionCreateRequest: + description: Properties for the recipe version to be created + properties: + accuracyReached: + description: Accuracy this recipe reached + format: float + maximum: 100 + minimum: 0 + type: number + batchSize: + description: Batch size this recipe was trained with + format: int64 + minimum: 0 + type: integer + customMetrics: + items: + $ref: '#/components/schemas/CustomMetricGroup' + type: array + description: + description: Description of the recipe version + type: string + gpuModel: + description: GPU model and memory + maxLength: 255 + type: string + id: + description: 'Deprecated: Please use version instead. Unique ID of the version' + format: int64 + maximum: 2147483647 + minimum: 1 + type: integer + memoryFootprint: + description: Recipe size/memory footprint for inference + maxLength: 255 + type: string + numberOfEpochs: + description: Number of epochs this recipe trained + format: int64 + minimum: 0 + type: integer + otherContents: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + performance: + description: Text describing performance of the recipe results + type: string + quickStartGuide: + description: Text with a guide to getting started + type: string + releaseNotes: + description: Text describing this release + type: string + setup: + description: Text describing recipe setup + type: string + versionId: + description: Unique version id. Please use this instead of 'id' + maxLength: 255 + pattern: '[^/]+' + type: string + type: object + RecipeVersionResponse: + description: Response to recipe version request + properties: + recipe: + $ref: '#/components/schemas/Recipe' + description: Recipe object + recipeVersion: + $ref: '#/components/schemas/RecipeVersion' + description: Recipe version object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + RecipeVersionUpdateRequest: + description: Version properties to update + properties: + accuracyReached: + description: Accuracy this recipe reached + format: float + maximum: 100 + minimum: 0 + type: number + batchSize: + description: Batch size this recipe was trained with + format: int64 + minimum: 0 + type: integer + customMetrics: + items: + $ref: '#/components/schemas/CustomMetricGroup' + type: array + description: + description: Description of the recipe version + type: string + gpuModel: + description: GPU model and memory + maxLength: 255 + type: string + memoryFootprint: + description: Recipe size/memory footprint for inference + maxLength: 255 + type: string + numberOfEpochs: + description: Number of epochs this recipe trained + format: int64 + minimum: 0 + type: integer + otherContents: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + performance: + description: Text describing performance of the recipe results + type: string + quickStartGuide: + description: Text with a guide to getting started + type: string + releaseNotes: + description: Text describing this release + type: string + setup: + description: Text describing recipe setup + type: string + status: + description: Version status + enum: + - UPLOAD_PENDING + - UPLOAD_COMPLETE + type: string + type: object + RecipeVersionFileListResponse: + description: Response to list files for recipe version request + properties: + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + recipe: + $ref: '#/components/schemas/Recipe' + description: Recipe object + recipeFiles: + items: + $ref: '#/components/schemas/RecipeFile' + type: array + recipeVersion: + $ref: '#/components/schemas/RecipeVersion' + description: Recipe version object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ArtifactCreateRequest: + description: Properties for the artifact to create + properties: + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + bias: + description: Text describing bias in the model + maxLength: 128000 + type: string + builtBy: + description: organization that built the artifact + maxLength: 255 + type: string + description: + description: Description of the artifact + maxLength: 128000 + type: string + displayName: + description: Display name + maxLength: 128 + minLength: 2 + type: string + explainability: + description: Text describing explainability for this model + maxLength: 128000 + type: string + labels: + items: + maxLength: 255 + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + labelsV2: + items: + type: string + type: array + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + maxLength: 255 + type: string + name: + description: Unique name of the artifact + maxLength: 250 + minLength: 1 + pattern: ^[a-z][a-z\d._-]*$ + type: string + privacy: + description: Text describing the privacy for this model + maxLength: 128000 + type: string + publisher: + description: organization that published the artifact + maxLength: 255 + type: string + safetyAndSecurity: + description: Text for describing the safety and security in the model + maxLength: 128000 + type: string + shortDescription: + description: Short description of the artifact + maxLength: 255 + type: string + required: + - name + - shortDescription + type: object + ArtifactResponse: + description: Response to artifact request + properties: + artifact: + $ref: '#/components/schemas/Artifact' + description: Artifact object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ArtifactUpdateRequest: + description: Properties for the artifact to update + properties: + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + bias: + description: Text describing bias in the model + type: string + builtBy: + description: organization that built the artifact + maxLength: 255 + type: string + description: + description: Description of the artifact + type: string + displayName: + description: Display name + maxLength: 128 + minLength: 2 + type: string + explainability: + description: Text describing explainability for this model + type: string + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + labelsV2: + items: + type: string + type: array + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + maxLength: 255 + type: string + privacy: + description: Text describing the privacy for this model + type: string + publisher: + description: organization that published the artifact + maxLength: 255 + type: string + safetyAndSecurity: + description: Text for describing the safety and security in the model + type: string + shortDescription: + description: Short description of the artifact + maxLength: 255 + type: string + type: object + ArtifactCatalogFlags: + description: Artifact Catalog Flags object + properties: + canGuestDownload: + description: Indicates if a guest user can download + type: boolean + isListedToPublic: + description: Flag indicating if artifact is listed and searchable + type: boolean + isPublic: + description: Determines if this artifact is publicly accessible + type: boolean + type: object + DeploymentParametersListResponse: + description: Response to list deployment parameters request + properties: + artifact: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + csp: + description: Cloud Service Provider name + type: string + deploymentParameters: + items: + $ref: '#/components/schemas/DeploymentParameters' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + DeploymentParameters: + description: Deployment Artifact Parameters object + properties: + container: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + cpu: + $ref: '#/components/schemas/DeploymentCpuParameters' + description: Deployment CPU Parameters object + csp: + description: Cloud Service Provider name + type: string + gpu: + $ref: '#/components/schemas/DeploymentGpuParameters' + description: Deployment GPU Parameters object + memory: + $ref: '#/components/schemas/DeploymentMemoryParameters' + description: Deployment Memory Parameters object + model: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + resource: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + storage: + $ref: '#/components/schemas/DeploymentStorageParameters' + description: Deployment Storage Parameters object + type: object + DeploymentParametersUpdateRequest: + description: Request to update existing deployment parameters + properties: + container: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + cpu: + $ref: '#/components/schemas/DeploymentCpuParameters' + description: Deployment CPU Parameters object + gpu: + $ref: '#/components/schemas/DeploymentGpuParameters' + description: Deployment GPU Parameters object + memory: + $ref: '#/components/schemas/DeploymentMemoryParameters' + description: Deployment Memory Parameters object + model: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + resource: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + storage: + $ref: '#/components/schemas/DeploymentStorageParameters' + description: Deployment Storage Parameters object + type: object + DeploymentParametersCreateRequest: + description: Request to create a new deployment parameters + properties: + container: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + cpu: + $ref: '#/components/schemas/DeploymentCpuParameters' + description: Deployment CPU Parameters object + gpu: + $ref: '#/components/schemas/DeploymentGpuParameters' + description: Deployment GPU Parameters object + memory: + $ref: '#/components/schemas/DeploymentMemoryParameters' + description: Deployment Memory Parameters object + model: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + resource: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + storage: + $ref: '#/components/schemas/DeploymentStorageParameters' + description: Deployment Storage Parameters object + type: object + AcceptArtifactLicenseRequest: + description: Request body to accept an org-scoped artifact license. + properties: + licenseId: + description: License identifier to accept (must match a licenseId from the artifact's published licenseTerms). + example: NVIDIA Proprietary + maxLength: 256 + minLength: 1 + pattern: ^[a-zA-Z0-9][a-zA-Z0-9\s._+()/:'-]*$ + type: string + licenseVersion: + description: License version to accept (must match licenseVersion for that license on the artifact). + example: 1 + maxLength: 128 + minLength: 1 + pattern: ^[a-zA-Z0-9][a-zA-Z0-9\s._+()/:'-]*$ + type: string + required: + - licenseId + - licenseVersion + type: object + UpdateReleaseTypeRequest: + description: Request to update release type of an artifact version + properties: + releaseType: + description: Release type enum for the artifact version in the product lifecycle. + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + type: string + version: + description: Artifact version + type: string + required: + - version + type: object + ArtifactPublishRequest: + description: Request to publish an artifact + properties: + accessType: + enum: + - LISTED + - EXCLUSIVE + - NOT_LISTED + type: string + canGuestPull: + type: boolean + canPublicList: + type: boolean + isPublic: + type: boolean + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + productNames: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + type: object + UpdateArtifactVersionConfigs: + description: Request to publish an artifact + properties: + policy: + items: + enum: + - GOV_READY + - FedRAMP + type: string + type: array + type: object + DeploymentUrlCreateRequest: + description: Request to create a new deployment url + properties: + container: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + cpu: + $ref: '#/components/schemas/DeploymentCpuParameters' + description: Deployment CPU Parameters object + gpu: + $ref: '#/components/schemas/DeploymentGpuParameters' + description: Deployment GPU Parameters object + memory: + $ref: '#/components/schemas/DeploymentMemoryParameters' + description: Deployment Memory Parameters object + model: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + resource: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + storage: + $ref: '#/components/schemas/DeploymentStorageParameters' + description: Deployment Storage Parameters object + type: object + DeploymentUrlResponse: + description: Response to create a new deployment url + properties: + csp: + description: Cloud Service Provider name + type: string + deploymentParameters: + $ref: '#/components/schemas/DeploymentParameters' + description: Deployment Artifact Parameters object + deploymentUrl: + description: Deployment URL + type: string + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ArtifactVersionFileListResponse: + description: Response to list files for artifact version request + properties: + artifact: + $ref: '#/components/schemas/Artifact' + description: Artifact object + artifactFiles: + items: + $ref: '#/components/schemas/File' + type: array + artifactVersion: + $ref: '#/components/schemas/ArtifactVersion' + description: Artifact version object + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ArtifactDownloadResponse: + description: Response body to download a single file of an artifact + properties: + filepath: + description: The filepath of the artifact + type: string + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + url: + description: Presigned url for single file download + type: string + required: + - url + type: object + AIPlaygroundCreateRequest: + description: Request to create a new AI Playground config + properties: + artifactName: + description: Unique name of the model + type: string + attributes: + description: Metadata json string + type: string + nvcfFunctionId: + description: NVCF function id for the model playground + type: string + nvcfInferencePath: + description: NVCF inference path (invocation route) for the model playground + type: string + openAPISpec: + description: OpenAPI specification for this model + type: string + required: + - artifactName + - nvcfFunctionId + type: object + AIPlaygroundResponse: + description: Request to fetch an AI Playground config + properties: + artifactName: + description: Unique name of the model + type: string + artifactType: + description: ArtifactTypeEnum of the artifact + type: string + attributes: + description: Metadata json string + type: string + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + namespace: + description: org/team of the model + type: string + nvcfFunctionId: + description: NVCF function id for the model playground + type: string + nvcfInferencePath: + description: NVCF inference path (invocation route) for the model playground + type: string + openAPISpec: + description: OpenAPI specification for this model + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + type: object + AIPlaygroundUpdateRequest: + description: Request to update an AI Playground config + properties: + attributes: + description: Metadata json string + type: string + nvcfFunctionId: + description: NVCF function id for the model playground + type: string + nvcfInferencePath: + description: NVCF inference path (invocation route) for the model playground + type: string + openAPISpec: + description: OpenAPI specification for this model + type: string + type: object + KeyItem: + description: Key item with ID and create timestamp string + properties: + created: + description: 'The creation timestamp of the key item in ISO-8601 format. Format: YYYY-MM-DDTHH:mm:ss.sssZ.' + example: '2025-04-19T22:30:00.123Z' + format: regex + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the encryption key + maxLength: 255 + type: string + encryptionKeyId: + description: The encryption key identifier in UUID format. + example: 196afcf4-d6c8-4116-aa25-34a718a14f43 + format: regex + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ + type: string + required: + - created + - encryptionKeyId + type: object + RequestStatus: + description: Request status information + properties: + requestId: + description: Request ID + type: string + serverId: + description: Server ID + type: string + statusCode: + description: Describes response status reported by the server. + enum: + - UNKNOWN + - SUCCESS + - UNAUTHORIZED + - PAYMENT_REQUIRED + - FORBIDDEN + - TIMEOUT + - EXISTS + - NOT_FOUND + - INTERNAL_ERROR + - INVALID_REQUEST + - INVALID_REQUEST_VERSION + - INVALID_REQUEST_DATA + - METHOD_NOT_ALLOWED + - CONFLICT + - UNPROCESSABLE_ENTITY + - TOO_MANY_REQUESTS + - INSUFFICIENT_STORAGE + - SERVICE_UNAVAILABLE + type: string + statusDescription: + description: Status description + type: string + type: object + ArtifactItem: + description: Artifact item with name and description + properties: + artifactType: + description: Artifact type + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + type: string + description: + description: Description of the artifact + type: string + displayName: + description: Display name of the artifact + type: string + name: + description: Name of the artifact + type: string + required: + - description + - name + type: object + CloneStatus: + description: Progress of cloning artifact version files + properties: + filesCopied: + description: Number of files copied + format: int64 + type: integer + internalCheckpointStateCleanup: + description: 'Internal-only: When the async clone workflow is completed, this field shows if the internal checkpoint files were successfully cleaned up in the storage - CLEAN if no objects remain (cleanup succeeded or unused), NOT_EMPTY if objects remain, ERROR if verification could not be performed. Omitted when not applicable.' + enum: + - CLEAN + - NOT_EMPTY + - ERROR + type: string + percentageFilesCloned: + description: Percentage of files cloned + format: double + type: number + sizeCopied: + description: Combined file size copied + format: int64 + type: integer + totalFiles: + description: Total files at source + format: int64 + type: integer + totalSize: + description: Combined file size at source + format: int64 + type: integer + type: object + Collection: + description: Collection object + properties: + accessType: + enum: + - LISTED + - EXCLUSIVE + - NOT_LISTED + type: string + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + builtBy: + description: Organization that built the collection + type: string + canGuestDownload: + description: Indicates if a guest user can download + type: boolean + category: + enum: + - HEALTHCARE + - SMART_CITIES + - RETAIL + - MANUFACTURING + - SUPERCOMPUTING + - ROBOTICS + - AUTOMOTIVE + - TELECOMMUNICATIONS + - FINANCE + - OIL_AND_GAS + - NATURAL_LANGUAGE_PROCESSING + - AUTOMATIC_SPEECH_RECOGNITION + - INTELLIGENT_VIDEO_ANALYTICS + - OBJECT_DETECTION + - IMAGE_CLASSIFICATION + - ANNOTATION + - IMAGE_SYNTHESIS + - MACHINE_LEARNING + - DEEP_LEARNING + - INFRASTRUCTURE + - HIGH_PERFORMANCE_COMPUTING + - WINDOWS_RTX_ACCELERATED_MODELS + - BEGINNER + - ADVANCED + type: string + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the collection + type: string + displayName: + description: Display name + type: string + isPublic: + description: Determines if this collection is publicly accessible + type: boolean + isReadOnly: + description: indicate if current user has read only permissions (deprecated) + type: boolean + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + logo: + description: URL for the logo image + type: string + name: + description: Unique name of the collection + type: string + orgName: + description: Name of the org that the collection belongs to + type: string + ownerName: + description: Name of the user who owns this version + type: string + policyLabels: + items: + type: string + type: array + productNames: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + publisher: + description: Organization that published this collection + type: string + shortDescription: + description: Short description of the collection + type: string + size: + description: Total count of collection items + format: int64 + type: integer + teamName: + description: Name of the team that the collection belongs to + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + required: + - category + type: object + PaginationInfo: + description: Pagination Information + properties: + index: + description: Page index of results + format: int32 + type: integer + nextPage: + description: Serialized pointer to the next results page. Should be used for fetching next page. Can be empty + type: string + size: + description: Number of results in page + format: int32 + type: integer + totalPages: + description: Total number of pages available + format: int64 + type: integer + totalResults: + description: Total number of results available + format: int64 + type: integer + type: object + ArtifactAttribute: + description: Attribute on the artifact + properties: + key: + maxLength: 255 + pattern: '[a-zA-Z0-9]+' + type: string + value: + maxLength: 255 + type: string + type: object + CollectionOperation: + description: Collection operation object + properties: + operation: + description: Collection operation + maxLength: 255 + type: string + path: + description: Path to a collection item in a scoped format + maxLength: 255 + pattern: ^(/(?!/)([\w- %\.(?!\.)])+)+$ + type: string + type: object + Artifact: + description: Artifact object + properties: + accessType: + enum: + - LISTED + - EXCLUSIVE + - NOT_LISTED + type: string + artifactType: + description: Artifact type + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + type: string + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + bias: + description: Text describing bias in the artifact + type: string + builtBy: + description: Organization that built the helm chart + type: string + canGuestDownload: + description: Indicates if a guest user can download + type: boolean + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the helm chart + type: string + displayName: + description: Display name + type: string + encryptionKeyId: + description: ID of the customer managed encryption key associated with this artifact + type: string + explainability: + description: Text describing the explainability for this artifact + type: string + hasSignedVersion: + description: Indicates if the artifact has any signed versions + type: boolean + isFavourite: + description: Flag indicating if helm chart is user's favorite + type: boolean + isPublic: + description: Determines if this helm chart is publicly accessible + type: boolean + isReadOnly: + description: indicate if current user has read only permissions (deprecated) + type: boolean + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + latestVersionId: + description: ID of the latest version + type: string + latestVersionSizeInBytes: + description: Size of the latest version in bytes + format: int64 + type: integer + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + type: string + name: + description: Unique name of the helm chart + type: string + orgName: + description: Name of the org that the helm chart belongs to + type: string + ownerName: + description: Name of the user who owns this version + type: string + policyLabels: + items: + type: string + type: array + privacy: + description: Text describing the privacy for this artifact + type: string + productNames: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + publisher: + description: Organization that published this helm chart + type: string + safetyAndSecurity: + description: Text for describing the safety and security in the artifact + type: string + shortDescription: + description: Short description of the helm chart + type: string + teamName: + description: Name of the team that the helm chart belongs to + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + type: object + ArtifactVersion: + description: Artifact version object + properties: + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + createdByUser: + description: Id of the user who created this version + type: string + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + customMetrics: + items: + $ref: '#/components/schemas/CustomMetricGroup' + type: array + description: + description: Description of the version + type: string + id: + description: Unique ID of the version + type: string + isSigned: + description: Indicates if the version is signed + type: boolean + malwareScanDate: + description: Scan date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + malwareScanStatus: + description: Malware scan status + enum: + - NOT_SCANNED + - IN_PROGRESS + - CLEAN + - SUSPICIOUS + - FAILED + - MALICIOUS + type: string + policy: + items: + type: string + type: array + releaseType: + description: Release type enum for the artifact version in the product lifecycle. + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + type: string + status: + description: Version status + enum: + - UPLOAD_PENDING + - UPLOAD_COMPLETE + type: string + storageVersion: + description: The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. + type: string + totalFileCount: + description: Total file count + format: int64 + type: integer + totalSizeInBytes: + description: Total size of the version in bytes + format: int64 + type: integer + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + type: object + Model: + description: Model object + properties: + accessType: + enum: + - LISTED + - EXCLUSIVE + - NOT_LISTED + type: string + application: + description: Application of the model + type: string + bias: + description: Text describing bias in the model + type: string + builtBy: + description: organization that built the repository + type: string + canGuestDownload: + description: Indicates if a guest user can download + type: boolean + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the model + type: string + displayName: + description: Display name + type: string + encryptionKeyId: + description: ID of the customer managed encryption key associated with this artifact + type: string + explainability: + description: Text describing explainability for this model + type: string + framework: + description: Framework used to train this model + type: string + hasPlayground: + description: indicate if the Model has AI Playground configured + type: boolean + hasSignedVersion: + description: Indicates if the model has any signed versions + type: boolean + isFavourite: + description: Flag indicating if model is user's favorite + type: boolean + isPlaygroundEnabled: + description: indicate if AI Playground is enabled in the catalog + type: boolean + isPublic: + description: Determines if model is publicly accessible + type: boolean + isReadOnly: + description: indicate if current user has read only permissions (deprecated) + type: boolean + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + latestVersionGpuModel: + description: GPU model and memory used for the latest version + type: string + latestVersionId: + description: 'Deprecated: Please use latestVersionIdStr instead. ID of the latest version' + format: int64 + type: integer + latestVersionIdStr: + description: ID of the latest version + type: string + latestVersionSizeInBytes: + description: Size of the latest version in bytes + format: int64 + type: integer + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + type: string + modelFormat: + description: Format of the model + type: string + name: + description: Unique name of the model + type: string + orgName: + description: Name of the org that the model belongs to + type: string + ownerName: + description: Name of model's owner + type: string + policyLabels: + items: + type: string + type: array + precision: + description: Precision this model was trained with + type: string + privacy: + description: Text describing the privacy for this model + type: string + productNames: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + publicDatasetUsed: + $ref: '#/components/schemas/Dataset' + publisher: + description: organization that published the repository + type: string + safetyAndSecurity: + description: Text for describing the safety and security in the model + type: string + shortDescription: + description: Short description of the model + type: string + teamName: + description: Name of the team that the model belongs to + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + versions: + items: + type: string + type: array + type: object + EncryptionKey: + description: Customer Managed Key shard configuration for the model + properties: + description: + description: Description for a new customer key shard + type: string + encryptionKeyId: + description: ID of the existing customer key shard to use + type: string + useExistingKey: + description: Whether to use an existing customer key shard or should a new one be created + type: boolean + required: + - useExistingKey + type: object + LicenseMetadata: + description: License information for the artifact + properties: + configuredLicenseTerms: + $ref: '#/components/schemas/ConfiguredLicenseTerms' + description: License information for the artifact + governingTerms: + description: Comprehensive terms and links related to the license + example: <p><strong>GOVERNING HOSTING TERMS:</strong> Use of the model is governed by the <a href='...'>NVIDIA Open Model Agreement</a>.</p> + maxLength: 1000 + pattern: ^[\s\S]*$ + type: string + licenseId: + description: License ID + example: NVIDIA proprietary + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + licenseVersion: + description: License version ID + example: v1.0 + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + needsAcceptance: + description: Indicator if user needs to accept this license + type: boolean + required: + - governingTerms + - licenseId + - licenseVersion + type: object + Dataset: + properties: + license: + description: License of the dataset + maxLength: 255 + type: string + link: + description: Link to the dataset + maxLength: 255 + type: string + name: + description: Name of the dataset + maxLength: 255 + type: string + type: object + ModelVersion: + description: Model version object + properties: + accuracyReached: + description: Accuracy this model reached + format: float + type: number + batchSize: + description: Batch size this model was trained with + format: int64 + type: integer + createdByUser: + description: Id of the user who created this model + type: string + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + customMetrics: + items: + $ref: '#/components/schemas/CustomMetricGroup' + type: array + description: + description: Description of the model version + type: string + gpuModel: + description: GPU model and memory + type: string + id: + description: 'Deprecated: Please use versionId instead. Unique ID of the version' + format: int64 + type: integer + isSigned: + description: Indicates if the version is signed + type: boolean + malwareScanDate: + description: Scan date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + malwareScanStatus: + description: Malware scan status + enum: + - NOT_SCANNED + - IN_PROGRESS + - CLEAN + - SUSPICIOUS + - FAILED + - MALICIOUS + type: string + memoryFootprint: + description: Model size/memory footprint for inference + type: string + numberOfEpochs: + description: Number of epochs this model trained + format: int64 + type: integer + nvcfContainerConfiguration: + $ref: '#/components/schemas/NvcfContainerConfiguration' + description: NVCF container configuration parameters + nvcfDeploymentSpecification: + $ref: '#/components/schemas/NvcfDeploymentSpecification' + description: NVCF deployment specification + otherContents: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + ownerName: + description: Name of the user who owns this version + type: string + policy: + items: + type: string + type: array + releaseType: + description: Release type enum for the artifact version in the product lifecycle. + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + type: string + status: + description: Version status + enum: + - UPLOAD_PENDING + - UPLOAD_COMPLETE + type: string + storageVersion: + description: The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. + type: string + totalFileCount: + description: Total file count + format: int64 + type: integer + totalSizeInBytes: + description: Total size of the model in bytes + format: int64 + type: integer + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + versionId: + description: Unique version id. Please use this instead of 'id' + maxLength: 255 + type: string + type: object + CustomMetricGroup: + description: Defines the group of custom metrics. + properties: + attributes: + items: + $ref: '#/components/schemas/CustomMetric' + type: array + name: + maxLength: 255 + type: string + type: object + NvcfContainerConfiguration: + description: NVCF container configuration parameters + properties: + apiBodyFormat: + description: API body format + type: string + containerArgs: + description: Container arguments + type: string + containerEnvironment: + items: + $ref: '#/components/schemas/MetaData' + type: array + containerImage: + description: Container Image + type: string + healthUri: + description: Health URI + type: string + inferencePort: + description: Inference port + type: string + inferenceUrl: + description: Inference url + type: string + models: + items: + $ref: '#/components/schemas/NvcfContainerModel' + type: array + type: object + NvcfDeploymentSpecification: + description: NVCF deployment specification + properties: + gpuCount: + description: GPU count + format: int32 + type: integer + gpuType: + description: GPU type + type: string + instanceType: + description: Instance type + type: string + maxConcurrency: + description: Maximum concurrency + format: int32 + type: integer + type: object + ModelFile: + description: Model file object + properties: + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the file + type: string + path: + description: Relative file path from the root of the model + maxLength: 1023 + minLength: 1 + type: string + sha256_base64: + description: Base64 encoded sha256 hash of the artifact file + type: string + sizeInBytes: + description: Size of the file in bytes + format: int64 + minimum: 0 + type: integer + type: object + Recipe: + description: Recipe object + properties: + accessType: + enum: + - LISTED + - EXCLUSIVE + - NOT_LISTED + type: string + advanced: + description: Text for describing advanced information + type: string + application: + enum: + - CLASSIFICATION + - OBJECT_DETECTION + - SEGMENTATION + - TRANSLATION + - TEXT_TO_SPEECH + - RECOMMENDER + - SENTIMENT + - NLP + - KUBEFLOW_PIPELINE + - OTHER + - SPEAKER_VERIFICATION + - PUNCTUATION_AND_CAPITALIZATION + - DIALOG_STATE_TRACKING + - SPEAKER_DIARIZATION + - SPEAKER_RECOGNITION + - SPEECH_SYNTHESIS + - VOICE_ACTIVITY_DETECTION + - SPEECH_RECOGNITION + - LANGUAGE_MODELING + - NAMED_ENTITY_RECOGNITION + - TEXT_CLASSIFICATION + - TEXT_PROCESSING + - QUESTION_ANSWERING + - CONTENT_GENERATION + type: string + builtBy: + description: Organization that built the recipe + type: string + canGuestDownload: + description: Indicates if a guest user can download + type: boolean + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the recipe + type: string + displayName: + description: Display name + type: string + hasSignedVersion: + description: Indicates if the recipe has any signed versions + type: boolean + isFavourite: + description: Flag indicating if recipe is user's favorite + type: boolean + isPublic: + description: Determines if this recipe is publicly accessible + type: boolean + isReadOnly: + description: indicate if current user has read only permissions (deprecated) + type: boolean + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + latestVersionId: + description: 'Deprecated: Please use latestVersionIdStr instead. ID of the latest version' + format: int64 + type: integer + latestVersionIdStr: + description: ID of the latest version + type: string + latestVersionSizeInBytes: + description: Size of the latest version in bytes + format: int64 + type: integer + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + type: string + modelFormat: + description: Format of the model this recipe produces + type: string + name: + description: Unique name of the recipe + type: string + orgName: + description: Name of the org that the recipe belongs to + type: string + performance: + description: Text describing performance of the recipe results + type: string + policyLabels: + items: + type: string + type: array + precision: + enum: + - FP16 + - FP32 + - INT8 + - FPBOTH + - OTHER + - ALL + type: string + productNames: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + publicDatasetUsed: + $ref: '#/components/schemas/Dataset' + publisher: + description: Organization that published this recipe + type: string + quickStartGuide: + description: Text with a guide to getting started + type: string + relatedModels: + items: + $ref: '#/components/schemas/Model' + type: array + setup: + description: Text describing recipe setup + type: string + shortDescription: + description: Short description of the recipe + type: string + teamName: + description: Name of the team that the recipe belongs to + type: string + trainingFramework: + enum: + - TensorFlow + - Caffe2 + - CNTK + - Torch + - PyTorch + - MXNet + - Keras + - Other + - TransferLearningToolkit + - TensorFlow2 + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + type: object + ModelSimplified: + description: Model object + properties: + name: + description: Unique name of the model + type: string + orgName: + description: Name of the org that the model belongs to + type: string + teamName: + description: Name of the team that the model belongs to + type: string + required: + - name + - orgName + type: object + RecipeVersion: + description: Recipe version object + properties: + accuracyReached: + description: Accuracy this recipe reached + format: float + type: number + batchSize: + description: Batch size this recipe was trained with + format: int64 + type: integer + createdByUser: + description: Id of the user who created this recipe + type: string + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + customMetrics: + items: + $ref: '#/components/schemas/CustomMetricGroup' + type: array + description: + description: Description of the recipe version + type: string + gpuModel: + description: GPU model and memory + type: string + id: + description: 'Deprecated: Please use versionId instead. Unique ID of the version' + format: int64 + type: integer + isSigned: + description: Indicates if the version is signed + type: boolean + malwareScanDate: + description: Scan date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + malwareScanStatus: + description: Malware scan status + enum: + - NOT_SCANNED + - IN_PROGRESS + - CLEAN + - SUSPICIOUS + - FAILED + - MALICIOUS + type: string + memoryFootprint: + description: recipe size/memory footprint for inference + type: string + numberOfEpochs: + description: Number of epochs this recipe trained + format: int64 + type: integer + otherContents: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + performance: + description: Text describing performance of the recipe results + type: string + policy: + items: + type: string + type: array + quickStartGuide: + description: Text with a guide to getting started + type: string + releaseNotes: + description: Text describing this release + type: string + releaseType: + description: Release type enum for the artifact version in the product lifecycle. + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + type: string + setup: + description: Text describing recipe setup + type: string + status: + description: Version status + enum: + - UPLOAD_PENDING + - UPLOAD_COMPLETE + type: string + storageVersion: + description: The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. + type: string + totalFileCount: + description: Total file count + format: int64 + type: integer + totalSizeInBytes: + description: Total size of the recipe in bytes + format: int64 + type: integer + versionId: + description: Unique version id. Please use this instead of 'id' + maxLength: 255 + type: string + type: object + RecipeFile: + description: Recipe file object + properties: + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the file + type: string + path: + description: Relative file path from the root of the recipe + maxLength: 1023 + minLength: 1 + type: string + sha256_base64: + description: Base64 encoded sha256 hash of the artifact file + type: string + sizeInBytes: + description: Size of the file in bytes + format: int64 + minimum: 0 + type: integer + type: object + DeploymentArtifactParameters: + description: Deployment Artifact Parameters object + properties: + artifactType: + description: Artifact type + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + type: string + displayName: + description: Display name of the artifact + type: string + filePath: + description: Path to a file in an artifact version + type: string + name: + description: Unique name of the artifact + type: string + orgName: + description: Name of the org that the artifact belongs to + type: string + teamName: + description: Name of the team that the artifact belongs to + type: string + versionId: + description: ID of the version or tag + type: string + required: + - name + - orgName + type: object + DeploymentCpuParameters: + description: Deployment CPU Parameters object + properties: + count: + description: Total count of CPUs + format: int64 + type: integer + type: object + DeploymentGpuParameters: + description: Deployment GPU Parameters object + properties: + count: + description: Total count of GPUs + format: int64 + type: integer + type: + description: GPU Type + type: string + type: object + DeploymentMemoryParameters: + description: Deployment Memory Parameters object + properties: + capacityInGB: + description: Capacity in GB + format: int64 + type: integer + type: object + DeploymentStorageParameters: + description: Deployment Storage Parameters object + properties: + capacityInGB: + description: Capacity in GB + format: int64 + type: integer + type: object + File: + description: File object + properties: + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the file + type: string + path: + description: Relative file path from the root of the object + maxLength: 1023 + minLength: 1 + type: string + sizeInBytes: + description: Size of the file in bytes + format: int64 + minimum: 0 + type: integer + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + type: object + ConfiguredLicenseTerms: + description: License information for the artifact + properties: + download: + $ref: '#/components/schemas/ConfiguredLicenseTerm' + description: License information for the artifact + hosting: + $ref: '#/components/schemas/ConfiguredLicenseTerm' + description: License information for the artifact + type: object + CustomMetric: + description: Custom metrics + properties: + key: + maxLength: 255 + type: string + value: + maxLength: 255 + type: string + type: object + MetaData: + properties: + key: + maxLength: 255 + type: string + value: + maxLength: 255 + type: string + type: object + NvcfContainerModel: + description: Models version object metadata + properties: + name: + description: Model name + type: string + uri: + description: Model URI + type: string + version: + description: Model version + type: string + type: object + ConfiguredLicenseTerm: + description: License information for the artifact + properties: + artifactType: + description: Artifact type + example: model + maxLength: 15 + pattern: ^[\s\S]*$ + type: string + generatedHtml: + description: Generated html + example: <p><strong>GOVERNING HOSTING TERMS:</strong> ...</p> + maxLength: 9999 + pattern: ^[\s\S]*$ + type: string + tags: + items: + $ref: '#/components/schemas/LicenseTag' + type: array + type: object + LicenseTag: + description: License tag information for individual term + properties: + category: + description: Category of the tag + example: terms + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + key: + description: Key identifier for the tag + example: nv-open-model + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + label: + description: License Label + example: NVIDIA Open Model Agreement + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + tag: + description: License tag name + example: Model Agreement + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + url: + description: Link to the hosted license + example: https://www.nvidia.com/.../nvidia-open-model-agreement/ + maxLength: 1000 + pattern: ^[\s\S]*$ + type: string + type: object + x-stackQL-resources: + encryption_keys: + id: nvidia.private_registry.encryption_keys + name: encryption_keys + title: Encryption Keys + methods: + list: + operation: + $ref: '#/paths/~1encryption-keys/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.encryptionKeys + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1encryption-keys~1{key_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifacts + request: + nativeCasing: kebab + delete: + operation: + $ref: '#/paths/~1encryption-keys~1{key_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + nativeCasing: camel + list_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1encryption-keys/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.encryptionKeys + request: + nativeCasing: camel + get_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1encryption-keys~1{key_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifacts + request: + nativeCasing: camel + delete_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1encryption-keys~1{key_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/encryption_keys/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/encryption_keys/methods/get' + - $ref: '#/components/x-stackQL-resources/encryption_keys/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/encryption_keys/methods/list' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/encryption_keys/methods/delete_by_team' + - $ref: '#/components/x-stackQL-resources/encryption_keys/methods/delete' + replace: [] + workflows: + id: nvidia.private_registry.workflows + name: workflows + title: Workflows + methods: + get_by_team: + operation: + $ref: '#/paths/~1team~1{team}~1workflows~1{workflow_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1workflows~1{workflow_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/workflows/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/workflows/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + collections: + id: nvidia.private_registry.collections + name: collections + title: Collections + methods: + list: + operation: + $ref: '#/paths/~1collections/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.collections + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1collections/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1collections~1{collection_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.collection + request: + nativeCasing: kebab + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1collections~1{collection_name}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1collections~1{collection_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1collections/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.collections + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + create_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1collections/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1collections~1{collection_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.collection + request: + nativeCasing: kebab + update_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1collections~1{collection_name}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1collections~1{collection_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/collections/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/collections/methods/get' + - $ref: '#/components/x-stackQL-resources/collections/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/collections/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/collections/methods/create_by_team' + - $ref: '#/components/x-stackQL-resources/collections/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/collections/methods/update_by_team' + - $ref: '#/components/x-stackQL-resources/collections/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/collections/methods/delete_by_team' + - $ref: '#/components/x-stackQL-resources/collections/methods/delete' + replace: [] + collection_artifacts: + id: nvidia.private_registry.collection_artifacts + name: collection_artifacts + title: Collection Artifacts + methods: + update_bulk: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1collections~1{collection_name}~1artifacts/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + add_cross_org_team: + operation: + $ref: '#/paths/~1collections~1{collection_name}~1artifacts~1org~1{artifact_org_name}~1team~1{artifact_team_name}~1{artifact_type}~1{artifact_name}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + remove_cross_org_team: + operation: + $ref: '#/paths/~1collections~1{collection_name}~1artifacts~1org~1{artifact_org_name}~1team~1{artifact_team_name}~1{artifact_type}~1{artifact_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + add_cross_org: + operation: + $ref: '#/paths/~1collections~1{collection_name}~1artifacts~1org~1{artifact_org_name}~1{artifact_type}~1{artifact_name}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + remove_cross_org: + operation: + $ref: '#/paths/~1collections~1{collection_name}~1artifacts~1org~1{artifact_org_name}~1{artifact_type}~1{artifact_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1collections~1{collection_name}~1artifacts~1{artifact_type}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifacts + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + add: + operation: + $ref: '#/paths/~1collections~1{collection_name}~1{artifact_type}~1{artifact_name}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + remove: + operation: + $ref: '#/paths/~1collections~1{collection_name}~1{artifact_type}~1{artifact_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update_bulk_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1collections~1{collection_name}~1artifacts/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + add_cross_org_team_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1collections~1{collection_name}~1artifacts~1org~1{artifact_org_name}~1team~1{artifact_team_name}~1{artifact_type}~1{artifact_name}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + remove_cross_org_team_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1collections~1{collection_name}~1artifacts~1org~1{artifact_org_name}~1team~1{artifact_team_name}~1{artifact_type}~1{artifact_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + add_cross_org_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1collections~1{collection_name}~1artifacts~1org~1{artifact_org_name}~1{artifact_type}~1{artifact_name}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + remove_cross_org_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1collections~1{collection_name}~1artifacts~1org~1{artifact_org_name}~1{artifact_type}~1{artifact_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1collections~1{collection_name}~1artifacts~1{artifact_type}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifacts + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + add_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1collections~1{collection_name}~1{artifact_type}~1{artifact_name}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + remove_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1collections~1{collection_name}~1{artifact_type}~1{artifact_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/collection_artifacts/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/collection_artifacts/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/collection_artifacts/methods/add_cross_org_team_by_team' + - $ref: '#/components/x-stackQL-resources/collection_artifacts/methods/add_cross_org_team' + - $ref: '#/components/x-stackQL-resources/collection_artifacts/methods/add_cross_org_by_team' + - $ref: '#/components/x-stackQL-resources/collection_artifacts/methods/add_cross_org' + - $ref: '#/components/x-stackQL-resources/collection_artifacts/methods/add_by_team' + - $ref: '#/components/x-stackQL-resources/collection_artifacts/methods/add' + update: + - $ref: '#/components/x-stackQL-resources/collection_artifacts/methods/update_bulk_by_team' + - $ref: '#/components/x-stackQL-resources/collection_artifacts/methods/update_bulk' + delete: + - $ref: '#/components/x-stackQL-resources/collection_artifacts/methods/remove_cross_org_team_by_team' + - $ref: '#/components/x-stackQL-resources/collection_artifacts/methods/remove_cross_org_team' + - $ref: '#/components/x-stackQL-resources/collection_artifacts/methods/remove_cross_org_by_team' + - $ref: '#/components/x-stackQL-resources/collection_artifacts/methods/remove_cross_org' + - $ref: '#/components/x-stackQL-resources/collection_artifacts/methods/remove_by_team' + - $ref: '#/components/x-stackQL-resources/collection_artifacts/methods/remove' + replace: [] + collection_product_shares: + id: nvidia.private_registry.collection_product_shares + name: collection_product_shares + title: Collection Product Shares + methods: + add: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1collections~1{collection_name}~1share~1product/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + add_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1collections~1{collection_name}~1share~1product/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/collection_product_shares/methods/add_by_team' + - $ref: '#/components/x-stackQL-resources/collection_product_shares/methods/add' + update: [] + delete: [] + replace: [] + helm_chart_versions: + id: nvidia.private_registry.helm_chart_versions + name: helm_chart_versions + title: Helm Chart Versions + methods: + list: + operation: + $ref: '#/paths/~1helm-charts~1{artifact_name}~1versions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifactVersions + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + get: + operation: + $ref: '#/paths/~1helm-charts~1{artifact_name}~1versions~1{version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifactVersion + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1helm-charts~1{artifact_name}~1versions~1{version_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1helm-charts~1{artifact_name}~1versions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifactVersions + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + get_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1helm-charts~1{artifact_name}~1versions~1{version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifactVersion + request: + nativeCasing: camel + update_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1helm-charts~1{artifact_name}~1versions~1{version_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/helm_chart_versions/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/helm_chart_versions/methods/get' + - $ref: '#/components/x-stackQL-resources/helm_chart_versions/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/helm_chart_versions/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/helm_chart_versions/methods/update_by_team' + - $ref: '#/components/x-stackQL-resources/helm_chart_versions/methods/update' + delete: [] + replace: [] + models: + id: nvidia.private_registry.models + name: models + title: Models + methods: + list: + operation: + $ref: '#/paths/~1models/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.models + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1models/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1models~1{model_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.model + request: + nativeCasing: kebab + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1models~1{model_name}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1models~1{model_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1models/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.models + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + create_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1models/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1models~1{model_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.model + request: + nativeCasing: kebab + update_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1models~1{model_name}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1models~1{model_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/models/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/models/methods/get' + - $ref: '#/components/x-stackQL-resources/models/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/models/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/models/methods/create_by_team' + - $ref: '#/components/x-stackQL-resources/models/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/models/methods/update_by_team' + - $ref: '#/components/x-stackQL-resources/models/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/models/methods/delete_by_team' + - $ref: '#/components/x-stackQL-resources/models/methods/delete' + replace: [] + model_versions: + id: nvidia.private_registry.model_versions + name: model_versions + title: Model Versions + methods: + stash: + operation: + $ref: '#/paths/~1models~1{artifact_name}~1versions~1{version_id}~1stash/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1models~1{model_name}~1versions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.modelVersions + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1models~1{model_name}~1versions/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1models~1{model_name}~1versions~1{version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.modelVersion + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1models~1{model_name}~1versions~1{version_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + stash_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1models~1{artifact_name}~1versions~1{version_id}~1stash/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1models~1{model_name}~1versions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.modelVersions + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + create_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1models~1{model_name}~1versions/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1models~1{model_name}~1versions~1{version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.modelVersion + request: + nativeCasing: camel + update_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1models~1{model_name}~1versions~1{version_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/model_versions/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/model_versions/methods/get' + - $ref: '#/components/x-stackQL-resources/model_versions/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/model_versions/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/model_versions/methods/create_by_team' + - $ref: '#/components/x-stackQL-resources/model_versions/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/model_versions/methods/update_by_team' + - $ref: '#/components/x-stackQL-resources/model_versions/methods/update' + delete: [] + replace: [] + model_encryption_keys: + id: nvidia.private_registry.model_encryption_keys + name: model_encryption_keys + title: Model Encryption Keys + methods: + delete: + operation: + $ref: '#/paths/~1models~1{model_name}~1encryption-key/delete' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + nativeCasing: camel + delete_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1models~1{model_name}~1encryption-key/delete' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/model_encryption_keys/methods/delete_by_team' + - $ref: '#/components/x-stackQL-resources/model_encryption_keys/methods/delete' + replace: [] + model_files: + id: nvidia.private_registry.model_files + name: model_files + title: Model Files + methods: + list: + operation: + $ref: '#/paths/~1models~1{model_name}~1versions~1{version_id}~1files/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.modelFiles + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + list_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1models~1{model_name}~1versions~1{version_id}~1files/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.modelFiles + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/model_files/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/model_files/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + recipes: + id: nvidia.private_registry.recipes + name: recipes + title: Recipes + methods: + list: + operation: + $ref: '#/paths/~1recipes/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipes + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1recipes/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1recipes~1{recipe_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipe + request: + nativeCasing: kebab + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1recipes~1{recipe_name}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1recipes/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipes + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + create_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1recipes/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1recipes~1{recipe_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipe + request: + nativeCasing: kebab + update_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1recipes~1{recipe_name}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/recipes/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/recipes/methods/get' + - $ref: '#/components/x-stackQL-resources/recipes/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/recipes/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/recipes/methods/create_by_team' + - $ref: '#/components/x-stackQL-resources/recipes/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/recipes/methods/update_by_team' + - $ref: '#/components/x-stackQL-resources/recipes/methods/update' + delete: [] + replace: [] + recipe_versions: + id: nvidia.private_registry.recipe_versions + name: recipe_versions + title: Recipe Versions + methods: + list: + operation: + $ref: '#/paths/~1recipes~1{recipe_name}~1versions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeVersions + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1recipes~1{recipe_name}~1versions/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1recipes~1{recipe_name}~1versions~1{version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeVersion + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1recipes~1{recipe_name}~1versions~1{version_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + list_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1recipes~1{recipe_name}~1versions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeVersions + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + create_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1recipes~1{recipe_name}~1versions/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1recipes~1{recipe_name}~1versions~1{version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeVersion + request: + nativeCasing: camel + update_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1recipes~1{recipe_name}~1versions~1{version_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/recipe_versions/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/recipe_versions/methods/get' + - $ref: '#/components/x-stackQL-resources/recipe_versions/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/recipe_versions/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/recipe_versions/methods/create_by_team' + - $ref: '#/components/x-stackQL-resources/recipe_versions/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/recipe_versions/methods/update_by_team' + - $ref: '#/components/x-stackQL-resources/recipe_versions/methods/update' + delete: [] + replace: [] + recipe_files: + id: nvidia.private_registry.recipe_files + name: recipe_files + title: Recipe Files + methods: + list: + operation: + $ref: '#/paths/~1recipes~1{recipe_name}~1versions~1{version_id}~1files/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeFiles + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + list_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1recipes~1{recipe_name}~1versions~1{version_id}~1files/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeFiles + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/recipe_files/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/recipe_files/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + repository_associated_models: + id: nvidia.private_registry.repository_associated_models + name: repository_associated_models + title: Repository Associated Models + methods: + list: + operation: + $ref: '#/paths/~1repositories~1{container_name}~1associated-models/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.modelVersions + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + list_by_tag: + operation: + $ref: '#/paths/~1repositories~1{container_name}~1tags~1{container_tag}~1associated-models/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.modelVersions + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + list_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1repositories~1{container_name}~1associated-models/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.modelVersions + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + list_by_tag_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1repositories~1{container_name}~1tags~1{container_tag}~1associated-models/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.modelVersions + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/repository_associated_models/methods/list_by_tag_by_team' + - $ref: '#/components/x-stackQL-resources/repository_associated_models/methods/list_by_tag' + - $ref: '#/components/x-stackQL-resources/repository_associated_models/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/repository_associated_models/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + resources: + id: nvidia.private_registry.resources + name: resources + title: Resources + methods: + list: + operation: + $ref: '#/paths/~1resources/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipes + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1resources/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1resources~1{recipe_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipe + request: + nativeCasing: kebab + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1resources~1{recipe_name}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1resources~1{recipe_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1resources/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipes + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + create_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1resources/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1resources~1{recipe_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipe + request: + nativeCasing: kebab + update_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1resources~1{recipe_name}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1resources~1{recipe_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/resources/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/resources/methods/get' + - $ref: '#/components/x-stackQL-resources/resources/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/resources/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/resources/methods/create_by_team' + - $ref: '#/components/x-stackQL-resources/resources/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/resources/methods/update_by_team' + - $ref: '#/components/x-stackQL-resources/resources/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/resources/methods/delete_by_team' + - $ref: '#/components/x-stackQL-resources/resources/methods/delete' + replace: [] + resource_versions: + id: nvidia.private_registry.resource_versions + name: resource_versions + title: Resource Versions + methods: + list: + operation: + $ref: '#/paths/~1resources~1{recipe_name}~1versions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeVersions + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1resources~1{recipe_name}~1versions/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1resources~1{recipe_name}~1versions~1{version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeVersion + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1resources~1{recipe_name}~1versions~1{version_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + list_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1resources~1{recipe_name}~1versions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeVersions + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + create_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1resources~1{recipe_name}~1versions/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1resources~1{recipe_name}~1versions~1{version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeVersion + request: + nativeCasing: camel + update_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1resources~1{recipe_name}~1versions~1{version_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/resource_versions/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/resource_versions/methods/get' + - $ref: '#/components/x-stackQL-resources/resource_versions/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/resource_versions/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/resource_versions/methods/create_by_team' + - $ref: '#/components/x-stackQL-resources/resource_versions/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/resource_versions/methods/update_by_team' + - $ref: '#/components/x-stackQL-resources/resource_versions/methods/update' + delete: [] + replace: [] + resource_files: + id: nvidia.private_registry.resource_files + name: resource_files + title: Resource Files + methods: + list: + operation: + $ref: '#/paths/~1resources~1{recipe_name}~1versions~1{version_id}~1files/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeFiles + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + list_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1resources~1{recipe_name}~1versions~1{version_id}~1files/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recipeFiles + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/resource_files/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/resource_files/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + artifacts: + id: nvidia.private_registry.artifacts + name: artifacts + title: Artifacts + methods: + list_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifacts + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + create_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifact + request: + nativeCasing: kebab + replace_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sync_release_type_labels_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1collections~1sync-release-type-labels/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + set_release_type_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1release-type/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + set_terms_of_service_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1terms-of-service/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1{artifact_type}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifacts + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1{artifact_type}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifact + request: + nativeCasing: kebab + replace: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sync_release_type_labels: + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1collections~1sync-release-type-labels/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + set_release_type: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1release-type/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + set_terms_of_service: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1terms-of-service/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + malware_scan_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1versions~1{version_id}~1malware-scan/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + purge_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1purge/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + malware_scan: + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1versions~1{version_id}~1malware-scan/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + purge: + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1purge/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/artifacts/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/artifacts/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/artifacts/methods/get' + - $ref: '#/components/x-stackQL-resources/artifacts/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/artifacts/methods/create_by_team' + - $ref: '#/components/x-stackQL-resources/artifacts/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/artifacts/methods/update_by_team' + - $ref: '#/components/x-stackQL-resources/artifacts/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/artifacts/methods/delete_by_team' + - $ref: '#/components/x-stackQL-resources/artifacts/methods/delete' + replace: + - $ref: '#/components/x-stackQL-resources/artifacts/methods/replace_by_team' + - $ref: '#/components/x-stackQL-resources/artifacts/methods/replace' + artifact_catalog_flags: + id: nvidia.private_registry.artifact_catalog_flags + name: artifact_catalog_flags + title: Artifact Catalog Flags + methods: + get_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1catalog~1flags/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1catalog~1flags/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/artifact_catalog_flags/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_catalog_flags/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + artifact_collections: + id: nvidia.private_registry.artifact_collections + name: artifact_collections + title: Artifact Collections + methods: + list_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1collections/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.collections + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + list: + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1collections/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.collections + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/artifact_collections/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_collections/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + artifact_deployment_params: + id: nvidia.private_registry.artifact_deployment_params + name: artifact_deployment_params + title: Artifact Deployment Params + methods: + list_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1deployments~1params/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.deploymentParameters + request: + nativeCasing: kebab + get_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1deployments~1{csp_name}~1params/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + create_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1deployments~1{csp_name}~1params/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + update_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1deployments~1{csp_name}~1params/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + delete_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1deployments~1{csp_name}~1params/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1deployments~1params/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.deploymentParameters + request: + nativeCasing: kebab + get: + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1deployments~1{csp_name}~1params/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1deployments~1{csp_name}~1params/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1deployments~1{csp_name}~1params/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + delete: + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1deployments~1{csp_name}~1params/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/artifact_deployment_params/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_deployment_params/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_deployment_params/methods/get' + - $ref: '#/components/x-stackQL-resources/artifact_deployment_params/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/artifact_deployment_params/methods/create_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_deployment_params/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/artifact_deployment_params/methods/update_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_deployment_params/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/artifact_deployment_params/methods/delete_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_deployment_params/methods/delete' + replace: [] + license_acceptances: + id: nvidia.private_registry.license_acceptances + name: license_acceptances + title: License Acceptances + methods: + create_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1license~1acceptance/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1license~1acceptance/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/license_acceptances/methods/create_by_team' + - $ref: '#/components/x-stackQL-resources/license_acceptances/methods/create' + update: [] + delete: [] + replace: [] + artifact_shares: + id: nvidia.private_registry.artifact_shares + name: artifact_shares + title: Artifact Shares + methods: + add_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1share/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + remove_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1share/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + add: + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1share/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: kebab + remove: + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1share/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/artifact_shares/methods/add_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_shares/methods/add' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/artifact_shares/methods/remove_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_shares/methods/remove' + replace: [] + artifact_product_shares: + id: nvidia.private_registry.artifact_product_shares + name: artifact_product_shares + title: Artifact Product Shares + methods: + add_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1share~1product/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + remove_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1share~1product/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + add: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1share~1product/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + remove: + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1share~1product/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/artifact_product_shares/methods/add_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_product_shares/methods/add' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/artifact_product_shares/methods/remove_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_product_shares/methods/remove' + replace: [] + artifact_versions: + id: nvidia.private_registry.artifact_versions + name: artifact_versions + title: Artifact Versions + methods: + delete_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1versions~1{version_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1versions~1{version_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/artifact_versions/methods/delete_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_versions/methods/delete' + replace: [] + artifact_version_configs: + id: nvidia.private_registry.artifact_version_configs + name: artifact_version_configs + title: Artifact Version Configs + methods: + update_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1versions~1{version_id}~1configs/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1versions~1{version_id}~1configs/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/artifact_version_configs/methods/update_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_version_configs/methods/update' + delete: [] + replace: [] + artifact_deployments: + id: nvidia.private_registry.artifact_deployments + name: artifact_deployments + title: Artifact Deployments + methods: + create_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1versions~1{version_id}~1deployments~1{csp_name}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1versions~1{version_id}~1deployments~1{csp_name}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/artifact_deployments/methods/create_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_deployments/methods/create' + update: [] + delete: [] + replace: [] + artifact_files: + id: nvidia.private_registry.artifact_files + name: artifact_files + title: Artifact Files + methods: + list_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1versions~1{version_id}~1files/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifactFiles + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + list: + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1versions~1{version_id}~1files/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.artifactFiles + request: + nativeCasing: kebab + config: + pagination: + algorithm: page_number + requestToken: + key: page-number + location: query + responseToken: + key: $.paginationInfo.index + location: body + responseTerminator: + key: $.paginationInfo.totalPages + location: body + queryParamPushdown: + top: + paramName: page-size + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/artifact_files/methods/list_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_files/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + artifact_signatures: + id: nvidia.private_registry.artifact_signatures + name: artifact_signatures + title: Artifact Signatures + methods: + set_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1versions~1{version_id}~1signature/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + set: + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1versions~1{version_id}~1signature/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] + artifact_specs: + id: nvidia.private_registry.artifact_specs + name: artifact_specs + title: Artifact Specs + methods: + create_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1spec/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1spec/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update_by_team: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1spec/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete_by_team: + operation: + $ref: '#/paths/~1team~1{team_name}~1{artifact_type}~1{artifact_name}~1spec/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1{artifact_type}~1spec/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1spec/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1spec/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1{artifact_type}~1{artifact_name}~1spec/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/artifact_specs/methods/get_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_specs/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/artifact_specs/methods/create_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_specs/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/artifact_specs/methods/update_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_specs/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/artifact_specs/methods/delete_by_team' + - $ref: '#/components/x-stackQL-resources/artifact_specs/methods/delete' + replace: [] +servers: + - url: https://api.ngc.nvidia.com diff --git a/provider-dev/scripts/build_inventory.mjs b/provider-dev/scripts/build_inventory.mjs new file mode 100644 index 0000000..715acf0 --- /dev/null +++ b/provider-dev/scripts/build_inventory.mjs @@ -0,0 +1,790 @@ +#!/usr/bin/env node + +// Build the endpoint inventory across the cleaned spec sources into +// provider-dev/config/endpoint_inventory.csv. Every generator-relevant +// operation is classified by deterministic rules: host, org/team scoping, +// the org-scope rebase (org_prefix / rebased_path / server_url - the org +// path parameter becomes a path-level server variable resolved from +// NGC_ORG), declared auth, wire-observed public reads, pagination idiom, +// response shape, casing of the wire parameters, invocation form, proposed +// service/resource/method/SQL verb, and a skip reason where applicable. +// The CSV is the single source of truth for the split (service_rules.mjs), +// the mapping pass (map_operations.mjs) and post-processing +// (post_process.mjs). Fails without writing on any unclassified operation +// or consistency error. +// +// Deprecation schedule (a build input): NVIDIA's NGC deprecated API +// reference (https://docs.nvidia.com/ngc/latest/ngc-deprecated-api.html) +// ends team-scoped (/teams/{team}) paths for NVCF, NVCT, FNDS, Skyway, SIS, +// SI, PYM, Infinity Manager and GDN on 2026-09-30; "products other than +// NVIDIA Private Registry and NVIDIA Data Services do not support +// team-level resource scoping". Paths in those families are skipped with +// reason deprecated-schedule-2026-09-30. Private Registry team-scoped paths +// are exempt and are mapped as *_by_team methods on the same resources +// (they add team_name to the required-parameter signature). +// +// Usage: node provider-dev/scripts/build_inventory.mjs + +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..'); +const cleanedDir = path.join(repoRoot, 'provider-dev', 'downloaded', 'cleaned'); +const outPath = path.join(repoRoot, 'provider-dev', 'config', 'endpoint_inventory.csv'); +const serversPath = path.join(repoRoot, 'provider-dev', 'config', 'servers.json'); + +const HTTP_VERBS = ['get', 'post', 'put', 'patch', 'delete']; +const NON_GENERATOR_VERBS = ['head', 'options', 'trace']; + +const SOURCES = { + 'nvcf_openapi.json': 'nvcf', + 'ngc_kas.json': 'ngc-core', + 'ngc_models.json': 'ngc-core' +}; + +const servers = JSON.parse(fs.readFileSync(serversPath, 'utf8')); +const NGC_HOST = servers.hosts.ngc; +const NVCF_HOST = servers.hosts.nvcf; +const ORG_VAR = servers.orgVariable.name; // org_name + +// NVCF host assignment per tag: the NVCF docs state management is served +// from api.ngc.nvidia.com and invocation/queue details from +// api.nvcf.nvidia.com; /v2/nvcf/assets is empirically nvcf-host-only +// (404 on the ngc gateway, 2026-07-14), and assertion tokens are part of +// the invocation flow. +const NVCF_HOST_TAGS = new Set([ + 'Function Invocation', + 'Queue Details', + 'Asset Management', + 'Function Invocation Assertion Token' +]); + +// Wire-proven unauthenticated reads (2026-07-14, see NOTES.md item 4), +// keyed by `${file}::${path}::${verb}` on the cleaned (snake_case, /v2) +// path form; everything else is unprobed (blank) or observed +// auth-required ('n'). +const OBSERVED_PUBLIC_READS = new Map([ + ['ngc_models.json::/v2/models::get', 'y'], + ['ngc_models.json::/v2/models/{org_name}/{model_name}::get', 'y'], + ['ngc_models.json::/v2/models/{org_name}/{model_name}/versions::get', 'y'], + ['ngc_models.json::/v2/recipes::get', 'y'], + ['ngc_models.json::/v2/resources::get', 'y'], + ['ngc_models.json::/v2/collections::get', 'y'], + ['ngc_models.json::/v2/gpus::get', 'y'], + ['ngc_models.json::/v2/{artifact_type}::get', 'y'], + ['ngc_models.json::/v2/csps::get', 'n'], + ['ngc_kas.json::/v2/orgs::get', 'n'], + ['ngc_kas.json::/v2/users/me::get', 'n'], + ['nvcf_openapi.json::/v2/nvcf/functions::get', 'n'], + ['nvcf_openapi.json::/v2/nvcf/clusterGroups::get', 'n'] +]); + +// The published deprecation schedule, as path-family rules. Matched +// against every source; a hit is a skip (reason deprecated-schedule-2026-09-30). +const SCHEDULED_DEPRECATIONS = [ + /^\/v2\/orgs\/\{[^}]+\}\/teams\/\{[^}]+\}\/(nvcf|nvct|fnds|skyway|sis|si|pym|gdn|gdncs|ngc\/nvcf)(\/|$)/, + /^\/v3\/orgs\/\{[^}]+\}\/teams\/\{[^}]+\}\/(fnds|ngc\/nvcf)(\/|$)/, + /^\/v3\/ngc\/nvcf\/orgs\/\{[^}]+\}\/teams\/\{[^}]+\}\/keys(\/|$)/, + /^\/v2\/org\/\{[^}]+\}\/team\/\{[^}]+\}\/infinity-manager(\/|$)/, + /^\/v1\/orgs\/\{[^}]+\}\/teams\/\{[^}]+\}\/(gdn|gdncs)(\/|$)/ +]; + +// Org-scope rebase: a leading org prefix becomes a path-level server +// template carrying the org as a server variable (x-stackQL-envVar NGC_ORG, +// stamped by post_process.mjs); the remainder is the operation path. Only +// leading prefixes with a non-empty remainder are rebased; org parameters +// elsewhere in the path stay ordinary path parameters. +const ORG_PREFIXES = [ + { re: /^\/v2\/org\/\{(org_name|org)\}(?=\/.)/, template: '/v2/org/{org_name}' }, + { re: /^\/v3\/orgs\/\{(org_name|org)\}(?=\/.)/, template: '/v3/orgs/{org_name}' }, + { re: /^\/v2\/orgs\/\{(org_name|org)\}(?=\/.)/, template: '/v2/orgs/{org_name}' }, + { re: /^\/v2\/artifact-registry\/org\/\{(org_name|org)\}(?=\/.)/, template: '/v2/artifact-registry/org/{org_name}' } +]; + +function pathParams(p) { + return (p.match(/\{[^}]+\}/g) || []).map((s) => s.slice(1, -1)); +} + +// Private Registry team scope: the team segment right after the org +// segment (org-scoped form) or the guest {org}/{team}/{name} form. The +// cross-org collection references ({artifact_team_name}) and share targets +// ({target_team}) are not scopes and are left alone. +function stripTeamScope(p) { + let out = p.replace(/\/team\/\{team(_name)?\}(?=\/|$)/, ''); + out = out.replace(/^(\/v2\/(?:\{artifact_type\}|models|recipes|resources|helm-charts|collections|csps\/\{artifact_type\}|deploy\/csps\/\{artifact_type\})\/\{org_name\})\/\{team_name\}(?=\/)/, '$1'); + return { stripped: out, team: out !== p }; +} + +// --------------------------------------------------------------------------- +// response shape helpers +// --------------------------------------------------------------------------- + +function deref(spec, node) { + if (node && node.$ref) { + const parts = node.$ref.replace(/^#\//, '').split('/'); + let cur = spec; + for (const part of parts) cur = cur?.[part]; + return cur || {}; + } + return node || {}; +} + +const ENVELOPE_KEYS = new Set(['requestStatus', 'paginationInfo']); + +function responseShape(spec, op) { + const none = { shape: 'none', arrayProps: [], objectProps: [], dataProps: [], envelopeOnly: false }; + const resp = op.responses?.['200'] || op.responses?.['201'] || op.responses?.['202']; + if (!resp) return none; + const content = deref(spec, resp).content; + const media = content?.['application/json'] || content?.['*/*'] || Object.values(content || {})[0]; + if (!media?.schema) return none; + const schema = deref(spec, media.schema); + if (schema.type === 'array' || (Array.isArray(schema.type) && schema.type.includes('array'))) { + return { ...none, shape: 'array' }; + } + const props = schema.properties ? Object.keys(schema.properties) : []; + const arrayProps = props.filter((k) => { + const ps = deref(spec, schema.properties[k]); + return ps.type === 'array' || (Array.isArray(ps.type) && ps.type.includes('array')); + }).filter((k) => !ENVELOPE_KEYS.has(k)); + const dataProps = props.filter((k) => !ENVELOPE_KEYS.has(k)); + // an object property is an unwrap candidate only when it declares + // properties of its own; a map (additionalProperties, no properties - + // RecognizedRegistriesResponse.recognizedRegistries) is a value, projected + // as a JSON column + const objectProps = dataProps.filter((k) => { + const ps = deref(spec, schema.properties[k]); + if (ps.type === 'array' || (Array.isArray(ps.type) && ps.type.includes('array'))) return false; + return !!ps.properties && Object.keys(ps.properties).length > 0; + }); + return { + shape: props.length ? `object{${props.slice(0, 6).join(';')}${props.length > 6 ? ';...' : ''}}` : 'object', + arrayProps, + objectProps, + dataProps, + envelopeOnly: props.length > 0 && dataProps.length === 0 + }; +} + +const camel = (s) => s.replace(/_([a-z0-9])/g, (m, c) => c.toUpperCase()); +const singular = (s) => s.replace(/ies$/, 'y').replace(/sses$/, 'ss').replace(/s$/, ''); + +// objectKey per method kind: a collection read (list*) unwraps the array +// property of its envelope ({models: [...], paginationInfo, requestStatus}); +// an entity read unwraps the object property of an entity envelope ({model: +// {...}, requestStatus}) and never an array field of the entity itself +// (GpuByPciResponse.gpuCounts is data, not a list). When an envelope carries +// several candidates ({model, modelVersion, requestStatus}) the property +// named after the resource wins (model_versions -> modelVersion); with no +// such match the key is left blank for a wire check. +function objectKeyFor(resource, method, { arrayProps, objectProps, dataProps }) { + const isList = /^list/.test(method); + // a collection read unwraps its array property; a "list" that returns a + // single object (authorizations.list_version) falls through to the entity + // rules; an entity read whose only data property is an array + // (encryption_keys.get -> {artifacts: [...]}) unwraps that array + if (isList && arrayProps.length === 1) return `$.${arrayProps[0]}`; + if (isList && arrayProps.length > 1) return pick(arrayProps, camel(resource)); + if (!isList && objectProps.length === 0 && arrayProps.length === 1 && dataProps.length === 1) return `$.${arrayProps[0]}`; + // entity envelope: exactly one data property, or one named after the + // resource; an entity with several properties of its own (a nested + // object among scalars - WorkflowStatusResponse.cloneStatus) stays flat + if (objectProps.length === 0) return ''; + if (dataProps.length === 1) return `$.${objectProps[0]}`; + return pick(objectProps, camel(singular(resource)), true); +} + +function pick(candidates, wanted, entity = false) { + const exact = candidates.find((c) => c.toLowerCase() === wanted.toLowerCase()); + if (exact) return `$.${exact}`; + // the resources family reuses the recipe wrappers and helm charts the + // generic artifact wrappers: match on the trailing segment of the + // resource name (resource_versions -> ...Version, ...Versions) + const suffix = wanted.replace(/^.*?([A-Z][a-z]+)$/, '$1').toLowerCase(); + const bySuffix = candidates.filter((c) => c.toLowerCase().endsWith(suffix)); + if (bySuffix.length === 1) return `$.${bySuffix[0]}`; + return entity ? '' : `$.${candidates[0]}?multi:${candidates.join('|')}`; +} + +function paginationParams(spec, op, pathItem) { + const params = [...(pathItem.parameters || []), ...(op.parameters || [])].map((p) => deref(spec, p)); + return params + .filter((p) => p.in === 'query' && /^(page|page-?size|pageSize|page-?number|cursor|offset|limit|next|token)$/i.test(p.name)) + .map((p) => p.name).join('+'); +} + +// casing of the non-path wire parameters: kebab (page-size) or camel +// (includeSecrets); the provider's user surface is snake_case, and +// request.nativeCasing tells any-sdk how to reverse it per method +function nativeCasing(spec, op, pathItem) { + const params = [...(pathItem.parameters || []), ...(op.parameters || [])].map((p) => deref(spec, p)) + .filter((p) => p.in === 'query' || p.in === 'header'); + if (params.some((p) => p.name.includes('-'))) return 'kebab'; + return 'camel'; +} + +function authDeclared(spec, op) { + const sec = op.security !== undefined ? op.security : spec.security; + if (!sec || sec.length === 0) return 'none-declared'; + const names = sec.flatMap((s) => Object.keys(s)); + return names.join('+') || 'none-declared'; +} + +// --------------------------------------------------------------------------- +// classification rules per source (paths are the cleaned form: snake_case +// path parameters, /v2 gateway prefix for the models definition) +// --------------------------------------------------------------------------- + +function classifyNvcf(p, verb, op) { + const tag = (op.tags || [])[0] || ''; + if (p === '/health' || p === '/info') return { skip: 'service-infra' }; + + const T = { + 'Function Management': () => { + if (p === '/v2/nvcf/functions' && verb === 'get') return r('nvcf_functions', 'functions', 'list', 'select'); + if (p === '/v2/nvcf/functions' && verb === 'post') return r('nvcf_functions', 'functions', 'create', 'insert'); + if (p === '/v2/nvcf/functions/ids') return r('nvcf_functions', 'function_ids', 'list', 'select', 'own resource: same empty path-param signature as functions.list'); + if (p === '/v2/nvcf/functions/{function_id}/versions' && verb === 'get') return r('nvcf_functions', 'function_versions', 'list', 'select'); + if (p === '/v2/nvcf/functions/{function_id}/versions' && verb === 'post') return r('nvcf_functions', 'function_versions', 'create', 'insert'); + if (p === '/v2/nvcf/functions/{function_id}/versions/{function_version_id}') { + if (verb === 'get') return r('nvcf_functions', 'function_versions', 'get', 'select'); + if (verb === 'put') return r('nvcf_functions', 'function_versions', 'update', 'update', 'PUT semantics unverified (keycloak rule): update until field-drop evidence'); + if (verb === 'delete') return r('nvcf_functions', 'function_versions', 'delete', 'delete'); + } + if (p.startsWith('/v2/nvcf/metadata/')) return r('nvcf_functions', 'function_metadata', 'update', 'update', 'PUT semantics unverified'); + }, + 'Function Sharing': () => { + const versioned = p.includes('/versions/'); + const res = 'authorizations'; + const m = versioned ? '_version' : ''; + // NVCF 2.261.2: every function with its authorized parties in one read + // ({functions: [AuthorizedPartiesByFunctionDto]} - the same row shape as + // the per-function read, no path parameters, so a unique signature) + if (p === '/v2/nvcf/authorizations/functions' && verb === 'get') return r('nvcf_functions', res, 'list_all', 'select', 'the sharing audit across the fleet: one row per function with its authorized parties'); + if (verb === 'get') return r('nvcf_functions', res, `list${m}`, 'select'); + if (verb === 'post') return r('nvcf_functions', res, `set${m}`, 'replace', 'POST replaces the full authorized-party list - grants-as-data set operation'); + if (p.endsWith('/add')) return r('nvcf_functions', res, `add${m}`, 'insert'); + if (p.endsWith('/remove')) return r('nvcf_functions', res, `remove${m}`, 'delete'); + if (verb === 'delete') return r('nvcf_functions', res, `delete_all${m}`, 'exec', 'delete-all kept off the DELETE verb: same path-param signature as the granular remove'); + }, + 'Function Deployment': () => { + if (p === '/v2/nvcf/deployments/{deployment_id}') return r('nvcf_deployments', 'deployments', 'get_by_id', 'select'); + if (p.includes('/gpu-specifications/')) return r('nvcf_deployments', 'deployment_gpu_specs', 'update', 'update'); + if (verb === 'get') return r('nvcf_deployments', 'deployments', 'get', 'select'); + if (verb === 'post') return r('nvcf_deployments', 'deployments', 'create', 'insert'); + if (verb === 'put') return r('nvcf_deployments', 'deployments', 'update', 'update', 'PUT semantics unverified'); + if (verb === 'delete') return r('nvcf_deployments', 'deployments', 'delete', 'delete'); + }, + 'Cluster Groups and GPUs': () => r('nvcf_deployments', 'cluster_groups', 'list', 'select'), + 'Registry Credential Management': () => { + if (p === '/v2/nvcf/recognized-registries') return r('nvcf_deployments', 'recognized_registries', 'list', 'select'); + if (verb === 'get' && p.endsWith('registry-credentials')) return r('nvcf_deployments', 'registry_credentials', 'list', 'select'); + if (verb === 'get') return r('nvcf_deployments', 'registry_credentials', 'get', 'select'); + if (verb === 'post') return r('nvcf_deployments', 'registry_credentials', 'create', 'insert'); + if (verb === 'patch') return r('nvcf_deployments', 'registry_credentials', 'update', 'update'); + if (verb === 'delete') return r('nvcf_deployments', 'registry_credentials', 'delete', 'delete'); + }, + 'Telemetry Management': () => { + if (verb === 'get' && p.endsWith('telemetries')) return r('nvcf_deployments', 'telemetries', 'list', 'select'); + if (verb === 'get') return r('nvcf_deployments', 'telemetries', 'get', 'select'); + if (verb === 'post') return r('nvcf_deployments', 'telemetries', 'create', 'insert'); + if (verb === 'delete') return r('nvcf_deployments', 'telemetries', 'delete', 'delete'); + }, + 'User Secret Management': () => { + if (p.includes('/secrets/functions/')) return r('nvcf_functions', 'function_secrets', 'update', 'update', 'PUT semantics unverified'); + if (p.includes('/secrets/telemetries/')) return r('nvcf_deployments', 'telemetry_secrets', 'update', 'update', 'PUT semantics unverified'); + }, + 'User Ratelimit Management': () => { + if (verb === 'put') return r('nvcf_functions', 'function_ratelimits', 'update', 'update', 'PUT semantics unverified'); + if (verb === 'delete') return r('nvcf_functions', 'function_ratelimits', 'delete', 'delete'); + }, + 'Queue Details': () => { + if (p.includes('/position')) return r('nvcf_queues', 'queue_positions', 'get', 'select'); + if (p.includes('/versions/')) return r('nvcf_queues', 'queues', 'list_version', 'select'); + return r('nvcf_queues', 'queues', 'list', 'select'); + }, + 'Function Invocation': () => { + if (p.startsWith('/v2/nvcf/pexec/status/')) return r('nvcf_invocation', 'invocation_status', 'get', 'select', 'polling form: EXEC returns 202 + requestId, status polled here (proxmox precedent)'); + if (p.includes('/versions/')) return r('nvcf_invocation', 'invocations', 'invoke_version', 'exec', 'polling invocation, scoped in'); + return r('nvcf_invocation', 'invocations', 'invoke', 'exec', 'polling invocation, scoped in'); + }, + 'Function Invocation Assertion Token': () => { + if (p === '/v2/nvcf/tokens/functions') return r('nvcf_invocation', 'tokens', 'create_for_functions', 'exec', 'ephemeral credential mint - action, nothing queryable persisted'); + if (p.includes('/versions/')) return r('nvcf_invocation', 'tokens', 'create_for_version', 'exec'); + return r('nvcf_invocation', 'tokens', 'create_for_function', 'exec'); + }, + 'Asset Management': () => { + if (verb === 'get' && p === '/v2/nvcf/assets') return r('nvcf_invocation', 'assets', 'list', 'select'); + if (verb === 'get') return r('nvcf_invocation', 'assets', 'get', 'select'); + if (verb === 'post') return r('nvcf_invocation', 'assets', 'create', 'insert'); + if (verb === 'delete') return r('nvcf_invocation', 'assets', 'delete', 'delete'); + } + }; + + const fn = T[tag]; + const res = fn ? fn() : null; + if (!res) return { error: `unclassified nvcf operation: ${verb} ${p} [${tag}]` }; + res.host = NVCF_HOST_TAGS.has(tag) ? NVCF_HOST : NGC_HOST; + res.invocationForm = tag === 'Function Invocation' ? 'polling' : ''; + return res; +} + +function classifyKas(p, verb, op) { + if (/^\/(health|version|swagger-resources|public-keys)/.test(p) || p === '/v2/ping') return { skip: 'service-infra' }; + if (/^\/v[23]\/admin\//.test(p) || p === '/v2/admin') return { skip: 'internal-admin' }; + if (op.deprecated) return { skip: 'deprecated-inline' }; + + // team-scoped organization paths (Private Registry teams - exempt from + // the 2026-09 schedule): team membership, member roles and invitations + const team = p.match(/^\/v2\/org\/\{org_name\}\/team\/\{team_name\}(\/.*)?$/) || p.match(/^\/v3\/orgs\/\{org_name\}\/teams\/\{team_name\}(\/.*)?$/); + if (team) { + const rest = team[1] || ''; + const v3 = p.startsWith('/v3/'); + if (rest === '/users' && verb === 'get') return r('orgs', 'team_members', 'list', 'select'); + if (rest === '/users' && verb === 'post') return r('orgs', 'team_members', 'create', 'insert', 'creates (invites) a user directly into the team'); + if (rest === '/users/{id}' && verb === 'post') return r('orgs', 'team_members', 'add', 'insert', 'adds an existing org user to the team - grants-as-data'); + if (rest === '/users/{id}' && verb === 'get') return { skip: 'superseded-by-v3-twin (/v3/orgs/{org_name}/teams/{team_name}/users/{user_email_or_id})' }; + if (rest === '/users/{id}' && verb === 'delete') return v3 ? r('orgs', 'team_members', 'remove', 'delete') : { skip: 'superseded-by-v3-twin (/v3/orgs/{org_name}/teams/{team_name}/users/{id})' }; + if (rest === '/users/{user_email_or_id}' && verb === 'get') return r('orgs', 'team_members', 'get', 'select'); + if (rest.endsWith('/add-role')) return r('orgs', 'team_member_roles', 'add', 'insert', 'grants-as-data'); + if (rest.endsWith('/remove-role')) return r('orgs', 'team_member_roles', 'remove', 'delete', 'grants-as-data'); + if (rest === '/users/invitations' && verb === 'get') return r('orgs', 'team_invitations', 'list', 'select'); + if (rest === '/users/invitations/{id}' && verb === 'delete') return r('orgs', 'team_invitations', 'delete', 'delete'); + if (rest.endsWith('/resend-invitation-email')) return r('orgs', 'team_invitations', 'resend_email', 'exec', 'non-idempotent GET (sends email) - action, not a read'); + if (rest === '/users/nca-invitations') return r('orgs', 'team_invitations', 'create_nca', 'insert'); + if (rest === '/starfleetIds/{starfleet_id}') return r('orgs', 'team_members', 'get_by_starfleet_id', 'select'); + return { error: `unclassified kas team operation: ${verb} ${p}` }; + } + + if (p === '/roles') return r('orgs', 'roles', 'list', 'select'); + if (p === '/v2/orgs' && verb === 'get') return r('orgs', 'orgs', 'list', 'select'); + if (p === '/v2/orgs/{org_name}' && verb === 'get') return r('orgs', 'orgs', 'get', 'select'); + if (p === '/v2/orgs/{org_name}' && verb === 'patch') return r('orgs', 'orgs', 'update', 'update'); + if (p === '/v3/orgs' && verb === 'post') return r('orgs', 'orgs', 'create', 'insert'); + if (p === '/v3/orgs/proto-org') return r('orgs', 'proto_orgs', 'create', 'insert'); + if (p === '/v3/orgs/proto-org/validate') return r('orgs', 'proto_orgs', 'validate', 'select'); + + if (p === '/v2/org/{org_name}/teams' && verb === 'get') return r('orgs', 'teams', 'list', 'select'); + if (p === '/v2/org/{org_name}/teams' && verb === 'post') return r('orgs', 'teams', 'create', 'insert'); + if (p === '/v2/org/{org_name}/teams/{team_name}') { + if (verb === 'get') return r('orgs', 'teams', 'get', 'select'); + if (verb === 'patch') return r('orgs', 'teams', 'update', 'update'); + if (verb === 'delete') return r('orgs', 'teams', 'delete', 'delete'); + } + + if (p === '/v2/org/{org_name}/users' && verb === 'get') return r('orgs', 'users', 'list', 'select'); + if (p === '/v2/org/{org_name}/users' && verb === 'post') return r('orgs', 'users', 'create', 'insert'); + if (p === '/v2/org/{org_name}/users/{id}' && verb === 'get') return { skip: 'superseded-by-v3-twin (/v3/orgs/{org_name}/users/{user_email_or_id})' }; + if (p === '/v2/org/{org_name}/users/{id}' && verb === 'delete') return { skip: 'superseded-by-v3-twin (/v3/orgs/{org_name}/users/{id})' }; + if (p === '/v3/orgs/{org_name}/users/{user_email_or_id}' && verb === 'get') return r('orgs', 'users', 'get', 'select'); + if (p === '/v3/orgs/{org_name}/users/{id}' && verb === 'delete') return r('orgs', 'users', 'delete', 'delete'); + if (p === '/v2/org/{org_name}/starfleetIds/{starfleet_id}') return r('orgs', 'users', 'get_by_starfleet_id', 'select'); + if (p.endsWith('/add-role')) return r('orgs', 'user_roles', 'add', 'insert', 'grants-as-data'); + if (p.endsWith('/remove-role')) return r('orgs', 'user_roles', 'remove', 'delete', 'grants-as-data'); + if (p === '/v2/org/{org_name}/users/invitations') return r('orgs', 'user_invitations', 'list', 'select'); + if (p === '/v2/org/{org_name}/users/invitations/{id}' && verb === 'delete') return r('orgs', 'user_invitations', 'delete', 'delete'); + if (p.endsWith('/resend-invitation-email')) return r('orgs', 'user_invitations', 'resend_email', 'exec', 'non-idempotent GET (sends email) - action, not a read'); + if (p.endsWith('/users/nca-invitations')) return r('orgs', 'user_invitations', 'create_nca', 'insert'); + + if (p === '/v2/users/me' && verb === 'get') return r('orgs', 'current_user', 'get', 'select'); + if (p === '/v2/users/me' && verb === 'patch') return r('orgs', 'current_user', 'update', 'update'); + if (p === '/v2/users/me/api-key') return r('orgs', 'current_user', 'create_api_key', 'exec', 'credential mint - action'); + + return { error: `unclassified kas operation: ${verb} ${p}` }; +} + +// Guest (catalog) and org-scoped (registry) artifact metadata; the rules +// see the team scope stripped (classifyModels strips it and suffixes the +// method with _by_team). +function classifyModelsCore(p, verb, op) { + if (/^\/health/.test(p)) return { skip: 'service-infra' }; + if (p === '/v2/malware-scan-notification') return { skip: 'inbound-webhook-not-client-api' }; + if (/\/files\/(multipart|clone|commit)|\/files\/\*\*|\/async-clone|\/zip(\/|$)|\{artifact_name\}\/files$/.test(p) && + !/versions\/\{version_id\}\/files$|\{version\}\/files$/.test(p)) { + return { skip: 'data-plane-file-transfer' }; + } + if (p.startsWith('/v2/deploy/')) return { skip: 'duplicate-endpoint-family (same operations as the /v2/csps/{artifact_type} family)' }; + // NIM catalog metadata publishing (added upstream 2026-09; a team-owned + // NIM addressed without an org segment - publisher-privileged write) + if (p === '/v2/nim/{team}/{nim_name}/{tag}/metadata' && verb === 'post') return r('catalog', 'nim_metadata', 'create', 'insert', 'publisher-privileged write, mapped as documented'); + + // /v2/csps/{artifact_type}/org/... and /v2/{artifact_type}/org/... are + // alternate path families for operations also present under + // /v2/org/{org_name}/... - the org-scoped family is the one mapped + if (p.startsWith('/v2/csps/{artifact_type}/org/')) return { skip: 'duplicate-endpoint-family (same operation under /v2/org/{org_name}/{artifact_type}/.../deployments)' }; + if (/^\/v2\/\{artifact_type\}\/org\//.test(p)) return { skip: 'duplicate-endpoint-family (same operation under /v2/org/{org_name}/{artifact_type}/{artifact_name}/collections)' }; + + const org = p.includes('/org/{org'); + + // catalog (guest) families ------------------------------------------------ + if (!org) { + if (p === '/v2/{artifact_type}') return r('catalog', 'artifacts', 'list', 'select'); + if (p === '/v2/{artifact_type}/{org_name}/{artifact_name}') return r('catalog', 'artifacts', 'get', 'select'); + if (/^\/v2\/\{artifact_type\}\/\{org_name\}\/\{artifact_name\}\/versions\/\{version_id\}\/files$/.test(p)) return r('catalog', 'artifact_files', 'list', 'select'); + if (p.endsWith('/signature')) return { skip: 'non-json-response (signature bytes / redirect)' }; + if (/^\/v2\/\{artifact_type\}\/\{org_name\}\/\{artifact_name\}\/spec$/.test(p)) return r('catalog', 'artifact_specs', 'get', 'select'); + if (p === '/v2/models') return r('catalog', 'models', 'list', 'select'); + if (p === '/v2/models/{org_name}/{model_name}') return r('catalog', 'models', 'get', 'select'); + if (p === '/v2/models/{org_name}/{model_name}/versions') return r('catalog', 'model_versions', 'list', 'select'); + if (p === '/v2/models/{org_name}/{model_name}/versions/{version_id}') return r('catalog', 'model_versions', 'get', 'select'); + if (p === '/v2/models/{org_name}/{model_name}/versions/{version_id}/files') return r('catalog', 'model_files', 'list', 'select'); + if (p === '/v2/recipes') return r('catalog', 'recipes', 'list', 'select'); + if (p === '/v2/recipes/{org_name}/{recipe_name}') return r('catalog', 'recipes', 'get', 'select'); + if (p === '/v2/recipes/{org_name}/{recipe_name}/versions') return r('catalog', 'recipe_versions', 'list', 'select'); + if (p === '/v2/recipes/{org_name}/{recipe_name}/versions/{version_id}') return r('catalog', 'recipe_versions', 'get', 'select'); + if (p === '/v2/recipes/{org_name}/{recipe_name}/versions/{version_id}/files') return r('catalog', 'recipe_files', 'list', 'select'); + if (p === '/v2/resources') return r('catalog', 'resources', 'list', 'select'); + if (p === '/v2/resources/{org_name}/{recipe_name}') return r('catalog', 'resources', 'get', 'select'); + if (p === '/v2/resources/{org_name}/{recipe_name}/versions') return r('catalog', 'resource_versions', 'list', 'select'); + if (p === '/v2/resources/{org_name}/{recipe_name}/versions/{version_id}') return r('catalog', 'resource_versions', 'get', 'select'); + if (p === '/v2/resources/{org_name}/{recipe_name}/versions/{version_id}/files') return r('catalog', 'resource_files', 'list', 'select'); + if (p === '/v2/helm-charts/{org_name}/{artifact_name}/versions') return r('catalog', 'helm_chart_versions', 'list', 'select'); + if (p === '/v2/helm-charts/{org_name}/{artifact_name}/versions/{version_id}') return r('catalog', 'helm_chart_versions', 'get', 'select'); + if (p === '/v2/collections') return r('catalog', 'collections', 'list', 'select'); + if (p === '/v2/collections/{org_name}/{collection_name}') return r('catalog', 'collections', 'get', 'select'); + if (/^\/v2\/collections\/\{org_name\}\/\{collection_name\}\/artifacts\/\{artifact_type\}$/.test(p)) return r('catalog', 'collection_artifacts', 'list', 'select'); + if (p === '/v2/gpus') return r('catalog', 'gpus', 'list', 'select'); + if (p.startsWith('/v2/gpus/pci-device-id')) { + const m = p.includes('pci-subsystem-device-id') ? '_by_vendor_subsystem' + : (p.includes('pci-vendor-id') ? '_by_vendor' : ''); + if (verb === 'get') return r('catalog', 'gpus', `get${m}`, 'select'); + if (verb === 'post') return r('catalog', 'gpus', `create${m}`, 'insert', 'publisher-privileged write, mapped as documented'); + if (verb === 'patch') return r('catalog', 'gpus', `update${m}`, 'update', 'publisher-privileged write'); + if (verb === 'delete') return r('catalog', 'gpus', `delete${m}`, 'delete', 'publisher-privileged write'); + } + if (p === '/v2/csps' && verb === 'get') return r('catalog', 'csps', 'list', 'select'); + if (p === '/v2/csps' && verb === 'post') return r('catalog', 'csps', 'create', 'insert', 'publisher-privileged write'); + if (p === '/v2/csps/{csp_name}') { + if (verb === 'get') return r('catalog', 'csps', 'get', 'select'); + if (verb === 'patch') return r('catalog', 'csps', 'update', 'update', 'publisher-privileged write'); + if (verb === 'delete') return r('catalog', 'csps', 'delete', 'delete', 'publisher-privileged write'); + } + if (p.startsWith('/v2/csps/{csp_name}/deployments/params')) { + const meta = p.endsWith('/meta') ? '_meta' : ''; + if (verb === 'get') return r('catalog', `csp_deployment_params${meta}`, 'get', 'select'); + if (verb === 'post') return r('catalog', `csp_deployment_params${meta}`, 'create', 'insert'); + if (verb === 'patch') return r('catalog', `csp_deployment_params${meta}`, 'update', 'update'); + if (verb === 'delete') return r('catalog', `csp_deployment_params${meta}`, 'delete', 'delete'); + } + if (p.startsWith('/v2/csps/{artifact_type}/') && p.endsWith('/params')) { + const byCsp = p.includes('{csp_name}'); + return r('catalog', 'artifact_deployment_params', byCsp ? 'get' : 'list', 'select'); + } + return { error: `unclassified catalog operation: ${verb} ${p}` }; + } + + // registry (org-scoped) families ------------------------------------------- + const generic = /\{artifact_type\}/.test(p); + if (p === '/v2/artifact-registry/org/{org_name}/encryption-keys') return r('private_registry', 'encryption_keys', 'list', 'select'); + if (p === '/v2/artifact-registry/org/{org_name}/encryption-keys/{key_id}') { + if (verb === 'get') return r('private_registry', 'encryption_keys', 'get', 'select'); + if (verb === 'delete') return r('private_registry', 'encryption_keys', 'delete', 'delete'); + } + if (p === '/v2/artifact-registry/org/{org}/workflows/{workflow_id}') return r('private_registry', 'workflows', 'get', 'select'); + + if (p === '/v2/org/{org_name}/collections' && verb === 'get') return r('private_registry', 'collections', 'list', 'select'); + if (p === '/v2/org/{org_name}/collections' && verb === 'post') return r('private_registry', 'collections', 'create', 'insert'); + if (p === '/v2/org/{org_name}/collections/{collection_name}') { + if (verb === 'get') return r('private_registry', 'collections', 'get', 'select'); + if (verb === 'patch') return r('private_registry', 'collections', 'update', 'update'); + if (verb === 'delete') return r('private_registry', 'collections', 'delete', 'delete'); + } + if (p.startsWith('/v2/org/{org_name}/collections/{collection_name}')) { + if (p.includes('/share')) { + // /share is the legacy org-wide share (its PUT is deprecated inline); + // product shares get their own resource - same path-param signature + // as the org-wide share otherwise + if (p.endsWith('/share') && verb === 'delete') return { skip: 'legacy-twin (PUT counterpart deprecated inline; superseded by /shares/org)' }; + if (p.endsWith('/share') && verb === 'put') return { skip: 'legacy-twin (superseded by /shares/org)' }; + if (p.endsWith('/share/product')) { + if (verb === 'put') return r('private_registry', 'collection_product_shares', 'add', 'insert', 'grants-as-data'); + if (verb === 'delete') return r('private_registry', 'collection_product_shares', 'remove', 'delete', 'grants-as-data'); + } + const target = p.includes('/shares/org') ? '_org' : '_team'; + if (verb === 'put') return r('private_registry', 'collection_shares', `add${target}`, 'insert', 'grants-as-data'); + if (verb === 'delete') return r('private_registry', 'collection_shares', `remove${target}`, 'delete', 'grants-as-data'); + } + if (/\/artifacts\/\{artifact_type\}$/.test(p)) return r('private_registry', 'collection_artifacts', 'list', 'select'); + if (/\/artifacts$/.test(p) && verb === 'patch') return r('private_registry', 'collection_artifacts', 'update_bulk', 'update', 'bulk membership update'); + if (p.includes('/artifacts/org/')) { + const teamArtifact = p.includes('/team/{artifact_team_name}/') ? '_team' : ''; + if (verb === 'put') return r('private_registry', 'collection_artifacts', `add_cross_org${teamArtifact}`, 'insert', 'grants-as-data membership'); + if (verb === 'delete') return r('private_registry', 'collection_artifacts', `remove_cross_org${teamArtifact}`, 'delete'); + } + if (/\{artifact_type\}\/\{artifact_name\}$/.test(p)) { + if (verb === 'put') return r('private_registry', 'collection_artifacts', 'add', 'insert', 'grants-as-data membership'); + if (verb === 'delete') return r('private_registry', 'collection_artifacts', 'remove', 'delete'); + } + } + + if (p === '/v2/org/{org_name}/models' && verb === 'get') return r('private_registry', 'models', 'list', 'select'); + if (p === '/v2/org/{org_name}/models' && verb === 'post') return r('private_registry', 'models', 'create', 'insert'); + if (p === '/v2/org/{org_name}/models/{model_name}') { + if (verb === 'get') return r('private_registry', 'models', 'get', 'select'); + if (verb === 'patch') return r('private_registry', 'models', 'update', 'update'); + if (verb === 'delete') return r('private_registry', 'models', 'delete', 'delete', 'injected from SDK evidence (clean_specs inject-sdk-operations)'); + } + if (p === '/v2/org/{org_name}/models/{model_name}/encryption-key') return r('private_registry', 'model_encryption_keys', 'delete', 'delete'); + if (p.includes('/models/{model_name}/shares/')) { + const target = p.endsWith('/shares/org') ? '_org' : '_team'; + if (verb === 'put') return r('private_registry', 'model_shares', `add${target}`, 'insert', 'grants-as-data'); + if (verb === 'delete') return r('private_registry', 'model_shares', `remove${target}`, 'delete', 'grants-as-data'); + } + if (p === '/v2/org/{org_name}/models/{model_name}/versions' && verb === 'get') return r('private_registry', 'model_versions', 'list', 'select'); + if (p === '/v2/org/{org_name}/models/{model_name}/versions' && verb === 'post') return r('private_registry', 'model_versions', 'create', 'insert'); + if (p === '/v2/org/{org_name}/models/{model_name}/versions/{version_id}') { + if (verb === 'get') return r('private_registry', 'model_versions', 'get', 'select'); + if (verb === 'patch') return r('private_registry', 'model_versions', 'update', 'update'); + } + if (p === '/v2/org/{org_name}/models/{model_name}/versions/{version_id}/files') return r('private_registry', 'model_files', 'list', 'select'); + if (p === '/v2/org/{org_name}/models/{artifact_name}/versions/{version_id}/stash') return r('private_registry', 'model_versions', 'stash', 'exec', 'action on a version'); + + for (const [seg, resBase] of [['recipes', 'recipe'], ['resources', 'resource']]) { + const base = `/v2/org/{org_name}/${seg}`; + if (p === base && verb === 'get') return r('private_registry', `${resBase}s`, 'list', 'select'); + if (p === base && verb === 'post') return r('private_registry', `${resBase}s`, 'create', 'insert'); + if (p === `${base}/{recipe_name}`) { + if (verb === 'get') return r('private_registry', `${resBase}s`, 'get', 'select'); + if (verb === 'patch') return r('private_registry', `${resBase}s`, 'update', 'update'); + if (verb === 'delete') return r('private_registry', `${resBase}s`, 'delete', 'delete', 'injected from SDK evidence (clean_specs inject-sdk-operations)'); + } + if (p === `${base}/{recipe_name}/versions` && verb === 'get') return r('private_registry', `${resBase}_versions`, 'list', 'select'); + if (p === `${base}/{recipe_name}/versions` && verb === 'post') return r('private_registry', `${resBase}_versions`, 'create', 'insert'); + if (p === `${base}/{recipe_name}/versions/{version_id}`) { + if (verb === 'get') return r('private_registry', `${resBase}_versions`, 'get', 'select'); + if (verb === 'patch') return r('private_registry', `${resBase}_versions`, 'update', 'update'); + } + if (p === `${base}/{recipe_name}/versions/{version_id}/files`) return r('private_registry', `${resBase}_files`, 'list', 'select'); + } + + if (p === '/v2/org/{org_name}/helm-charts/{artifact_name}/versions') return r('private_registry', 'helm_chart_versions', 'list', 'select'); + if (p === '/v2/org/{org_name}/helm-charts/{artifact_name}/versions/{version_id}') { + if (verb === 'get') return r('private_registry', 'helm_chart_versions', 'get', 'select'); + if (verb === 'patch') return r('private_registry', 'helm_chart_versions', 'update', 'update'); + } + + if (p.includes('/repositories/{container_name}/tags/')) return r('private_registry', 'repository_associated_models', 'list_by_tag', 'select'); + if (p.includes('/repositories/{container_name}/associated-models')) return r('private_registry', 'repository_associated_models', 'list', 'select'); + + if (generic) { + if (p === '/v2/org/{org_name}/{artifact_type}' && verb === 'get') return r('private_registry', 'artifacts', 'list', 'select'); + if (p === '/v2/org/{org_name}/{artifact_type}' && verb === 'post') return r('private_registry', 'artifacts', 'create', 'insert'); + if (p === '/v2/org/{org_name}/{artifact_type}/{artifact_name}') { + if (verb === 'get') return r('private_registry', 'artifacts', 'get', 'select'); + if (verb === 'patch') return r('private_registry', 'artifacts', 'update', 'update'); + if (verb === 'put') return r('private_registry', 'artifacts', 'replace', 'replace', 'PUT with a PATCH twin - proposed replace, semantics unverified (keycloak rule)'); + if (verb === 'delete') return r('private_registry', 'artifacts', 'delete', 'delete'); + } + if (p.endsWith('/catalog/flags')) return r('private_registry', 'artifact_catalog_flags', 'get', 'select'); + if (p.endsWith('/{artifact_name}/collections')) return r('private_registry', 'artifact_collections', 'list', 'select'); + if (p.endsWith('/sync-release-type-labels')) return r('private_registry', 'artifacts', 'sync_release_type_labels', 'exec', 'action'); + if (p.endsWith('/deployments/params') && verb === 'get') return r('private_registry', 'artifact_deployment_params', 'list', 'select'); + if (p.includes('/deployments/{csp_name}/params')) { + if (verb === 'get') return r('private_registry', 'artifact_deployment_params', 'get', 'select'); + if (verb === 'post') return r('private_registry', 'artifact_deployment_params', 'create', 'insert'); + if (verb === 'patch') return r('private_registry', 'artifact_deployment_params', 'update', 'update'); + if (verb === 'delete') return r('private_registry', 'artifact_deployment_params', 'delete', 'delete'); + } + if (p.endsWith('/deployments/{csp_name}/parameters')) return { skip: 'duplicate-endpoint-family (same operation as /deployments/{csp_name}/params)' }; + if (p.endsWith('/license/acceptance')) { + // the GET answers with the requestStatus envelope only (the vendor's + // own response schema) - nothing to project + if (verb === 'get') return { skip: 'non-projectable-response (requestStatus-only envelope)' }; + if (verb === 'post') return r('private_registry', 'license_acceptances', 'create', 'insert'); + } + if (p.endsWith('/release-type')) return r('private_registry', 'artifacts', 'set_release_type', 'exec', 'single-field action endpoint'); + if (p.endsWith('/terms-of-service')) return r('private_registry', 'artifacts', 'set_terms_of_service', 'exec', 'single-field action endpoint'); + if (p.endsWith('/share/product')) { + // own resource: same path-param signature as artifact_shares + if (verb === 'put') return r('private_registry', 'artifact_product_shares', 'add', 'insert', 'grants-as-data'); + if (verb === 'delete') return r('private_registry', 'artifact_product_shares', 'remove', 'delete'); + } + if (p.endsWith('/share')) { + if (verb === 'put') return r('private_registry', 'artifact_shares', 'add', 'insert', 'grants-as-data'); + if (verb === 'delete') return r('private_registry', 'artifact_shares', 'remove', 'delete'); + } + if (/\/versions\/\{version_id\}$/.test(p) && verb === 'delete') return r('private_registry', 'artifact_versions', 'delete', 'delete'); + if (p.endsWith('/versions/{version_id}/configs')) return r('private_registry', 'artifact_version_configs', 'update', 'update'); + if (p.includes('/versions/{version_id}/deployments/')) return r('private_registry', 'artifact_deployments', 'create', 'insert', 'launches a CSP deployment'); + if (/\/versions\/\{version_id\}\/files$/.test(p)) return r('private_registry', 'artifact_files', 'list', 'select'); + if (p.endsWith('/versions/{version_id}/signature') && verb === 'get') return { skip: 'non-json-response (signature bytes / redirect)' }; + if (p.endsWith('/versions/{version_id}/signature') && verb === 'put') return r('private_registry', 'artifact_signatures', 'set', 'exec', 'write of a computed signature - action'); + if (p.endsWith('/malware-scan')) return r('private_registry', 'artifacts', 'malware_scan', 'exec', 'action'); + if (p.endsWith('/purge')) return r('private_registry', 'artifacts', 'purge', 'exec', 'kept off DELETE: same path-param signature as artifacts.delete'); + if (/\{artifact_type\}\/\{artifact_name\}\/spec$/.test(p)) { + if (verb === 'get') return r('private_registry', 'artifact_specs', 'get', 'select'); + if (verb === 'put') return r('private_registry', 'artifact_specs', 'update', 'update', 'PUT semantics unverified'); + if (verb === 'delete') return r('private_registry', 'artifact_specs', 'delete', 'delete'); + } + if (/\{artifact_type\}\/spec$/.test(p) && verb === 'post') return r('private_registry', 'artifact_specs', 'create', 'insert'); + if (p.endsWith('/files') && verb === 'post') return { skip: 'data-plane-file-transfer (checksum existence check for uploads)' }; + } + + // generic {type} file listings (duplicates of the /versions/{version_id}/files listings) + if (/^\/v2\/org\/\{org\}\/\{type\}\/\{name\}\/\{version\}\/files$/.test(p)) return { skip: 'duplicate-endpoint-family (same listing as /versions/{version_id}/files)' }; + if (/^\/v2\/\{type\}\/org\/\{org\}\/\{name\}\/\{version\}\/files$/.test(p)) return { skip: 'duplicate-endpoint-family (typed/guest file listing twins)' }; + + return { error: `unclassified registry operation: ${verb} ${p}` }; +} + +function classifyModels(p, verb, op) { + if (op.deprecated) return { skip: 'deprecated-inline' }; + const { stripped, team } = stripTeamScope(p); + const c = classifyModelsCore(stripped, verb, op); + if (!team || c.error || c.skip) return c; + return { ...c, method: `${c.method}_by_team`, note: `${c.note ? c.note + '; ' : ''}team-scoped twin of ${stripped} (Private Registry team scoping is exempt from the 2026-09-30 schedule)` }; +} + +function r(service, resource, method, sqlVerb, note = '') { + return { service, resource, method, sqlVerb, note }; +} + +// --------------------------------------------------------------------------- +// org-scope rebase +// --------------------------------------------------------------------------- + +function rebase(p, host) { + for (const { re, template } of ORG_PREFIXES) { + const m = p.match(re); + if (m) { + return { orgPrefix: template, rebasedPath: p.slice(m[0].length), serverUrl: host + template, orgParam: m[1] }; + } + } + return { orgPrefix: '', rebasedPath: p, serverUrl: host, orgParam: '' }; +} + +// --------------------------------------------------------------------------- +// main +// --------------------------------------------------------------------------- + +const rows = []; +const errors = []; +const stats = { bySource: {}, byService: {}, byVerb: {}, skips: {}, teamTwins: 0, scheduled: 0, publicReads: 0, rebased: 0 }; + +for (const [file, source] of Object.entries(SOURCES)) { + const abs = path.join(cleanedDir, file); + if (!fs.existsSync(abs)) { + console.error(`Error: ${abs} not found - run fetch-specs + clean-specs first`); + process.exit(1); + } + const spec = JSON.parse(fs.readFileSync(abs, 'utf8')); + + for (const [pathKey, pathItem] of Object.entries(spec.paths || {})) { + for (const verb of [...HTTP_VERBS, ...NON_GENERATOR_VERBS]) { + const op = pathItem[verb]; + if (!op) continue; + + let c; + const scheduled = SCHEDULED_DEPRECATIONS.some((re) => re.test(pathKey)); + if (NON_GENERATOR_VERBS.includes(verb)) c = { skip: 'non-generator-http-verb' }; + else if (scheduled) c = { skip: 'deprecated-schedule-2026-09-30 (NGC deprecated API reference: team-scoped paths for NVCF and sibling services end 2026-09-30)' }; + else if (file === 'nvcf_openapi.json') c = classifyNvcf(pathKey, verb, op); + else if (file === 'ngc_kas.json') c = classifyKas(pathKey, verb, op); + else c = classifyModels(pathKey, verb, op); + + if (c.error) { errors.push(c.error); continue; } + + const host = c.host || NGC_HOST; + const shapeInfo = responseShape(spec, op); + const { shape, envelopeOnly } = shapeInfo; + const objectKey = c.skip ? '' : objectKeyFor(c.resource, c.method, shapeInfo); + const orgScoped = /\{org(_name)?\}/.test(pathKey) ? 'y' : 'n'; + const teamScoped = (stripTeamScope(pathKey).team || /\/teams?\/\{team(_name)?\}/.test(pathKey)) ? 'y' : 'n'; + const observed = OBSERVED_PUBLIC_READS.get(`${file}::${pathKey}::${verb}`) || ''; + const mapped = !c.skip; + const rb = mapped ? rebase(pathKey, host) : { orgPrefix: '', rebasedPath: pathKey, serverUrl: host }; + + if (mapped && c.sqlVerb === 'select' && (shape === 'none' || envelopeOnly)) { + errors.push(`select method ${c.service}.${c.resource}.${c.method} (${verb} ${pathKey}) has no projectable response schema (${shape}) - extend the response rules in clean_specs.mjs`); + } + + const row = { + source, file, host, verb, path: pathKey, + operation_id: op.operationId || '', + tags: (op.tags || []).join('|'), + org_scoped: orgScoped, + team_scoped: teamScoped, + deprecated: op.deprecated ? 'y' : (scheduled ? 'y (schedule 2026-09-30)' : 'n'), + auth_declared: authDeclared(spec, op), + observed_public_read: observed, + pagination_params: paginationParams(spec, op, pathItem), + native_casing: nativeCasing(spec, op, pathItem), + has_request_body: op.requestBody ? 'y' : 'n', + response_shape: shape, + object_key_candidate: objectKey, + invocation_form: c.invocationForm || '', + org_prefix: rb.orgPrefix, + rebased_path: rb.rebasedPath, + server_url: rb.serverUrl, + service: mapped ? c.service : '', + resource: mapped ? c.resource : '', + method: mapped ? c.method : '', + sql_verb: mapped ? c.sqlVerb : '', + skip_reason: c.skip || '', + notes: c.note || '' + }; + rows.push(row); + + stats.bySource[source] = (stats.bySource[source] || 0) + 1; + if (c.skip) { + const key = c.skip.split(' ')[0]; + stats.skips[key] = (stats.skips[key] || 0) + 1; + if (scheduled) stats.scheduled++; + } else { + stats.byService[c.service] = (stats.byService[c.service] || 0) + 1; + stats.byVerb[c.sqlVerb] = (stats.byVerb[c.sqlVerb] || 0) + 1; + if (c.method.endsWith('_by_team') || c.resource.startsWith('team_')) stats.teamTwins++; + if (rb.orgPrefix) stats.rebased++; + } + if (observed === 'y') stats.publicReads++; + } + } +} + +if (errors.length > 0) { + console.error(`Inventory FAILED with ${errors.length} error(s) - nothing written:`); + for (const e of errors) console.error(` ${e}`); + process.exit(1); +} + +// method uniqueness per (service, resource); rebased-path uniqueness per +// (service, rebased_path, verb); one host per service +const seen = new Map(); +const seenPath = new Map(); +const hostsByService = new Map(); +for (const row of rows) { + if (!row.service) continue; + const key = `${row.service}.${row.resource}.${row.method}`; + if (seen.has(key)) errors.push(`duplicate method ${key}: ${seen.get(key)} and ${row.verb} ${row.path}`); + seen.set(key, `${row.verb} ${row.path}`); + const pKey = `${row.service}::${row.rebased_path}::${row.verb}`; + if (seenPath.has(pKey)) errors.push(`rebase collision in ${row.service}: ${seenPath.get(pKey)} and ${row.path} both become ${row.verb} ${row.rebased_path}`); + seenPath.set(pKey, row.path); + if (!hostsByService.has(row.service)) hostsByService.set(row.service, new Set()); + hostsByService.get(row.service).add(row.host); +} +for (const [service, hosts] of hostsByService) { + if (hosts.size > 1) errors.push(`service ${service} spans hosts ${[...hosts].join(', ')} - one host per service is required`); +} +if (errors.length > 0) { + console.error(`Inventory FAILED with ${errors.length} consistency error(s) - nothing written:`); + for (const e of errors) console.error(` ${e}`); + process.exit(1); +} + +const header = Object.keys(rows[0]); +const csvField = (v) => (/[",\n\r]/.test(v) ? `"${String(v).replace(/"/g, '""')}"` : String(v)); +const csv = [header.join(','), ...rows.map((row) => header.map((h) => csvField(row[h] ?? '')).join(','))].join('\n') + '\n'; +fs.writeFileSync(outPath, csv); + +console.log(`Wrote ${rows.length} operations to ${outPath}`); +console.log('By source:', JSON.stringify(stats.bySource)); +console.log('Mapped by service:', JSON.stringify(stats.byService, null, 2)); +console.log('Mapped by SQL verb:', JSON.stringify(stats.byVerb)); +console.log('Skips by reason:', JSON.stringify(stats.skips, null, 2)); +console.log(`Team-scoped twins mapped (Private Registry, exempt from the schedule): ${stats.teamTwins}`); +console.log(`Scheduled deprecations skipped (2026-09-30 families): ${stats.scheduled}`); +console.log(`Org-scoped operations rebased onto the ${ORG_VAR} server template: ${stats.rebased}`); +console.log(`Wire-proven public reads: ${stats.publicReads}`); +console.log(`Total mapped: ${rows.filter((x) => x.service).length}, skipped: ${rows.filter((x) => x.skip_reason).length}`); diff --git a/provider-dev/scripts/check_deprecation_page.mjs b/provider-dev/scripts/check_deprecation_page.mjs new file mode 100644 index 0000000..edcd870 --- /dev/null +++ b/provider-dev/scripts/check_deprecation_page.mjs @@ -0,0 +1,52 @@ +#!/usr/bin/env node + +// Watch the NGC deprecated API reference (the build input behind the +// deprecated-schedule-2026-09-30 skip rule in build_inventory.mjs) for +// changes. Fetches the page, extracts the deprecated path patterns and +// dates it lists, and compares them with the snapshot in +// provider-dev/config/deprecation_schedule.json. Exit 1 (and print the +// diff) when the schedule moved; --update rewrites the snapshot. +// +// Usage: node provider-dev/scripts/check_deprecation_page.mjs [--update] + +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; + +const PAGE_URL = 'https://docs.nvidia.com/ngc/latest/ngc-deprecated-api.html'; +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..'); +const snapshotPath = path.join(repoRoot, 'provider-dev', 'config', 'deprecation_schedule.json'); +const update = process.argv.includes('--update'); + +const res = await fetch(PAGE_URL, { signal: AbortSignal.timeout(60000), headers: { 'User-Agent': 'stackql-provider-nvidia drift check' } }); +if (!res.ok) { + console.error(`Error: HTTP ${res.status} from ${PAGE_URL}`); + process.exit(2); +} +const html = await res.text(); +const text = html.replace(/<script[\s\S]*?<\/script>/g, ' ').replace(/<style[\s\S]*?<\/style>/g, ' ').replace(/<[^>]+>/g, ' ') + .replace(/'|'/g, "'").replace(/"/g, '"').replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\s+/g, ' '); + +const paths = [...new Set([...text.matchAll(/\/v\d\/[A-Za-z0-9_{}\-*/.]+/g)].map((m) => m[0].replace(/[.,;:)]+$/, '')))].sort(); +const dates = [...new Set([...text.matchAll(/\b(January|February|March|April|May|June|July|August|September|October|November|December) \d{1,2}, \d{4}\b/g)].map((m) => m[0]))].sort(); +const current = { url: PAGE_URL, paths, dates }; + +if (update || !fs.existsSync(snapshotPath)) { + fs.writeFileSync(snapshotPath, JSON.stringify({ ...current, captured: new Date().toISOString().slice(0, 10) }, null, 2) + '\n'); + console.log(`${update ? 'Updated' : 'Created'} ${snapshotPath}: ${paths.length} path patterns, dates ${dates.join(', ')}`); + process.exit(0); +} + +const snapshot = JSON.parse(fs.readFileSync(snapshotPath, 'utf8')); +const added = paths.filter((p) => !snapshot.paths.includes(p)); +const removed = snapshot.paths.filter((p) => !paths.includes(p)); +const dateChange = JSON.stringify(dates) !== JSON.stringify(snapshot.dates); +if (added.length || removed.length || dateChange) { + console.log(`Deprecation schedule CHANGED since ${snapshot.captured}:`); + for (const p of added) console.log(` + ${p}`); + for (const p of removed) console.log(` - ${p}`); + if (dateChange) console.log(` dates: ${snapshot.dates.join(', ')} -> ${dates.join(', ')}`); + console.log('Review build_inventory.mjs SCHEDULED_DEPRECATIONS, then run with --update to accept the new snapshot.'); + process.exit(1); +} +console.log(`Deprecation schedule unchanged since ${snapshot.captured}: ${paths.length} path patterns, dates ${dates.join(', ')}`); diff --git a/provider-dev/scripts/clean_specs.mjs b/provider-dev/scripts/clean_specs.mjs new file mode 100644 index 0000000..89ec436 --- /dev/null +++ b/provider-dev/scripts/clean_specs.mjs @@ -0,0 +1,521 @@ +#!/usr/bin/env node + +// Normalize and validate every downloaded spec, writing cleaned copies to +// provider-dev/downloaded/cleaned/ and a full fix report to +// provider-dev/config/clean_report.json. +// +// All repairs are deterministic rules keyed by source file - never hand +// edits. Validation is @apidevtools/swagger-parser; if any spec still fails +// validation after the rules run, the script reports every error and exits +// without writing anything. +// +// Rules (in order): +// stamp-missing-version-field info.version absent -> 0.0.0 +// repair-relative-server relative/absent servers -> the public gateway +// gateway-v2-path-prefix ngc_models: /v1/... -> /v2/... on api.ngc.nvidia.com +// (the public gateway serves the models +// definition under /v2 - NOTES.md item 5) +// snake-case-path-params every {path-param} / {pathParam} token and +// its parameter name -> snake_case, in every +// source (the provider's user surface is +// snake_case; provider-utils split converts +// only the first hyphen per token) +// repair-path-param-names ngc_kas declares some path parameters with +// a prose `name` ("user id or b64encoded +// email") that does not match the template +// token ({id}); rename to the token +// drop-prose-query-params ngc_kas declares query parameters whose +// names are sentences ("Filter using org +// name"); the wire names are unknown, so they +// are dropped rather than exposed as +// unusable columns +// +// Usage: node provider-dev/scripts/clean_specs.mjs + +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import SwaggerParser from '@apidevtools/swagger-parser'; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..'); +const downloadDir = path.join(repoRoot, 'provider-dev', 'downloaded'); +const cleanedDir = path.join(downloadDir, 'cleaned'); +const manifestPath = path.join(downloadDir, 'download_manifest.json'); +const reportPath = path.join(repoRoot, 'provider-dev', 'config', 'clean_report.json'); + +if (!fs.existsSync(manifestPath)) { + console.error(`Error: ${manifestPath} not found - run fetch-specs first`); + process.exit(1); +} +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); + +const HTTP_VERBS = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']; + +// server assignment for definitions that declare no absolute server; the +// value is the public gateway the definition is served from +const SERVER_BY_SOURCE = { + 'ngc_kas.json': 'https://api.ngc.nvidia.com' +}; + +// the public gateway host + path prefix rewrite for definitions harvested +// from an internal host (NOTES.md item 5: models.ngc.nvidia.com/v1/... is +// served publicly as api.ngc.nvidia.com/v2/...) +const GATEWAY_REWRITE = { + 'ngc_models.json': { server: 'https://api.ngc.nvidia.com', from: '/v1/', to: '/v2/' } +}; + +export function snakeCase(name) { + return String(name) + .replace(/([a-z0-9])([A-Z][a-z]+)/g, '$1_$2') + .replace(/([a-z0-9])([A-Z])/g, '$1_$2') + .toLowerCase() + .replace(/[-. ]+/g, '_'); +} + +const pathTokens = (p) => (p.match(/\{[^}]+\}/g) || []).map((s) => s.slice(1, -1)); + +function forEachOperation(spec, fn) { + for (const [pathKey, pathItem] of Object.entries(spec.paths || {})) { + for (const verb of HTTP_VERBS) { + if (pathItem[verb]) fn(pathKey, pathItem, verb, pathItem[verb]); + } + } +} + +// --------------------------------------------------------------------------- +// Response injection for the models definition (rule inject-sdk-responses). +// The harvested definition declares no 2xx response on most operations; the +// ngcsdk data classes (provider-dev/downloaded/ngc_sdk_schemas.json, from +// harvest_ngc_sdk_schemas.mjs) supply the response shapes. The class for an +// operation is decided by its operationId (suffixes InOrg / InTeam / +// AsGuest / FromAnotherOrg / _N stripped), per the table below - the same +// wrappers registry/api/*.py in the SDK applies to those endpoints. Any +// operation not in the table receives the bare `Response` envelope +// (requestStatus only); build_inventory.mjs rejects a SELECT method left +// on that envelope, so a new read endpoint must be added here deliberately. +// --------------------------------------------------------------------------- + +const SDK_SCHEMAS_PATH = path.join(downloadDir, 'ngc_sdk_schemas.json'); +const SDK_RESPONSE_FILE = 'ngc_models.json'; + +const SDK_RESPONSE_CLASSES = { + // models + listModels: 'ModelListResponse', listPublicModels: 'ModelListResponse', + listModelVersions: 'ModelVersionListResponse', listModelVersionsAssociatedByContainer: 'ModelVersionListResponse', + listModelVersionsAssociatedByContainerTag: 'ModelVersionListResponse', + listModeFiles: 'ModelVersionFileListResponse', listModelFiles: 'ModelVersionFileListResponse', + getModel: 'ModelResponse', createModel: 'ModelCreateResponse', updateModel: 'ModelResponse', + getModelVersion: 'ModelVersionResponse', createModelVersion: 'ModelVersionCreateResponse', updateModelVersion: 'ModelVersionResponse', + // recipes and resources (the resources family reuses the recipe wrappers in the SDK) + listRecipes: 'RecipeListResponse', listPublicRecipes: 'RecipeListResponse', + getRecipe: 'RecipeResponse', createRecipe: 'RecipeResponse', updateRecipe: 'RecipeResponse', + listRecipeVersions: 'RecipeVersionListResponse', + getRecipeVersion: 'RecipeVersionResponse', createRecipeVersion: 'RecipeVersionResponse', updateRecipeVersion: 'RecipeVersionResponse', + listRecipeFiles: 'RecipeVersionFileListResponse', + // generic artifacts (containers, helm charts, ... by {artifact_type}) + listArtifacts: 'ArtifactListResponse', listPublicArtifacts: 'ArtifactListResponse', listCollectionArtifacts: 'ArtifactListResponse', + getArtifact: 'ArtifactResponse', getChart: 'ArtifactResponse', createArtifact: 'ArtifactResponse', updateArtifact: 'ArtifactResponse', replaceArtifact: 'ArtifactResponse', + listArtifactFiles: 'ArtifactVersionFileListResponse', + listHelmChartVersions: 'ArtifactVersionListResponse', getHelmChartVersion: 'ArtifactVersionResponse', updateHelmChartVersion: 'ArtifactVersionResponse', + getPublicFlags: 'ArtifactCatalogFlags', + getOrgArtifactLicenseAcceptance: 'ConfiguredLicenseTerms', + // collections + listCollections: 'CollectionListResponse', listPublicCollections: 'CollectionListResponse', listArtifactCollections: 'CollectionListResponse', + getCollection: 'CollectionResponse', createCollection: 'CollectionResponse', updateCollection: 'CollectionResponse', patchCollection: 'CollectionResponse', + // cloud service providers and deployment parameters + listCloudServiceProviders: 'CloudServiceProviderListResponse', + getCloudServiceProviderDetails: 'CloudServiceProvider', createCloudServiceProvider: 'CloudServiceProvider', updateCloudServiceProvider: 'CloudServiceProvider', + getCloudServiceProviderDeploymentParametersDetails: 'DeploymentParametersListResponse', + createCloudServiceProviderDeploymentParameters: 'DeploymentParametersListResponse', updateCloudServiceProviderDeploymentParameters: 'DeploymentParametersListResponse', + getCloudServiceProviderDeploymentParametersMetaDetails: 'DeploymentParametersMetaListResponse', + createCloudServiceProviderDeploymentParametersMeta: 'DeploymentParametersMetaListResponse', updateCloudServiceProviderDeploymentParametersMeta: 'DeploymentParametersMetaListResponse', + listArtifactDeploymentParameters: 'DeploymentParametersListResponse', listPublicArtifactDeploymentParameters: 'DeploymentParametersListResponse', + getArtifactDeploymentParameters: 'DeploymentParametersListResponse', getPublicArtifactDeploymentParameters: 'DeploymentParametersListResponse', + createArtifactDeploymentParameters: 'DeploymentParametersListResponse', updateArtifactDeploymentParameters: 'DeploymentParametersListResponse', + createArtifactDeploymentUrl: 'DeploymentUrlResponse', createPublicArtifactDeploymentUrl: 'DeploymentUrlResponse', + // GPU catalog (the collection read is a bare array, wire-proven 2026-07-14) + getGpus: '[]GpuByPciResponse', + getGpuByPciDeviceId: 'GpuByPciResponse', getGpuByPciDeviceIdVendorId: 'GpuByPciResponse', getGpuByPciDeviceIdVendorIdSubsystemDeviceId: 'GpuByPciResponse', + createGpuByPciDeviceId: 'GpuByPciResponse', createGpuByPciFullKey: 'GpuByPciResponse', updateGpuByPciDeviceId: 'GpuByPciResponse', updateGpuByPciFullKey: 'GpuByPciResponse', + // encryption keys and workflows + listKeys: 'KeyListResponse', listArtifactsForKey: 'KeyArtifactListResponse', + getWorkflowStatus: 'WorkflowStatusResponse', + // health + status: 'HealthResponse', statusDetails: 'HealthResponse' +}; + +// Operations the definition omits but the SDK's API layer proves +// (registry/api/models.py remove_model and resources.py remove issue DELETE +// on the entity path the definition only declares GET/PATCH for). Each +// entry names the path (cleaned form), the sibling verb whose parameters +// are copied, and the operationId to inject; the response is the bare +// Response envelope. +const SDK_DOCUMENTED_OPERATIONS = [ + { path: '/v2/org/{org_name}/models/{model_name}', verb: 'delete', copyFrom: 'get', operationId: 'deleteModelInOrg', tags: ['Models'], summary: 'Delete model in org', description: 'This operation deletes a model in the org (SDK evidence: ngcsdk registry/api/models.py remove_model; not declared in the published definition).' }, + { path: '/v2/org/{org_name}/team/{team_name}/models/{model_name}', verb: 'delete', copyFrom: 'get', operationId: 'deleteModelInTeam', tags: ['Models'], summary: 'Delete model in org/team', description: 'This operation deletes a model in the org/team (SDK evidence: ngcsdk registry/api/models.py remove_model; not declared in the published definition).' }, + { path: '/v2/org/{org_name}/resources/{recipe_name}', verb: 'delete', copyFrom: 'get', operationId: 'deleteResourceInOrg', tags: ['Resources'], summary: 'Delete resource in org', description: 'This operation deletes a resource in the org (SDK evidence: ngcsdk registry/api/resources.py remove; not declared in the published definition).' }, + { path: '/v2/org/{org_name}/team/{team_name}/resources/{recipe_name}', verb: 'delete', copyFrom: 'get', operationId: 'deleteResourceInTeam', tags: ['Resources'], summary: 'Delete resource in org/team', description: 'This operation deletes a resource in the org/team (SDK evidence: ngcsdk registry/api/resources.py remove; not declared in the published definition).' } +]; + +function sdkResponseClass(operationId) { + const base = String(operationId || '').replace(/(InOrg|InTeam|ForTeam|AsGuest|FromAnotherOrg|_\d+)+$/, ''); + return SDK_RESPONSE_CLASSES[base] || 'Response'; +} + +// --------------------------------------------------------------------------- +// Repair rules. Each rule: { name, applies(file, spec), fix(spec, file) -> note }. +// A rule that applies must return a human-readable note of what it changed. +// --------------------------------------------------------------------------- + +const RULES = [ + { + name: 'stamp-missing-version-field', + applies: (file, spec) => !spec.info || !spec.info.version, + fix: (spec) => { + spec.info = spec.info || {}; + spec.info.version = '0.0.0'; + return 'info.version was absent (the explorer definition lacks a standard version field); stamped 0.0.0'; + } + }, + { + name: 'repair-relative-server', + applies: (file, spec) => { + const urls = (spec.servers || []).map((s) => s.url); + return urls.length === 0 || urls.every((u) => !/^https?:\/\//.test(u)); + }, + fix: (spec, file) => { + const host = SERVER_BY_SOURCE[file]; + if (!host) throw new Error(`no server repair mapping for ${file} - add one to SERVER_BY_SOURCE`); + const before = JSON.stringify(spec.servers || []); + spec.servers = [{ url: host }]; + return `servers ${before} is relative/absent; set to ${host} (the host the definition is served from)`; + } + }, + { + name: 'gateway-v2-path-prefix', + applies: (file) => !!GATEWAY_REWRITE[file], + fix: (spec, file) => { + const { server, from, to } = GATEWAY_REWRITE[file]; + const before = JSON.stringify(spec.servers || []); + const newPaths = {}; + let rewritten = 0; + for (const [pathKey, item] of Object.entries(spec.paths || {})) { + const newKey = pathKey.startsWith(from) ? to + pathKey.slice(from.length) : pathKey; + if (newKey !== pathKey) rewritten++; + if (newKey in newPaths) throw new Error(`gateway rewrite collision: ${pathKey} -> ${newKey}`); + newPaths[newKey] = item; + } + spec.paths = newPaths; + spec.servers = [{ url: server }]; + return `${rewritten} path(s) rewritten ${from} -> ${to}; servers ${before} -> ${server} (the public gateway serving the definition)`; + } + }, + { + name: 'snake-case-path-params', + applies: (file, spec) => Object.keys(spec.paths || {}).some((p) => pathTokens(p).some((t) => snakeCase(t) !== t)), + fix: (spec) => { + const newPaths = {}; + let keys = 0, params = 0; + const renameParams = (list) => { + for (const prm of list || []) { + if (prm && prm.in === 'path' && prm.name && snakeCase(prm.name) !== prm.name) { + prm.name = snakeCase(prm.name); + params++; + } + } + }; + for (const [pathKey, item] of Object.entries(spec.paths || {})) { + const newKey = pathKey.replace(/\{([^}]+)\}/g, (m, t) => `{${snakeCase(t)}}`); + if (newKey !== pathKey) keys++; + if (newKey in newPaths) throw new Error(`snake-case collision: ${pathKey} -> ${newKey}`); + newPaths[newKey] = item; + renameParams(item.parameters); + for (const verb of HTTP_VERBS) if (item[verb]) renameParams(item[verb].parameters); + } + spec.paths = newPaths; + for (const prm of Object.values(spec.components?.parameters || {})) renameParams([prm]); + return `${keys} path key(s) and ${params} path parameter name(s) converted to snake_case`; + } + }, + { + name: 'repair-path-param-names', + applies: (file, spec) => { + let found = false; + forEachOperation(spec, (pathKey, item, verb, op) => { + const tokens = pathTokens(pathKey); + for (const prm of [...(item.parameters || []), ...(op.parameters || [])]) { + if (prm && prm.in === 'path' && prm.name && !tokens.includes(prm.name)) found = true; + } + }); + return found; + }, + fix: (spec) => { + const notes = []; + let renamed = 0, dropped = 0; + const repair = (pathKey, owner) => { + const list = owner.parameters; + if (!list) return; + const tokens = pathTokens(pathKey); + const declared = list.filter((p) => p && p.in === 'path').map((p) => p.name); + const keep = []; + for (const prm of list) { + if (!prm || prm.in !== 'path' || tokens.includes(prm.name)) { keep.push(prm); continue; } + const unmatched = tokens.filter((t) => !declared.includes(t)); + if (unmatched.length === 0) { + // a stray path parameter with no template token at all + notes.push(`${pathKey}: "${prm.name}" dropped (no template token)`); + dropped++; + continue; + } + if (unmatched.length > 1) { + throw new Error(`cannot repair path parameter "${prm.name}" on ${pathKey}: ${unmatched.length} unmatched template tokens`); + } + notes.push(`${pathKey}: "${prm.name}" -> ${unmatched[0]}`); + declared.push(unmatched[0]); + prm.name = unmatched[0]; + renamed++; + keep.push(prm); + } + owner.parameters = keep; + }; + for (const [pathKey, item] of Object.entries(spec.paths || {})) { + repair(pathKey, item); + for (const verb of HTTP_VERBS) if (item[verb]) repair(pathKey, item[verb]); + } + const distinct = [...new Set(notes)]; + return `${renamed} path parameter name(s) renamed to their template token, ${dropped} stray path parameter(s) dropped (${distinct.slice(0, 4).join('; ')}${distinct.length > 4 ? `; +${distinct.length - 4} more` : ''})`; + } + }, + { + name: 'drop-cookie-params', + applies: (file, spec) => { + let found = false; + forEachOperation(spec, (pathKey, item, verb, op) => { + for (const prm of [...(item.parameters || []), ...(op.parameters || [])]) { + if (prm && prm.in === 'cookie') found = true; + } + }); + return found; + }, + fix: (spec) => { + const dropped = []; + const prune = (pathKey, owner) => { + if (!owner.parameters) return; + owner.parameters = owner.parameters.filter((prm) => { + const drop = prm && prm.in === 'cookie'; + if (drop) dropped.push(`${pathKey}: ${prm.name}`); + return !drop; + }); + }; + for (const [pathKey, item] of Object.entries(spec.paths || {})) { + prune(pathKey, item); + for (const verb of HTTP_VERBS) if (item[verb]) prune(pathKey, item[verb]); + } + return `${dropped.length} cookie parameter(s) dropped (any-sdk supports path, query, header and body parameters only): ${[...new Set(dropped)].slice(0, 6).join('; ')}${dropped.length > 6 ? '; ...' : ''}`; + } + }, + { + name: 'drop-prose-query-params', + applies: (file, spec) => { + let found = false; + forEachOperation(spec, (pathKey, item, verb, op) => { + for (const prm of [...(item.parameters || []), ...(op.parameters || [])]) { + if (prm && prm.in === 'query' && /\s/.test(prm.name || '')) found = true; + } + }); + return found; + }, + fix: (spec) => { + const dropped = []; + const prune = (pathKey, owner) => { + if (!owner.parameters) return; + owner.parameters = owner.parameters.filter((prm) => { + const drop = prm && prm.in === 'query' && /\s/.test(prm.name || ''); + if (drop) dropped.push(`${pathKey}: "${prm.name}"`); + return !drop; + }); + }; + for (const [pathKey, item] of Object.entries(spec.paths || {})) { + prune(pathKey, item); + for (const verb of HTTP_VERBS) if (item[verb]) prune(pathKey, item[verb]); + } + return `${dropped.length} query parameter(s) with prose names dropped (wire names unknown): ${[...new Set(dropped)].slice(0, 6).join('; ')}${dropped.length > 6 ? '; ...' : ''}`; + } + }, + { + name: 'inject-sdk-operations', + applies: (file) => file === SDK_RESPONSE_FILE, + fix: (spec) => { + const notes = []; + for (const entry of SDK_DOCUMENTED_OPERATIONS) { + const item = spec.paths[entry.path]; + if (!item) throw new Error(`SDK-documented operation path ${entry.path} is not in the definition (path cleaning must run first)`); + if (item[entry.verb]) { notes.push(`${entry.verb.toUpperCase()} ${entry.path} now declared upstream - rule entry can be retired`); continue; } + const sibling = item[entry.copyFrom]; + if (!sibling) throw new Error(`no ${entry.copyFrom} sibling on ${entry.path} to copy parameters from`); + item[entry.verb] = { + tags: entry.tags, + summary: entry.summary, + description: entry.description, + operationId: entry.operationId, + parameters: JSON.parse(JSON.stringify((sibling.parameters || []).filter((p) => p.in === 'path'))), + responses: { '200': { description: 'OK', content: { 'application/json': { schema: { $ref: '#/components/schemas/Response' } } } } }, + 'x-stackql-sdk-evidence': 'ngcsdk registry/api' + }; + notes.push(`${entry.verb.toUpperCase()} ${entry.path} (${entry.operationId})`); + } + return `${notes.filter((n) => !n.includes('retired')).length} SDK-documented operation(s) injected: ${notes.join('; ')}`; + } + }, + { + name: 'inject-sdk-responses', + applies: (file) => file === SDK_RESPONSE_FILE, + fix: (spec) => { + if (!fs.existsSync(SDK_SCHEMAS_PATH)) throw new Error(`${SDK_SCHEMAS_PATH} not found - run harvest_ngc_sdk_schemas.mjs first`); + const sdk = JSON.parse(fs.readFileSync(SDK_SCHEMAS_PATH, 'utf8')); + spec.components = spec.components || {}; + spec.components.schemas = spec.components.schemas || {}; + let added = 0; + for (const [name, schema] of Object.entries(sdk.schemas)) { + if (spec.components.schemas[name]) continue; // the definition's own schema wins + spec.components.schemas[name] = schema; + added++; + } + const counts = {}; + let injected = 0, generic = 0, untyped = 0; + // a 2xx whose schema resolves to nothing projectable (no properties, + // no items, not a scalar or array) is as good as absent + const resolve = (s) => { + let cur = s; + for (let i = 0; i < 10 && cur && cur.$ref; i++) cur = spec.components.schemas[cur.$ref.split('/').pop()]; + return cur; + }; + const projectable = (op) => { + const codes = Object.keys(op.responses || {}).filter((c) => c.startsWith('2')).sort(); + if (codes.length === 0) return false; + const content = op.responses[codes[0]].content || {}; + const media = content['application/json'] || Object.values(content)[0]; + if (!media) return codes.length > 0 && Object.keys(content).length > 0; // non-json content is left alone + const s = resolve(media.schema); + if (!s) return false; + if (s.properties || s.items || ['array', 'string', 'integer', 'number', 'boolean'].includes(s.type)) return true; + return false; + }; + forEachOperation(spec, (pathKey, item, verb, op) => { + if (!HTTP_VERBS.slice(0, 5).includes(verb)) return; + op.responses = op.responses || {}; + const had2xx = Object.keys(op.responses).some((c) => c.startsWith('2')); + if (had2xx && projectable(op)) return; + if (had2xx) { + untyped++; + for (const c of Object.keys(op.responses)) if (c.startsWith('2')) delete op.responses[c]; + } + let cls = sdkResponseClass(op.operationId); + let schema; + if (cls.startsWith('[]')) { + cls = cls.slice(2); + schema = { type: 'array', items: { $ref: `#/components/schemas/${cls}` } }; + } else { + schema = { $ref: `#/components/schemas/${cls}` }; + } + if (!spec.components.schemas[cls]) throw new Error(`response class ${cls} for ${op.operationId} is not in the definition or the SDK harvest`); + op.responses['200'] = { + description: `OK (response schema from the ngcsdk ${sdk.version} data class ${cls})`, + content: { 'application/json': { schema } } + }; + counts[cls] = (counts[cls] || 0) + 1; + injected++; + if (cls === 'Response') generic++; + }); + const top = Object.entries(counts).sort((a, b) => b[1] - a[1]).slice(0, 8).map(([k, v]) => `${k} x${v}`).join(', '); + return `${added} SDK data classes added to components.schemas (ngcsdk ${sdk.version}); 200 responses injected on ${injected} response-less operations (${untyped} of them declared an untyped 2xx; ${generic} on the bare Response envelope): ${top}`; + } + } +]; + +// --------------------------------------------------------------------------- +// Clean + validate every manifest file (in memory first; write only if all +// specs validate) +// --------------------------------------------------------------------------- + +const report = { generated: new Date().toISOString().slice(0, 10), sources: {} }; +const cleaned = new Map(); // file -> spec object +let hasErrors = false; + +for (const file of Object.keys(manifest.files || {}).sort()) { + const abs = path.join(downloadDir, file); + if (!fs.existsSync(abs)) { + console.error(`Error: manifest lists ${file} but it is not present`); + hasErrors = true; + continue; + } + const spec = JSON.parse(fs.readFileSync(abs, 'utf8')); + const fixes = []; + const notes = []; + + if (spec.info?.version && /SNAPSHOT/i.test(spec.info.version)) { + notes.push(`info.version is a placeholder (${spec.info.version}); left as-is`); + } + + for (const rule of RULES) { + if (rule.applies(file, spec)) { + fixes.push({ rule: rule.name, note: rule.fix(spec, file) }); + } + } + + // validate a deep copy - swagger-parser dereferences in place + const validationErrors = []; + try { + await SwaggerParser.validate(structuredClone(spec)); + } catch (e) { + validationErrors.push(e.message); + } + + report.sources[file] = { + openapi: spec.openapi || spec.swagger, + title: spec.info?.title ?? null, + version: spec.info?.version ?? null, + servers: (spec.servers || []).map((s) => s.url), + paths: Object.keys(spec.paths || {}).length, + fixes, + notes, + validation: validationErrors.length === 0 ? 'clean' : validationErrors + }; + + if (validationErrors.length > 0) { + console.error(`${file}: FAILS validation after repairs:`); + for (const err of validationErrors) console.error(` ${err.split('\n').slice(0, 8).join('\n ')}`); + hasErrors = true; + } else { + console.log(`${file}: valid (${fixes.length} fix(es), ${notes.length} note(s))`); + for (const f of fixes) console.log(` - ${f.rule}: ${f.note}`); + cleaned.set(file, spec); + } +} + +if (hasErrors) { + console.error('Clean FAILED - nothing written. Add deterministic repair rules for the errors above.'); + process.exit(1); +} + +fs.mkdirSync(cleanedDir, { recursive: true }); +fs.mkdirSync(path.dirname(reportPath), { recursive: true }); +for (const [file, spec] of cleaned) { + fs.writeFileSync(path.join(cleanedDir, file), JSON.stringify(spec, null, 2) + '\n'); +} +// Keep the committed report byte-identical when nothing but the run date +// would change: `generated` records the last run that changed the findings, +// so a rebuild on a later day does not trip CI's generation-drift check. +if (fs.existsSync(reportPath)) { + try { + const previous = JSON.parse(fs.readFileSync(reportPath, 'utf8')); + if (previous.generated && JSON.stringify(previous.sources) === JSON.stringify(report.sources)) { + report.generated = previous.generated; + } + } catch { + // unreadable previous report: write the fresh one + } +} +fs.writeFileSync(reportPath, JSON.stringify(report, null, 2) + '\n'); +console.log(`Cleaned ${cleaned.size} spec(s) -> ${cleanedDir}`); +console.log(`Fix report -> ${reportPath}`); diff --git a/provider-dev/scripts/fetch_nvcf_spec.mjs b/provider-dev/scripts/fetch_nvcf_spec.mjs new file mode 100644 index 0000000..cbea0a9 --- /dev/null +++ b/provider-dev/scripts/fetch_nvcf_spec.mjs @@ -0,0 +1,66 @@ +#!/usr/bin/env node + +// Download the published NVCF OpenAPI spec into provider-dev/downloaded/ and +// record the source in download_manifest.json. Fails without writing if the +// payload is not an OpenAPI document. +// +// Canonical source: linked as "OpenAPI Spec" from the NVCF API documentation +// (https://docs.nvidia.com/nvcf/api), served by the NVCF API itself. +// +// Usage: node provider-dev/scripts/fetch_nvcf_spec.mjs + +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import { canonicalJson } from './lib/canonical.mjs'; + +const NVCF_SPEC_URL = 'https://api.nvcf.nvidia.com/v3/openapi'; +const DOCS_PAGE = 'https://docs.nvidia.com/nvcf/api'; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..'); +const downloadDir = path.join(repoRoot, 'provider-dev', 'downloaded'); +const manifestPath = path.join(downloadDir, 'download_manifest.json'); +const outFile = 'nvcf_openapi.json'; + +console.log(`Fetching NVCF OpenAPI spec: ${NVCF_SPEC_URL}`); +const res = await fetch(NVCF_SPEC_URL, { signal: AbortSignal.timeout(60000) }); +if (!res.ok) { + console.error(`Error: HTTP ${res.status} from ${NVCF_SPEC_URL} - nothing written`); + process.exit(1); +} +const text = await res.text(); + +let spec; +try { + spec = JSON.parse(text); +} catch { + console.error('Error: NVCF payload is not JSON - nothing written'); + process.exit(1); +} +if (!spec.openapi || !spec.paths || !spec.info) { + console.error('Error: NVCF payload is not an OpenAPI document - nothing written'); + process.exit(1); +} + +fs.mkdirSync(downloadDir, { recursive: true }); +// written as canonical JSON (sorted keys) so identical content pins identically +fs.writeFileSync(path.join(downloadDir, outFile), canonicalJson(spec)); + +const manifest = fs.existsSync(manifestPath) + ? JSON.parse(fs.readFileSync(manifestPath, 'utf8')) + : { files: {} }; +manifest.files = manifest.files || {}; +manifest.files[outFile] = { + url: NVCF_SPEC_URL, + info: { + docsPage: DOCS_PAGE, + openapi: spec.openapi, + title: spec.info.title, + specVersion: spec.info.version + } +}; +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) + '\n'); + +const ops = Object.values(spec.paths).reduce( + (n, p) => n + ['get', 'post', 'put', 'patch', 'delete', 'head', 'options'].filter((v) => p[v]).length, 0); +console.log(`Wrote ${outFile}: openapi=${spec.openapi} title="${spec.info.title}" version=${spec.info.version} paths=${Object.keys(spec.paths).length} ops=${ops}`); diff --git a/provider-dev/scripts/graphql_merge.mjs b/provider-dev/scripts/graphql_merge.mjs new file mode 100644 index 0000000..83ef3bd --- /dev/null +++ b/provider-dev/scripts/graphql_merge.mjs @@ -0,0 +1,262 @@ +#!/usr/bin/env node + +// Merges hand-authored GraphQL operations (provider-dev/source-graphql/) into +// the GENERATED provider under provider-dev/openapi/src/<provider>/<version>/. +// Runs as the last step of `make generate`; idempotent (previous shims are +// stripped before re-adding, keyed on the `x-stackql-protocol: graphql` +// marker). A no-op when the manifest lists no ops. +// +// For each op fragment this writes: +// paths./graphql?resource=<resource>.post +// an operation carrying x-stackQL-graphQL (url, httpVerb, query +// template, responseSelection, cursor) plus the declared parameters +// and a response schema built from `selection` + `rowSchema` (so +// DESCRIBE and the docs Fields table show the row columns) +// components.x-stackQL-resources.<resource> +// a select-only resource whose `list` method refs the operation; +// objectKey is the dotted form of `selection` +// +// Why the odd path key: stackql builds the request URL from `servers` + the +// path key (x-stackQL-graphQL.url is informational), and OpenAPI needs a +// unique path+verb per operation. Every GraphQL query is a POST to one +// endpoint, so each op gets `/graphql?resource=<name>`; the GraphQL reader +// strips the query string before the request goes on the wire. +// +// Services named in manifest.services that do not exist yet are created +// from scratch (and registered in provider.yaml); REST services are edited +// in place. See the skill's graphql-merge.md for the fragment format. +// +// Usage: node provider-dev/scripts/graphql_merge.mjs [--provider-dir DIR] [--source-dir DIR] [--verbose] + +import { readFileSync, writeFileSync, existsSync, readdirSync } from 'fs'; +import { resolve, join } from 'path'; +import yaml from 'js-yaml'; +import { PROVIDER_NAME, PROVIDER_DIR, REPO_ROOT } from './lib/spec_helpers.mjs'; + +function getArg(flag, fallback) { + const i = process.argv.indexOf(flag); + return i === -1 ? fallback : (process.argv[i + 1] ?? fallback); +} +const providerDir = resolve(getArg('--provider-dir', PROVIDER_DIR)); +const sourceDir = resolve(getArg('--source-dir', join(REPO_ROOT, 'provider-dev', 'source-graphql'))); +const verbose = process.argv.includes('--verbose'); + +const PROTOCOL_MARKER = 'x-stackql-protocol'; +const VERSION = providerDir.split(/[\\/]/).pop(); + +const loadYaml = (p) => yaml.load(readFileSync(p, 'utf8')); +const dumpYaml = (doc) => yaml.dump(doc, { lineWidth: -1, noRefs: true, quotingType: "'" }); + +const manifestPath = join(sourceDir, 'manifest.yaml'); +if (!existsSync(manifestPath)) { + console.log('graphql_merge: no manifest.yaml - nothing to merge'); + process.exit(0); +} +const manifest = loadYaml(manifestPath) || {}; +if (!Array.isArray(manifest.ops) || manifest.ops.length === 0) { + console.log('graphql_merge: manifest lists no ops - nothing to merge'); + process.exit(0); +} +const graphqlUrl = manifest.graphql_url; +if (!graphqlUrl) throw new Error('manifest.yaml: graphql_url is required'); +if (!existsSync(join(providerDir, 'provider.yaml'))) throw new Error(`${providerDir}/provider.yaml not found - run generate first`); + +// --- helpers --------------------------------------------------------------- + +// '$.data.repository.discussions.nodes' -> ['data','repository','discussions','nodes'] +function selectionSegments(selection) { + if (!selection.startsWith('$.')) throw new Error(`selection must start with '$.': ${selection}`); + const segs = selection.slice(2).split('.'); + if (segs.some((s) => !s || /[\[\]]/.test(s))) { + throw new Error(`selection must be a plain dotted path without [*] (it is appended automatically): ${selection}`); + } + return segs; +} + +// Nested response schema for a selection path: every segment is an object +// property, the last one is the row array; a page_info cursor adds a +// pageInfo sibling next to the row array. +function buildResponseSchema(selection, rowSchema, cursor) { + const segs = selectionSegments(selection); + const leafName = segs[segs.length - 1]; + const connection = { type: 'object', properties: { [leafName]: { type: 'array', items: rowSchema } } }; + if (cursor && cursor.strategy === 'page_info') { + connection.properties.pageInfo = { type: 'object', properties: { endCursor: { type: 'string' }, hasNextPage: { type: 'boolean' } } }; + } + let schema = connection; + for (let i = segs.length - 2; i >= 0; i--) schema = { type: 'object', properties: { [segs[i]]: schema } }; + return schema; +} + +function buildCursor(op) { + if (!op.cursor) { + // Single page: any-sdk's default cursor_after strategy treats a failed + // jsonpath lookup as EOF, so point it at a key that never exists. + return { jsonPath: '$.data.__no_cursor' }; + } + const c = { ...op.cursor }; + if (c.strategy === 'page_info' && !c.terminateOnJsonPath) throw new Error(`${op.resource}: page_info cursor requires terminateOnJsonPath`); + if (c.strategy === 'keyset' && !c.format) throw new Error(`${op.resource}: keyset cursor requires format`); + if (!c.jsonPath && c.strategy !== 'offset') throw new Error(`${op.resource}: cursor.jsonPath is required for strategy ${c.strategy || 'cursor_after'}`); + return c; +} + +function buildOperation(op) { + const operation = { + operationId: `graphql/${op.service}/${op.resource}/list`, + summary: op.title, + description: op.description, + 'x-stackQL-graphQL': { + url: graphqlUrl, + httpVerb: 'POST', + responseSelection: { jsonPath: `${op.selection}[*]` }, + cursor: buildCursor(op), + query: op.query + }, + [PROTOCOL_MARKER]: 'graphql', + parameters: op.parameters ?? [], + responses: { + 200: { + description: 'Response', + content: { 'application/json': { schema: buildResponseSchema(op.selection, op.rowSchema, op.cursor) } } + } + } + }; + if (manifest.docs_url) operation.externalDocs = { description: `${PROVIDER_NAME} GraphQL API documentation`, url: manifest.docs_url }; + return operation; +} + +function buildResource(op, pathKey) { + const methodRef = `#/components/x-stackQL-resources/${op.resource}/methods/list`; + const method = { + operation: { $ref: `#/paths/${pathKey.replace(/\//g, '~1')}/post` }, + response: { mediaType: 'application/json', openAPIDocKey: '200', objectKey: op.selection }, + [PROTOCOL_MARKER]: 'graphql' + }; + if (op.transform) method.response.transform = op.transform; // runs before responseSelection + return { + id: `${PROVIDER_NAME}.${op.service}.${op.resource}`, + name: op.resource, + title: op.title, + methods: { list: method }, + sqlVerbs: { select: [{ $ref: methodRef }], insert: [], update: [], delete: [], replace: [] } + }; +} + +function newServiceDoc(serviceName, meta, servers) { + return { + openapi: '3.0.3', + info: { title: meta.title ?? `${serviceName} API`, description: meta.description ?? '', version: VERSION }, + servers, + paths: {}, + components: { schemas: {}, 'x-stackQL-resources': {} } + }; +} + +// Remove every operation / resource carrying the protocol marker so a re-run +// starts from the REST-only state of the service. +function stripPreviousShims(doc) { + let stripped = 0; + for (const [p, pathItem] of Object.entries(doc.paths ?? {})) { + for (const [verb, op] of Object.entries(pathItem ?? {})) { + if (op && typeof op === 'object' && op[PROTOCOL_MARKER] === 'graphql') { delete pathItem[verb]; stripped++; } + } + if (pathItem && Object.keys(pathItem).length === 0) delete doc.paths[p]; + } + const resources = doc.components?.['x-stackQL-resources'] ?? {}; + for (const [name, res] of Object.entries(resources)) { + const methods = res?.methods ?? {}; + const names = Object.keys(methods); + if (names.length && names.every((m) => methods[m]?.[PROTOCOL_MARKER] === 'graphql')) delete resources[name]; + } + return stripped; +} + +// --- main ------------------------------------------------------------------ + +const ops = manifest.ops.map((rel) => { + const op = loadYaml(join(sourceDir, rel)); + for (const k of ['service', 'resource', 'title', 'description', 'selection', 'query', 'rowSchema']) { + if (!op[k]) throw new Error(`${rel}: missing required field '${k}'`); + } + if (/\n|\\/.test(op.query.replace(/\n/g, ' ').match(/"[^"]*"/g)?.join('') || '')) throw new Error(`${rel}: GraphQL string literals must not contain newlines or backslashes`); + return op; +}); + +const byService = new Map(); +for (const op of ops) { + if (!byService.has(op.service)) byService.set(op.service, []); + byService.get(op.service).push(op); +} + +const providerYamlPath = join(providerDir, 'provider.yaml'); +const provider = loadYaml(providerYamlPath); +let providerChanged = false; +const summary = []; + +// servers for GraphQL-only services: the manifest's `servers`, else the first +// REST service's, else the GraphQL URL's origin +let restServers = manifest.servers || null; +if (!restServers) { + const servicesDir = join(providerDir, 'services'); + const restFile = existsSync(servicesDir) ? readdirSync(servicesDir).filter((f) => f.endsWith('.yaml')).sort()[0] : null; + restServers = restFile ? loadYaml(join(servicesDir, restFile)).servers : [{ url: new URL(graphqlUrl).origin }]; +} + +for (const [serviceName, serviceOps] of byService) { + const servicePath = join(providerDir, 'services', `${serviceName}.yaml`); + let doc; + let created = false; + if (existsSync(servicePath)) { + doc = loadYaml(servicePath); + } else { + const meta = manifest.services?.[serviceName]; + if (!meta) throw new Error(`service '${serviceName}' does not exist under ${providerDir}/services and is not declared in manifest.services`); + doc = newServiceDoc(serviceName, meta, restServers); + created = true; + } + doc.paths ??= {}; + doc.components ??= {}; + doc.components['x-stackQL-resources'] ??= {}; + + const stripped = stripPreviousShims(doc); + + for (const op of serviceOps) { + const pathKey = `/graphql?resource=${op.resource}`; + if (doc.paths[pathKey]?.post) throw new Error(`${serviceName}: path ${pathKey} already has a non-GraphQL POST operation`); + if (doc.components['x-stackQL-resources'][op.resource]) throw new Error(`${serviceName}: resource '${op.resource}' already exists as a REST resource - pick another name`); + doc.paths[pathKey] = { post: buildOperation(op) }; + doc.components['x-stackQL-resources'][op.resource] = buildResource(op, pathKey); + if (verbose) console.log(`${serviceName}: shimmed ${op.resource} (${pathKey})`); + } + + const sorted = {}; + for (const k of Object.keys(doc.components['x-stackQL-resources']).sort()) sorted[k] = doc.components['x-stackQL-resources'][k]; + doc.components['x-stackQL-resources'] = sorted; + + writeFileSync(servicePath, dumpYaml(doc)); + + if (!provider.providerServices?.[serviceName]) { + const meta = manifest.services?.[serviceName] ?? {}; + provider.providerServices[serviceName] = { + id: `${serviceName}:${VERSION}`, + name: serviceName, + preferred: true, + service: { $ref: `${PROVIDER_NAME}/${VERSION}/services/${serviceName}.yaml` }, + title: meta.title ?? `${serviceName} API`, + version: VERSION, + description: meta.description ?? '' + }; + providerChanged = true; + } + summary.push({ service: serviceName, created, stripped, added: serviceOps.map((o) => o.resource) }); +} + +if (providerChanged) { + const sortedServices = {}; + for (const k of Object.keys(provider.providerServices).sort()) sortedServices[k] = provider.providerServices[k]; + provider.providerServices = sortedServices; + writeFileSync(providerYamlPath, dumpYaml(provider)); +} + +console.log(JSON.stringify({ providerDir, providerYamlUpdated: providerChanged, services: summary }, null, 2)); diff --git a/provider-dev/scripts/harvest_ngc_sdk_schemas.mjs b/provider-dev/scripts/harvest_ngc_sdk_schemas.mjs new file mode 100644 index 0000000..c21a115 --- /dev/null +++ b/provider-dev/scripts/harvest_ngc_sdk_schemas.mjs @@ -0,0 +1,222 @@ +#!/usr/bin/env node + +// Harvest response schemas for the NGC registry surface from the ngcsdk +// Python SDK (the archetype-2 fallback, applied to the response side only). +// +// Why: the harvested Private Artifacts (Models) definition +// (provider-dev/downloaded/ngc_models.json) declares request bodies and +// parameters for 333 operations but a 2xx response on only 30 of them - it +// is a request-side definition. StackQL projects rows from response +// schemas, so the registry/catalog surface needs them from somewhere. The +// ngcsdk wheel on PyPI ships the SDK's auto-generated data classes +// (registry/data/model/*.py: Model, ModelListResponse, ArtifactResponse, +// PaginationInfo, ...) - typed property by property, generated from the +// same API definition. This script converts them to JSON Schema +// deterministically; clean_specs.mjs then attaches them as the 200 +// responses of the response-less operations (rule inject-sdk-responses). +// +// Pinned artifact: a PyPI wheel is immutable, so (version, sha256) is a +// reproducible input. The wheel itself is cached in provider-dev/downloaded/ +// (gitignored); the derived provider-dev/downloaded/ngc_sdk_schemas.json is +// committed. Fails without writing on a hash mismatch or a parse failure. +// +// Usage: node provider-dev/scripts/harvest_ngc_sdk_schemas.mjs + +import crypto from 'crypto'; +import fs from 'fs'; +import path from 'path'; +import zlib from 'zlib'; +import { fileURLToPath } from 'url'; + +const NGCSDK_VERSION = '4.36.6'; +const NGCSDK_WHEEL = `ngcsdk-${NGCSDK_VERSION}-py3-none-any.whl`; +const NGCSDK_URL = `https://files.pythonhosted.org/packages/3c/cf/e4901fd5a50621d3f058d0ba4f732651a86d672fb76b7a404473b2b23ac1/${NGCSDK_WHEEL}`; +const NGCSDK_SHA256 = '8cf4ce3bd071b3d2e24d40f2c66abc2c2b49022b53d400a2eb9fe6018fe3f343'; +// the data-class packages harvested (path prefix inside the wheel) +const PACKAGES = ['registry/data/model/']; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..'); +const downloadDir = path.join(repoRoot, 'provider-dev', 'downloaded'); +const wheelPath = path.join(downloadDir, NGCSDK_WHEEL); +const outPath = path.join(downloadDir, 'ngc_sdk_schemas.json'); +const manifestPath = path.join(downloadDir, 'download_manifest.json'); + +// --------------------------------------------------------------------------- +// minimal zip reader (central directory + deflate), no dependencies +// --------------------------------------------------------------------------- + +function readZip(buf) { + // locate the end-of-central-directory record + let eocd = -1; + for (let i = buf.length - 22; i >= Math.max(0, buf.length - 65557); i--) { + if (buf.readUInt32LE(i) === 0x06054b50) { eocd = i; break; } + } + if (eocd < 0) throw new Error('not a zip file (no end-of-central-directory record)'); + const entries = buf.readUInt16LE(eocd + 10); + let off = buf.readUInt32LE(eocd + 16); + const files = new Map(); + for (let n = 0; n < entries; n++) { + if (buf.readUInt32LE(off) !== 0x02014b50) throw new Error('bad central directory header'); + const method = buf.readUInt16LE(off + 10); + const compressedSize = buf.readUInt32LE(off + 20); + const nameLen = buf.readUInt16LE(off + 28); + const extraLen = buf.readUInt16LE(off + 30); + const commentLen = buf.readUInt16LE(off + 32); + const localOff = buf.readUInt32LE(off + 42); + const name = buf.toString('utf8', off + 46, off + 46 + nameLen); + files.set(name, { method, compressedSize, localOff }); + off += 46 + nameLen + extraLen + commentLen; + } + return { + names: [...files.keys()], + read(name) { + const f = files.get(name); + if (!f) throw new Error(`no such zip entry: ${name}`); + if (buf.readUInt32LE(f.localOff) !== 0x04034b50) throw new Error(`bad local header for ${name}`); + const nameLen = buf.readUInt16LE(f.localOff + 26); + const extraLen = buf.readUInt16LE(f.localOff + 28); + const start = f.localOff + 30 + nameLen + extraLen; + const data = buf.subarray(start, start + f.compressedSize); + if (f.method === 0) return data.toString('utf8'); + if (f.method === 8) return zlib.inflateRawSync(data).toString('utf8'); + throw new Error(`unsupported zip compression method ${f.method} for ${name}`); + } + }; +} + +// --------------------------------------------------------------------------- +// data-class parser: the SDK classes are generated by one template, so the +// parse is a small set of anchored patterns +// --------------------------------------------------------------------------- + +const SCALAR_TYPES = { + int: { type: 'integer' }, + long: { type: 'integer', format: 'int64' }, + float: { type: 'number' }, + bool: { type: 'boolean' }, + string_types: { type: 'string' }, + str: { type: 'string' }, + dict: { type: 'object' }, + list: { type: 'array' } +}; + +function parseDataClass(source, fileName) { + const classMatch = source.match(/^class (\w+)\(object\):\n(?:\s+"""([^"]*)""")?/m); + if (!classMatch) { + // enum-style modules and helpers carry no propDict constructor + if (!/def __init__\(self, propDict=None\)/.test(source)) return null; + throw new Error(`${fileName}: unrecognised class layout`); + } + const [, className, classDoc = ''] = classMatch; + const props = {}; + // property names, in declaration order, from the constructor + const initBody = source.slice(source.indexOf('def __init__(self, propDict=None)')); + const initEnd = initBody.search(/\n @property/); + const init = initEnd > 0 ? initBody.slice(0, initEnd) : initBody; + for (const m of init.matchAll(/self\.(\w+) = \(/g)) props[m[1]] = {}; + for (const name of Object.keys(props)) { + const schema = {}; + // list element class: [ Foo(i) for i in propDict["name"] ] + const elem = init.match(new RegExp(`else \\[ (\\w+)\\(i\\)\\s+for i in propDict\\["${name}"\\] \\]`)); + // setter type guard + const setter = source.match(new RegExp(`@${name}\\.setter\\n\\s+def ${name}\\(self, value\\):\\n([\\s\\S]*?)(?=\\n @|\\n def toDict)`)); + if (!setter) throw new Error(`${fileName}: no setter for ${className}.${name}`); + const guard = setter[1].match(/isinstance\(value, (\w+)\)/); + if (!guard) throw new Error(`${fileName}: no type guard for ${className}.${name}`); + const t = guard[1]; + if (t === 'list') { + schema.type = 'array'; + schema.items = elem ? { $ref: `#/components/schemas/${elem[1]}` } : { type: 'string' }; + } else if (SCALAR_TYPES[t]) { + Object.assign(schema, SCALAR_TYPES[t]); + } else { + schema.$ref = `#/components/schemas/${t}`; + } + // getter docstring: """<Type>: <description>""" + const getter = source.match(new RegExp(`@property\\n\\s+def ${name}\\(self\\):\\n\\s+"""([^"]*)"""`)); + if (getter) { + const doc = getter[1].trim().replace(/^[\w<>]+:\s*/, ''); + if (doc && !schema.$ref) schema.description = doc; + else if (doc && schema.$ref) schema['x-description'] = doc; // siblings of $ref are ignored by resolvers + } + props[name] = schema; + } + return { className, schema: { type: 'object', ...(classDoc.trim() ? { description: classDoc.trim() } : {}), properties: props } }; +} + +// --------------------------------------------------------------------------- +// main +// --------------------------------------------------------------------------- + +fs.mkdirSync(downloadDir, { recursive: true }); +let wheel; +if (fs.existsSync(wheelPath)) { + wheel = fs.readFileSync(wheelPath); +} else { + console.log(`Fetching ${NGCSDK_URL}`); + const res = await fetch(NGCSDK_URL, { signal: AbortSignal.timeout(120000) }); + if (!res.ok) { + console.error(`Error: HTTP ${res.status} from ${NGCSDK_URL} - nothing written`); + process.exit(1); + } + wheel = Buffer.from(await res.arrayBuffer()); +} +const sha256 = crypto.createHash('sha256').update(wheel).digest('hex'); +if (sha256 !== NGCSDK_SHA256) { + console.error(`Error: ${NGCSDK_WHEEL} sha256 ${sha256} does not match the pinned ${NGCSDK_SHA256} - nothing written`); + process.exit(1); +} +if (!fs.existsSync(wheelPath)) fs.writeFileSync(wheelPath, wheel); + +const zip = readZip(wheel); +const schemas = {}; +const skipped = []; +for (const name of zip.names.sort()) { + if (!PACKAGES.some((p) => name.startsWith(p)) || !name.endsWith('.py') || name.endsWith('__init__.py')) continue; + const parsed = parseDataClass(zip.read(name), name); + if (!parsed) { skipped.push(name); continue; } + if (schemas[parsed.className]) throw new Error(`duplicate data class ${parsed.className}`); + schemas[parsed.className] = parsed.schema; +} + +// every $ref must resolve within the harvested set +const missing = new Set(); +for (const [cls, schema] of Object.entries(schemas)) { + for (const [prop, s] of Object.entries(schema.properties)) { + const ref = s.$ref || s.items?.$ref; + if (ref && !schemas[ref.split('/').pop()]) missing.add(`${cls}.${prop} -> ${ref.split('/').pop()}`); + } +} +if (missing.size > 0) { + console.error(`Error: ${missing.size} unresolved data-class reference(s) - nothing written:`); + for (const m of [...missing].sort()) console.error(` ${m}`); + process.exit(1); +} + +const out = { + package: 'ngcsdk', + version: NGCSDK_VERSION, + wheel: NGCSDK_WHEEL, + url: NGCSDK_URL, + sha256: NGCSDK_SHA256, + packages: PACKAGES, + classes: Object.keys(schemas).length, + enumModulesSkipped: skipped.map((n) => n.split('/').pop().replace(/\.py$/, '')), + schemas +}; +fs.writeFileSync(outPath, JSON.stringify(out, null, 2) + '\n'); + +const manifest = fs.existsSync(manifestPath) ? JSON.parse(fs.readFileSync(manifestPath, 'utf8')) : { files: {} }; +manifest.ngcSdk = { + package: 'ngcsdk', + version: NGCSDK_VERSION, + url: NGCSDK_URL, + sha256: NGCSDK_SHA256, + derived: 'ngc_sdk_schemas.json', + packages: PACKAGES, + classes: Object.keys(schemas).length, + note: 'response schemas for the registry/catalog surface: the harvested models definition declares no 2xx responses on most operations; the SDK data classes are the pinned response-side source (archetype-2 fallback, response side only)' +}; +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) + '\n'); + +console.log(`Harvested ${Object.keys(schemas).length} data classes from ${NGCSDK_WHEEL} (${skipped.length} enum/helper modules skipped) -> ${outPath}`); diff --git a/provider-dev/scripts/harvest_ngc_spec.mjs b/provider-dev/scripts/harvest_ngc_spec.mjs new file mode 100644 index 0000000..7f874c2 --- /dev/null +++ b/provider-dev/scripts/harvest_ngc_spec.mjs @@ -0,0 +1,164 @@ +#!/usr/bin/env node + +// Harvest the NGC API definitions behind the NGC API explorer +// (https://docs.ngc.nvidia.com/api/). +// +// Provenance: the explorer was a swagger-ui bundle over a hardcoded list of +// per-service OpenAPI definition URLs, and the phase-1 harvest (2026-07-14) +// extracted that list from the bundle. The explorer has since moved to a +// hosted documentation platform (ReadMe) whose pages no longer carry the +// definition list, but the definitions themselves are still served from +// the URLs the bundle declared - and the NGC API definition (orgs, teams, +// users) is also served by the public gateway. The list below is that +// pinned catalogue: every entry the explorer displayed, with its URL and +// the scope decision (sibling scope notes in CLAUDE.md). This script +// fetches every in-scope definition, writes it to +// provider-dev/downloaded/ngc_<key>.json, and records every entry +// (fetched / unreachable / out-of-scope) with evidence in +// download_manifest.json. +// +// Fails without writing if any REQUIRED in-scope definition cannot be +// retrieved. In-scope definitions marked optional: true are services whose +// hosts were not publicly routable at pin time (recorded as unreachable +// evidence for the harvest-vs-fallback decision rather than failing the +// build); the day one of them answers, its definition lands in +// provider-dev/downloaded/ and the inventory build will flag its +// operations as unclassified. +// +// Usage: node provider-dev/scripts/harvest_ngc_spec.mjs + +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import { canonicalJson } from './lib/canonical.mjs'; + +const EXPLORER_URL = 'https://docs.ngc.nvidia.com/api/'; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..'); +const downloadDir = path.join(repoRoot, 'provider-dev', 'downloaded'); +const manifestPath = path.join(downloadDir, 'download_manifest.json'); + +// The explorer's definition catalogue (display name, URL) with the scope +// decision per entry. `urls` are tried in order; the first that answers +// with an OpenAPI document wins. +const CATALOGUE = [ + { name: 'KASv1 API (Deprecated)', key: 'kas', inScope: true, + urls: ['https://api.ngc.nvidia.com/v3/api-docs', 'https://api-internal.ngc.nvidia.com/v3/api-docs'], + note: 'the NGC API Documentation definition (orgs, teams, users) - the explorer labelled it KASv1 (Deprecated); deprecation is handled per path in mapping; served by the public gateway' }, + { name: 'Private Artifacts (Models) API', key: 'models', inScope: true, + urls: ['https://models.ngc.nvidia.com/v3/openapi'], + note: 'registry artifact metadata (models, resources, containers, helm charts); declared on /v1 paths that the public gateway serves under /v2 (clean_specs gateway-v2-path-prefix)' }, + { name: 'Org Mgmt Service API', key: 'oms', inScope: true, optional: true, urls: ['https://oms.ngc.nvidia.com/v3/openapi'], note: 'organization management' }, + { name: 'User IAM Sevice API', key: 'uis', inScope: true, optional: true, urls: ['https://uis.ngc.nvidia.com/v3/openapi'], note: 'user identity and access management (name spelled sic in the explorer)' }, + { name: 'Search API', key: 'search', inScope: true, optional: true, urls: ['https://search.ngc.nvidia.com/v3/api-docs', 'https://api.ngc.nvidia.com/v3/search/api-docs'], note: 'catalog/registry search' }, + { name: 'Metadata API', key: 'meta', inScope: true, optional: true, urls: ['https://meta.ngc.nvidia.com/v3/api-docs', 'https://api.ngc.nvidia.com/v3/meta/api-docs'], note: 'artifact metadata' }, + { name: 'Publishing API', key: 'publishing', inScope: true, optional: true, urls: ['https://publishing.ngc.nvidia.com/v3/api-docs'], note: 'artifact publishing' }, + { name: 'Fleet Command API', key: 'ecm', inScope: false, urls: ['https://api.ngc.nvidia.com/v3/ecm/openapi'], note: 'Fleet Command is its own product surface, out of scope' }, + { name: 'Batch API', key: 'batch', inScope: false, urls: ['https://batch.ngc.nvidia.com/v3/openapi'], note: 'Base Command batch jobs, out of scope' }, + { name: 'Subscription Service API', key: 'subscription', inScope: false, urls: ['https://subscription.ngc.nvidia.com/v3/openapi'], note: 'subscription/billing surface - candidate usage service, host not publicly routable; revisit if reachable' }, + { name: 'Notification Service API', key: 'notification', inScope: false, urls: ['https://notification.ngc.nvidia.com/v3/openapi'], note: 'notification delivery, out of scope' } +]; + +async function fetchDefinition(url, timeoutMs = 60000) { + const res = await fetch(url, { signal: AbortSignal.timeout(timeoutMs), headers: { 'User-Agent': 'stackql-provider-nvidia harvest' } }); + if (!res.ok) throw new Error(`HTTP ${res.status}`); + const text = await res.text(); + const spec = JSON.parse(text); + if (!(spec.openapi || spec.swagger) || !spec.paths) throw new Error('payload is not an OpenAPI document'); + return { text, spec }; +} + +const results = {}; +const outputs = new Map(); // file name -> { text, url, name, spec } +let failures = 0; + +for (const entry of CATALOGUE) { + if (!entry.inScope) { + results[entry.name] = { url: entry.urls[0], status: 'out-of-scope', note: entry.note }; + console.log(`out-of-scope ${entry.name} (${entry.note})`); + continue; + } + let fetched = null; + const errors = []; + for (const url of entry.urls) { + try { + const { text, spec } = await fetchDefinition(url); + fetched = { text, spec, url }; + break; + } catch (e) { + errors.push(`${url}: ${e.message}`); + } + } + if (fetched) { + const file = `ngc_${entry.key}.json`; + outputs.set(file, { ...fetched, name: entry.name }); + results[entry.name] = { url: fetched.url, status: 'fetched', file, note: entry.note }; + console.log(`fetched ${entry.name} -> ${file} (openapi=${fetched.spec.openapi || fetched.spec.swagger}, version=${fetched.spec.info?.version}, paths=${Object.keys(fetched.spec.paths).length}) from ${fetched.url}`); + } else { + results[entry.name] = { url: entry.urls[0], status: 'unreachable', error: errors.join('; '), note: entry.note }; + if (entry.optional) { + console.log(`unreachable ${entry.name} (optional): ${errors.join('; ')}`); + } else { + console.error(`FAILED ${entry.name} (required): ${errors.join('; ')}`); + failures++; + } + } +} + +if (failures > 0) { + console.error(`Error: ${failures} required definition(s) could not be harvested - nothing written`); + process.exit(1); +} + +fs.mkdirSync(downloadDir, { recursive: true }); +const manifest = fs.existsSync(manifestPath) + ? JSON.parse(fs.readFileSync(manifestPath, 'utf8')) + : { files: {} }; +manifest.files = manifest.files || {}; + +// Fix class: stable operationIds for the /swagger-resources family. springdoc +// numbers the seven same-named handlers of each of these paths +// (swaggerResources, securityConfiguration, uiConfiguration) with _N +// suffixes in reflection order, which differs between server instances - two +// fetches minutes apart on 2026-10-16 swapped the suffixes among the verbs, +// so a byte pin would drift on bytes that carry no meaning (the family is a +// service-infra skip). Verb-keyed ids are deterministic. Counted per file. +function stabilizeSwaggerResourceIds(spec) { + let n = 0; + for (const [p, item] of Object.entries(spec.paths || {})) { + if (!p.startsWith('/swagger-resources')) continue; + for (const [verb, op] of Object.entries(item)) { + if (!op || typeof op !== 'object' || typeof op.operationId !== 'string') continue; + const base = op.operationId.replace(/_\d+$/, ''); + const stable = `${base}_${verb}`; + if (op.operationId !== stable) { op.operationId = stable; n++; } + } + } + return n; +} + +for (const [file, { text, url, name, spec }] of outputs) { + const fixes = { 'stable-swagger-resources-operation-ids': stabilizeSwaggerResourceIds(spec) }; + // written as canonical JSON (sorted keys): the definition servers + // serialise maps in a non-deterministic order between fetches + fs.writeFileSync(path.join(downloadDir, file), canonicalJson(spec)); + manifest.files[file] = { + url, + fixes, + info: { + explorer: EXPLORER_URL, + explorerName: name, + openapi: spec.openapi || spec.swagger, + title: spec.info?.title ?? null, + specVersion: spec.info?.version ?? null + } + }; +} +manifest.ngcHarvest = { + explorer: EXPLORER_URL, + catalogue: 'pinned in harvest_ngc_spec.mjs (the explorer moved to a hosted documentation platform after 2026-07-14 and no longer publishes its definition list; the definition URLs it declared still serve)', + entries: results +}; +fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) + '\n'); + +console.log(`Harvest complete: ${outputs.size} definition(s) written to ${downloadDir}`); diff --git a/provider-dev/scripts/lib/canonical.mjs b/provider-dev/scripts/lib/canonical.mjs new file mode 100644 index 0000000..8bdeac2 --- /dev/null +++ b/provider-dev/scripts/lib/canonical.mjs @@ -0,0 +1,19 @@ +// Canonical JSON for the pinned downloads. NVIDIA's definition servers +// serialise Java maps in a non-deterministic key order (the models +// definition's securitySchemes scopes map changes order between two fetches +// seconds apart) - byte-for-byte pins would drift on every download. The +// fetchers write every definition with object keys sorted recursively +// (array order untouched), so the committed file and its sha256 are stable +// for identical content and a pin drift means real upstream change. + +export function sortKeysDeep(value) { + if (Array.isArray(value)) return value.map(sortKeysDeep); + if (value && typeof value === 'object') { + return Object.fromEntries(Object.keys(value).sort().map((k) => [k, sortKeysDeep(value[k])])); + } + return value; +} + +export function canonicalJson(value) { + return JSON.stringify(sortKeysDeep(value), null, 2) + '\n'; +} diff --git a/provider-dev/scripts/lib/inventory.mjs b/provider-dev/scripts/lib/inventory.mjs new file mode 100644 index 0000000..4b839f7 --- /dev/null +++ b/provider-dev/scripts/lib/inventory.mjs @@ -0,0 +1,78 @@ +// Shared access to the endpoint inventory (provider-dev/config/ +// endpoint_inventory.csv - the single source of truth produced by +// build_inventory.mjs). Used by bin/split.mjs (service assignment, org +// rebase, per-service host), map_operations.mjs (resource / method / verb / +// objectKey) and post_process.mjs (path-level server templates, casing, +// pagination). Regenerate the inventory to change any of it; never edit the +// CSV by hand. + +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..', '..'); +export const inventoryPath = path.join(repoRoot, 'provider-dev', 'config', 'endpoint_inventory.csv'); +export const serversPath = path.join(repoRoot, 'provider-dev', 'config', 'servers.json'); + +export function parseCsv(text) { + const rows = []; + let row = [], field = '', inQuotes = false; + for (let i = 0; i < text.length; i++) { + const c = text[i]; + if (inQuotes) { + if (c === '"') { + if (text[i + 1] === '"') { field += '"'; i++; } else { inQuotes = false; } + } else { field += c; } + } else if (c === '"') { + inQuotes = true; + } else if (c === ',') { + row.push(field); field = ''; + } else if (c === '\n' || c === '\r') { + if (c === '\r' && text[i + 1] === '\n') i++; + row.push(field); field = ''; + if (row.length > 1 || row[0] !== '') rows.push(row); + row = []; + } else { field += c; } + } + if (field !== '' || row.length > 0) { row.push(field); rows.push(row); } + return rows; +} + +export const csvField = (v) => (/[",\n\r]/.test(String(v)) ? `"${String(v).replace(/"/g, '""')}"` : String(v)); + +export function loadServers() { + return JSON.parse(fs.readFileSync(serversPath, 'utf8')); +} + +// Returns { rows, header, byOp, byServiceOp, hostByService }: +// rows every inventory row as an object +// byOp `${file}::${operationId}` -> row (every operation) +// byServiceOp `${service}::${operationId}` -> row (mapped operations) +// hostByService service -> host (one per service, validated by the inventory) +export function loadInventory() { + if (!fs.existsSync(inventoryPath)) { + throw new Error(`${inventoryPath} not found - run build_inventory.mjs first`); + } + const table = parseCsv(fs.readFileSync(inventoryPath, 'utf8')); + const header = table[0]; + const rows = table.slice(1).map((r) => Object.fromEntries(header.map((h, i) => [h, r[i] ?? '']))); + const byOp = new Map(); + const byServiceOp = new Map(); + const hostByService = new Map(); + for (const row of rows) { + if (row.operation_id) { + const key = `${row.file}::${row.operation_id}`; + if (byOp.has(key)) throw new Error(`inventory has a duplicate operationId ${key}`); + byOp.set(key, row); + } + if (row.service) { + const key = `${row.service}::${row.operation_id}`; + if (byServiceOp.has(key)) throw new Error(`inventory has a duplicate mapped operationId ${key}`); + byServiceOp.set(key, row); + const prev = hostByService.get(row.service); + if (prev && prev !== row.host) throw new Error(`service ${row.service} spans hosts ${prev} and ${row.host}`); + hostByService.set(row.service, row.host); + } + } + return { rows, header, byOp, byServiceOp, hostByService }; +} diff --git a/provider-dev/scripts/lib/spec_helpers.mjs b/provider-dev/scripts/lib/spec_helpers.mjs new file mode 100644 index 0000000..ec4f366 --- /dev/null +++ b/provider-dev/scripts/lib/spec_helpers.mjs @@ -0,0 +1,108 @@ +// The single source of provider constants shared by the pipeline scripts +// (graphql_merge.mjs) and the test harnesses (tests/integration/harness.mjs, +// probe.mjs), plus the generic helpers for walking a generated provider. +// +// The nvidia build is a three-input hybrid (the published NVCF OpenAPI +// document, the harvested NGC definitions and the ngcsdk response classes), +// so the fetch / clean / inventory steps live in their own scripts +// (fetch_nvcf_spec, harvest_ngc_spec, harvest_ngc_sdk_schemas, pin_specs, +// clean_specs, build_inventory) and the per-operation classification is the +// endpoint inventory (lib/inventory.mjs), not a rule table here. Everything +// that is constant across those scripts is defined once below. + +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import yaml from 'js-yaml'; + +// --------------------------------------------------------------------------- +// Provider constants +// --------------------------------------------------------------------------- + +export const PROVIDER_NAME = 'nvidia'; +export const PROVIDER_TITLE = 'NVIDIA NGC'; + +// The two fixed hosts. Management, registry, catalog and organization +// operations are served from the NGC gateway; queue details and the +// HTTP-polling invocation from the NVCF host (carried per service by the +// inventory). API_BASE_URL is the primary host, the name the template's +// harness uses. +export const NGC_HOST = 'https://api.ngc.nvidia.com'; +export const NVCF_HOST = 'https://api.nvcf.nvidia.com'; +export const API_BASE_URL = NGC_HOST; +export const HOSTS = [NGC_HOST, NVCF_HOST]; + +// The scoping server variable (org-scoped registry and organization paths +// ride a path-level server template carrying it) and the environment +// variable it resolves from - the NVIDIA Terraform provider's name. +export const SCOPE_PARAM = 'org_name'; +export const SCOPE_ENV_VAR = 'NGC_ORG'; + +// The credential the provider reads (bearer), the Terraform provider's name. +export const AUTH_ENV_VAR = 'NGC_API_KEY'; + +export const HTTP_VERBS = ['get', 'post', 'put', 'patch', 'delete']; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..', '..'); +export const REPO_ROOT = repoRoot; +export const PROVIDER_DIR = path.join(repoRoot, 'provider-dev', 'openapi', 'src', PROVIDER_NAME, 'v00.00.00000'); +export const SERVICES_DIR = path.join(PROVIDER_DIR, 'services'); + +// --------------------------------------------------------------------------- +// Generic utilities +// --------------------------------------------------------------------------- + +export function camelToSnake(s) { + return String(s) + .replace(/([a-z0-9])([A-Z])/g, '$1_$2') + .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2') + .replace(/[-. ]/g, '_') + .toLowerCase(); +} + +export function pathParams(pathKey) { + return (pathKey.match(/\{[^}]+\}/g) || []).map((s) => s.slice(1, -1)); +} + +export function loadSpec(file) { + const text = fs.readFileSync(file, 'utf8'); + return /\.ya?ml$/i.test(file) ? yaml.load(text) : JSON.parse(text); +} + +export function dumpYaml(doc) { + return yaml.dump(doc, { lineWidth: -1, noRefs: true }); +} + +// --------------------------------------------------------------------------- +// Generated-provider helpers (graphql_merge.mjs, tests) +// --------------------------------------------------------------------------- + +export function listServiceFiles(dir = SERVICES_DIR) { + if (!fs.existsSync(dir)) return []; + return fs.readdirSync(dir).filter((f) => f.endsWith('.yaml')).sort(); +} + +// Iterate every method of every resource in a generated service document: +// fn(method, {resource, resourceName, methodName, verb, pathKey, operation}) +export function forEachMethod(doc, fn) { + const resources = doc.components?.['x-stackQL-resources'] || {}; + for (const [resourceName, resource] of Object.entries(resources)) { + for (const [methodName, method] of Object.entries(resource.methods || {})) { + const ref = method.operation?.$ref || ''; + const m = ref.match(/^#\/paths\/(.+)\/(get|post|put|patch|delete)$/); + const pathKey = m ? m[1].replace(/~1/g, '/').replace(/~0/g, '~') : null; + const verb = m ? m[2] : null; + const operation = pathKey ? doc.paths?.[pathKey]?.[verb] : null; + fn(method, { resource, resourceName, methodName, verb, pathKey, operation }); + } + } +} + +// The SQL verb a method is bound to (EXEC when absent from every sqlVerbs list) +export function sqlVerbOf(resource, resourceName, methodName) { + const ref = `#/components/x-stackQL-resources/${resourceName}/methods/${methodName}`; + for (const [verb, list] of Object.entries(resource.sqlVerbs || {})) { + if ((list || []).some((x) => x.$ref === ref)) return verb; + } + return 'exec'; +} diff --git a/provider-dev/scripts/map_operations.mjs b/provider-dev/scripts/map_operations.mjs new file mode 100644 index 0000000..f712a86 --- /dev/null +++ b/provider-dev/scripts/map_operations.mjs @@ -0,0 +1,192 @@ +#!/usr/bin/env node + +// Populates stackql_resource_name, stackql_method_name, stackql_verb and +// stackql_object_key in provider-dev/config/all_services.csv from the +// endpoint inventory (provider-dev/config/endpoint_inventory.csv - the +// single source of truth produced by build_inventory.mjs). Deterministic +// and re-runnable; regenerate the inventory to change mappings, never edit +// either CSV by hand. +// +// all_services.csv is committed as the durable record of every +// operation -> resource.method mapping: a diff there on a regeneration is a +// breaking-change review (a method moving resource, a resource renamed), +// not noise. This script prints that diff against the committed CSV before +// overwriting it. +// +// Validates before writing: +// - every all_services.csv row resolves to a mapped inventory operation +// (by service + operationId) on the same rebased path and verb +// - every mapped inventory operation appears in all_services.csv +// - method names are unique per (service, resource) +// - overloaded SQL verbs have unique required path-param signatures per +// (service, resource, verb), exec excluded +// Fails without writing on any violation. +// +// Usage: node provider-dev/scripts/map_operations.mjs [--out PATH] [--report] +// --report prints every derived mapping (service, operation, path, verb -> +// resource.method [sqlVerb] objectKey) and writes nothing - the way to +// design inventory rules. + +import fs from 'fs'; +import path from 'path'; +import { execSync } from 'child_process'; +import { fileURLToPath } from 'url'; +import { loadInventory, parseCsv, csvField } from './lib/inventory.mjs'; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..'); +const csvPath = path.join(repoRoot, 'provider-dev', 'config', 'all_services.csv'); + +const pathParams = (p) => (p.match(/\{[^}]+\}/g) || []).map((s) => s.slice(1, -1)).sort().join(','); + +const { byServiceOp } = loadInventory(); + +const rows = parseCsv(fs.readFileSync(csvPath, 'utf8')); +const header = rows[0]; +const col = Object.fromEntries(header.map((h, i) => [h, i])); +for (const required of ['filename', 'path', 'verb', 'operationId', 'stackql_resource_name', 'stackql_method_name', 'stackql_verb', 'stackql_object_key']) { + if (!(required in col)) { + console.error(`Missing expected CSV column: ${required}`); + process.exit(1); + } +} + +const errors = []; +const matched = new Set(); + +for (const row of rows.slice(1)) { + const service = row[col.filename].replace(/\.yaml$/, ''); + const opId = row[col.operationId]; + const entry = byServiceOp.get(`${service}::${opId}`); + if (!entry) { + errors.push(`no inventory mapping for ${row[col.filename]} ${row[col.verb]} ${row[col.path]} (${opId || 'no operationId'})`); + continue; + } + if (entry.rebased_path !== row[col.path] || entry.verb !== row[col.verb]) { + errors.push(`path/verb mismatch for ${service} ${opId}: split has ${row[col.verb]} ${row[col.path]}, inventory has ${entry.verb} ${entry.rebased_path}`); + continue; + } + matched.add(`${service}::${opId}`); + row[col.stackql_resource_name] = entry.resource; + row[col.stackql_method_name] = entry.method; + row[col.stackql_verb] = entry.sql_verb; + // multi-array-prop candidates stay empty pending a wire check + row[col.stackql_object_key] = /^\$\.[A-Za-z_]+$/.test(entry.object_key_candidate) ? entry.object_key_candidate : ''; +} + +for (const [key, entry] of byServiceOp) { + if (!matched.has(key)) { + errors.push(`in inventory but not in all_services.csv: ${entry.verb} ${entry.rebased_path} (${entry.service}.${entry.resource}.${entry.method})`); + } +} + +// --------------------------------------------------------------------------- +// Consistency checks +// --------------------------------------------------------------------------- + +const methodSeen = new Map(); +const sigSeen = new Map(); +for (const row of rows.slice(1)) { + const resource = row[col.stackql_resource_name]; + if (!resource) continue; + const service = row[col.filename].replace(/\.yaml$/, ''); + const methodKey = `${service}.${resource}.${row[col.stackql_method_name]}`; + if (methodSeen.has(methodKey)) { + errors.push(`duplicate method ${methodKey} (${methodSeen.get(methodKey)} and ${row[col.path]}:${row[col.verb]})`); + } + methodSeen.set(methodKey, `${row[col.path]}:${row[col.verb]}`); + + const sqlVerb = row[col.stackql_verb]; + if (sqlVerb === 'exec') continue; + const sigKey = `${service}.${resource}.${sqlVerb}::${pathParams(row[col.path])}`; + if (sigSeen.has(sigKey)) { + errors.push(`signature clash on ${sigKey} (${sigSeen.get(sigKey)} and ${row[col.stackql_method_name]})`); + } + sigSeen.set(sigKey, row[col.stackql_method_name]); +} + +if (errors.length > 0) { + console.error(`FAILED with ${errors.length} error(s) - nothing written:`); + for (const e of errors) console.error(` ${e}`); + process.exit(1); +} + +// --------------------------------------------------------------------------- +// --report: print the derived mapping table and stop (nothing written) +// --------------------------------------------------------------------------- + +if (process.argv.includes('--report')) { + const width = (i) => Math.max(...rows.slice(1).map((r) => String(r[i] || '').length)); + const w = { service: width(col.filename), op: width(col.operationId), path: width(col.path) }; + for (const row of rows.slice(1)) { + const service = row[col.filename].replace(/\.yaml$/, ''); + const target = row[col.stackql_resource_name] + ? `${row[col.stackql_resource_name]}.${row[col.stackql_method_name]} [${row[col.stackql_verb]}]${row[col.stackql_object_key] ? ' ' + row[col.stackql_object_key] : ''}` + : '(unmapped)'; + console.log(`${service.padEnd(w.service)} ${row[col.verb].toUpperCase().padEnd(6)} ${row[col.path].padEnd(w.path)} ${row[col.operationId].padEnd(w.op)} -> ${target}`); + } + console.log(`${rows.length - 1} operations (report only - nothing written)`); + process.exit(0); +} + +// --------------------------------------------------------------------------- +// Mapping diff against the committed CSV (review aid; the CI drift gate is +// the enforcement) +// --------------------------------------------------------------------------- + +function committedMappings() { + try { + const text = execSync('git show HEAD:provider-dev/config/all_services.csv', { cwd: repoRoot, encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }); + const t = parseCsv(text); + const c = Object.fromEntries(t[0].map((h, i) => [h, i])); + const m = new Map(); + for (const r of t.slice(1)) { + if (!r[c.stackql_resource_name]) continue; + m.set(`${r[c.filename].replace(/\.yaml$/, '')}::${r[c.operationId]}`, `${r[c.stackql_resource_name]}.${r[c.stackql_method_name]} [${r[c.stackql_verb]}]`); + } + return m; + } catch { + return null; + } +} + +const previous = committedMappings(); +if (previous) { + const current = new Map(); + for (const row of rows.slice(1)) { + if (!row[col.stackql_resource_name]) continue; + current.set(`${row[col.filename].replace(/\.yaml$/, '')}::${row[col.operationId]}`, `${row[col.stackql_resource_name]}.${row[col.stackql_method_name]} [${row[col.stackql_verb]}]`); + } + const added = [...current.keys()].filter((k) => !previous.has(k)); + const removed = [...previous.keys()].filter((k) => !current.has(k)); + const changed = [...current.keys()].filter((k) => previous.has(k) && previous.get(k) !== current.get(k)); + if (added.length || removed.length || changed.length) { + console.log(`Mapping diff vs the committed all_services.csv: +${added.length} added, -${removed.length} removed, ${changed.length} changed (review before commit - these are the provider's user-facing contract):`); + for (const k of changed.slice(0, 40)) console.log(` changed ${k}: ${previous.get(k)} -> ${current.get(k)}`); + for (const k of removed.slice(0, 40)) console.log(` removed ${k}: ${previous.get(k)}`); + for (const k of added.slice(0, 40)) console.log(` added ${k}: ${current.get(k)}`); + if (added.length + removed.length + changed.length > 120) console.log(' ...'); + } else { + console.log('Mapping diff vs the committed all_services.csv: none'); + } +} + +const outArgIdx = process.argv.indexOf('--out'); +const outPath = outArgIdx !== -1 ? path.resolve(process.argv[outArgIdx + 1]) : csvPath; +fs.writeFileSync(outPath, rows.map((r) => r.map(csvField).join(',')).join('\n') + '\n'); + +// summary +const stats = { verbs: {}, resourcesByService: new Map() }; +for (const row of rows.slice(1)) { + const resource = row[col.stackql_resource_name]; + if (!resource) continue; + const service = row[col.filename].replace(/\.yaml$/, ''); + stats.verbs[row[col.stackql_verb]] = (stats.verbs[row[col.stackql_verb]] || 0) + 1; + if (!stats.resourcesByService.has(service)) stats.resourcesByService.set(service, new Set()); + stats.resourcesByService.get(service).add(resource); +} +console.log(`Mapped ${rows.length - 1} operations: ${JSON.stringify(stats.verbs)}`); +console.log('Resources per service:'); +for (const [service, resources] of [...stats.resourcesByService.entries()].sort()) { + console.log(` ${service}: ${resources.size}`); +} +console.log(`Total resources: ${[...stats.resourcesByService.values()].reduce((n, s) => n + s.size, 0)}`); diff --git a/provider-dev/scripts/pin_specs.mjs b/provider-dev/scripts/pin_specs.mjs new file mode 100644 index 0000000..0ca0291 --- /dev/null +++ b/provider-dev/scripts/pin_specs.mjs @@ -0,0 +1,116 @@ +#!/usr/bin/env node + +// Record or verify pins (URL, date, sha256) for every downloaded spec in +// provider-dev/config/spec_pin.json. Default mode records pins for the +// current downloads, preserving decision/evidence fields already present in +// the pin file. --check verifies the current downloads against the recorded +// hashes and fails without writing on any drift (CI drift job). +// +// Usage: node provider-dev/scripts/pin_specs.mjs [--check] + +import crypto from 'crypto'; +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..'); +const downloadDir = path.join(repoRoot, 'provider-dev', 'downloaded'); +const pinPath = path.join(repoRoot, 'provider-dev', 'config', 'spec_pin.json'); +const manifestPath = path.join(downloadDir, 'download_manifest.json'); + +const checkMode = process.argv.includes('--check'); + +if (!fs.existsSync(manifestPath)) { + console.error(`Error: ${manifestPath} not found - run fetch-specs first (the fetchers record source URLs there)`); + process.exit(1); +} +const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); + +const pin = fs.existsSync(pinPath) ? JSON.parse(fs.readFileSync(pinPath, 'utf8')) : { sources: {} }; +pin.sources = pin.sources || {}; + +const sha256 = (file) => crypto.createHash('sha256').update(fs.readFileSync(file)).digest('hex'); + +const errors = []; +const today = new Date().toISOString().slice(0, 10); + +for (const [file, meta] of Object.entries(manifest.files || {})) { + const abs = path.join(downloadDir, file); + if (!fs.existsSync(abs)) { + errors.push(`manifest lists ${file} but it is not in ${downloadDir}`); + continue; + } + const hash = sha256(abs); + const existing = pin.sources[file]; + if (checkMode) { + if (!existing) { + errors.push(`${file}: downloaded but has no recorded pin`); + } else if (existing.sha256 !== hash) { + errors.push(`${file}: sha256 drift (pinned ${existing.sha256.slice(0, 12)}..., current ${hash.slice(0, 12)}...)`); + } + continue; + } + pin.sources[file] = { + ...existing, + url: meta.url, + fetched: today, + sha256: hash, + bytes: fs.statSync(abs).size, + ...(meta.info || {}) + }; +} + +// the ngcsdk wheel (response schemas for the registry surface) is pinned by +// version + sha256 in harvest_ngc_sdk_schemas.mjs; the derived +// ngc_sdk_schemas.json is pinned here by content hash like the specs +if (manifest.ngcSdk) { + const derived = path.join(downloadDir, manifest.ngcSdk.derived); + if (!fs.existsSync(derived)) { + errors.push(`${manifest.ngcSdk.derived}: listed in the manifest but not present`); + } else { + const hash = sha256(derived); + const existing = pin.ngcSdk; + if (checkMode) { + if (!existing) errors.push(`${manifest.ngcSdk.derived}: derived but has no recorded pin`); + else if (existing.derivedSha256 !== hash) errors.push(`${manifest.ngcSdk.derived}: sha256 drift (pinned ${existing.derivedSha256.slice(0, 12)}..., current ${hash.slice(0, 12)}...)`); + else if (existing.sha256 !== manifest.ngcSdk.sha256 || existing.version !== manifest.ngcSdk.version) errors.push(`ngcsdk: pinned ${existing.version} (${existing.sha256.slice(0, 12)}...), harvested ${manifest.ngcSdk.version} (${manifest.ngcSdk.sha256.slice(0, 12)}...)`); + } else { + pin.ngcSdk = { + ...(existing || {}), + package: manifest.ngcSdk.package, + version: manifest.ngcSdk.version, + url: manifest.ngcSdk.url, + sha256: manifest.ngcSdk.sha256, + derived: manifest.ngcSdk.derived, + derivedSha256: hash, + classes: manifest.ngcSdk.classes, + fetched: today + }; + } + } +} + +if (checkMode) { + for (const file of Object.keys(pin.sources)) { + if (!(manifest.files || {})[file]) { + errors.push(`${file}: pinned but not present in the current download manifest`); + } + } + if (errors.length > 0) { + console.error(`Pin check FAILED with ${errors.length} error(s):`); + for (const e of errors) console.error(` ${e}`); + process.exit(1); + } + console.log(`Pin check passed: ${Object.keys(pin.sources).length} source(s) match the recorded pins`); + process.exit(0); +} + +if (errors.length > 0) { + console.error(`Pinning FAILED with ${errors.length} error(s) - nothing written:`); + for (const e of errors) console.error(` ${e}`); + process.exit(1); +} + +fs.mkdirSync(path.dirname(pinPath), { recursive: true }); +fs.writeFileSync(pinPath, JSON.stringify(pin, null, 2) + '\n'); +console.log(`Recorded pins for ${Object.keys(manifest.files || {}).length} source(s) in ${pinPath}`); diff --git a/provider-dev/scripts/post_process.mjs b/provider-dev/scripts/post_process.mjs new file mode 100644 index 0000000..74e1775 --- /dev/null +++ b/provider-dev/scripts/post_process.mjs @@ -0,0 +1,295 @@ +#!/usr/bin/env node + +// Post-generation fixes for things the generator cannot express, driven by +// the endpoint inventory. Idempotent; re-run after every generate. +// Validates and fails without writing. +// +// 1. Org-scoped server templates. bin/split.mjs rebased every org-scoped +// operation (leading /v2/org/{org_name}, /v3/orgs/{org_name}, +// /v2/artifact-registry/org/{org_name} prefix removed, org path parameter +// dropped). Here each rebased path item gets a path-level `servers` +// override carrying the prefix as a server template whose org_name +// variable resolves from NGC_ORG via x-stackQL-envVar (the clickhouse / +// supabase / godaddy precedent; any-sdk resolves servers operation -> +// path item -> document). It is applied here because normalize strips +// path-level servers from provider-dev/source. A WHERE org_name value +// always beats the environment; with NGC_ORG unset, org_name is a +// required parameter (visible in SHOW METHODS). +// +// 2. snake_case surface. `snake_case_aliases: true` on the provider config +// presents camelCase wire properties as snake_case columns; pairing it +// with `request.nativeCasing` on every method lets snake_case WHERE keys +// and body columns resolve against the wire names. NVCF and the JSON +// bodies are camelCase (`camel`); the NGC core query parameters are +// kebab-case (page-size, resolve-labels) and get `kebab` on the methods +// that carry them (inventory column native_casing). +// +// 3. Pagination and LIMIT pushdown. NGC core collections page with +// page-number (zero-based) + page-size and echo paginationInfo +// {index, totalPages, ...} in the envelope; any-sdk's page_number +// algorithm follows index/totalPages. Configured per method from the +// inventory (pagination_params); SQL LIMIT is pushed to page-size where +// the operation declares it. NVCF collections are unpaginated. +// +// 4. Opaque JSON request bodies (NVCF pexec invoke): the normalize pass +// lowers the free-form invocation payload to a string, which leaves the +// naive body translator nothing to match. A wrapper schema {body} plus a +// request transform sends the `body` argument verbatim as the JSON +// payload (the vercel octet-stream precedent). +// +// 5. Scalar-list responses: /v2/nvcf/functions/ids returns {functionIds: +// [string]}; a response transform re-shapes it into rows with a +// function_id column. +// +// 6. DELETE methods with a request body get the naive body translation +// (the generator emits it for POST/PUT/PATCH only). +// +// Usage: node provider-dev/scripts/post_process.mjs + +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import yaml from 'js-yaml'; +import { loadInventory, loadServers } from './lib/inventory.mjs'; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..'); +const servicesDir = path.join(repoRoot, 'provider-dev', 'openapi', 'src', 'nvidia', 'v00.00.00000', 'services'); +const HTTP_VERBS = ['get', 'post', 'put', 'patch', 'delete']; + +if (!fs.existsSync(servicesDir)) { + console.error(`Error: ${servicesDir} not found - run the generate step first`); + process.exit(1); +} + +const { byServiceOp, hostByService } = loadInventory(); +const servers = loadServers(); +const ORG_VAR = servers.orgVariable.name; +const ORG_ENV = servers.orgVariable['x-stackQL-envVar']; + +function decodeOperationRef(ref) { + const parts = ref.replace(/^#\/paths\//, '').split('/'); + const verb = parts.pop(); + return [parts.join('/').replace(/~1/g, '/').replace(/~0/g, '~'), verb]; +} + +const errors = []; +const docs = new Map(); +const counts = { orgPaths: 0, rootPaths: 0, casing: { camel: 0, kebab: 0 }, pagination: 0, pushdown: 0, opaqueBodies: 0, scalarLists: 0, naiveDeletes: 0 }; + +for (const f of fs.readdirSync(servicesDir).filter((x) => x.endsWith('.yaml')).sort()) { + const service = f.replace(/\.yaml$/, ''); + const doc = yaml.load(fs.readFileSync(path.join(servicesDir, f), 'utf8')); + docs.set(f, doc); + + const host = hostByService.get(service); + if (!host) { errors.push(`${f}: service ${service} is not in the inventory`); continue; } + if (doc.servers?.[0]?.url !== host) errors.push(`${f}: root server is ${doc.servers?.[0]?.url}, inventory says ${host}`); + + // 1. path-level org server templates + for (const [pathKey, item] of Object.entries(doc.paths || {})) { + const prefixes = new Set(); + for (const verb of HTTP_VERBS) { + const op = item[verb]; + if (!op) continue; + const row = byServiceOp.get(`${service}::${op.operationId}`); + if (!row) { errors.push(`${f}: ${verb} ${pathKey} (${op.operationId}) is not a mapped inventory operation`); continue; } + if (row.rebased_path !== pathKey) errors.push(`${f}: ${op.operationId} is at ${pathKey} but the inventory rebased it to ${row.rebased_path}`); + prefixes.add(row.org_prefix); + if (row.org_prefix && (op.parameters || []).some((p) => p.in === 'path' && (p.name === ORG_VAR || p.name === 'org'))) { + errors.push(`${f}: ${verb} ${pathKey} still declares the org path parameter after the rebase`); + } + } + if (prefixes.size > 1) { errors.push(`${f}: path ${pathKey} mixes org prefixes ${[...prefixes].join(', ')}`); continue; } + const prefix = [...prefixes][0]; + if (prefix) { + item.servers = [{ + url: host + prefix, + variables: { + [ORG_VAR]: { + description: servers.orgVariable.description, + 'x-stackQL-envVar': ORG_ENV + } + } + }]; + counts.orgPaths++; + } else { + delete item.servers; + counts.rootPaths++; + } + } + + // per-method fixes + const resources = doc.components?.['x-stackQL-resources'] || {}; + if (Object.keys(resources).length === 0) errors.push(`${f}: no x-stackQL-resources`); + for (const [resourceName, resource] of Object.entries(resources)) { + for (const [methodName, method] of Object.entries(resource.methods || {})) { + const ref = method.operation?.$ref; + if (!ref) { errors.push(`${f}: ${resourceName}.${methodName} has no operation ref`); continue; } + const [pathKey, verb] = decodeOperationRef(ref); + const op = doc.paths?.[pathKey]?.[verb]; + if (!op) { errors.push(`${f}: ${resourceName}.${methodName} references a missing operation ${verb} ${pathKey}`); continue; } + const row = byServiceOp.get(`${service}::${op.operationId}`); + if (!row) { errors.push(`${f}: ${resourceName}.${methodName} (${op.operationId}) is not in the inventory`); continue; } + if (row.resource !== resourceName || row.method !== methodName) { + errors.push(`${f}: ${resourceName}.${methodName} is mapped from ${op.operationId} but the inventory says ${row.resource}.${row.method}`); + } + + // 2a. response media type: a few registry operations declare their + // JSON response under `*/*` (accept anything); stackql projects rows + // from JSON responses only, so rebind the content and the method to + // application/json (the k8s cbor precedent) + for (const code of Object.keys(op.responses || {})) { + const content = op.responses[code]?.content; + if (content && content['*/*'] && !content['application/json']) { + content['application/json'] = content['*/*']; + delete content['*/*']; + counts.responseMedia = (counts.responseMedia || 0) + 1; + } + } + if (method.response?.mediaType === '*/*') method.response.mediaType = 'application/json'; + + // 2. casing + const casing = row.native_casing === 'kebab' ? 'kebab' : 'camel'; + method.request = { ...(method.request || {}), nativeCasing: casing }; + counts.casing[casing]++; + + // 3. pagination + LIMIT pushdown on collection reads + const pageParams = row.pagination_params.split('+').filter(Boolean); + if (verb === 'get' && pageParams.includes('page-number')) { + method.config = { + ...(method.config || {}), + pagination: { + algorithm: 'page_number', + requestToken: { key: 'page-number', location: 'query' }, + responseToken: { key: '$.paginationInfo.index', location: 'body' }, + responseTerminator: { key: '$.paginationInfo.totalPages', location: 'body' } + } + }; + counts.pagination++; + if (pageParams.includes('page-size')) { + method.config.queryParamPushdown = { top: { paramName: 'page-size' } }; + counts.pushdown++; + } + } + + // 4. opaque JSON request bodies: the operation's body schema becomes + // the {body} wrapper (so `body` is a declared, required parameter of + // the method) and the request transform unwraps it on the wire + const bodyContent = op.requestBody?.content?.['application/json']; + const bodySchema = bodyContent?.schema; + if (bodySchema && ((bodySchema.type === 'string' && /opaque/i.test(bodySchema.description || '')) || bodySchema.$ref === '#/components/schemas/StackqlJsonBody')) { + doc.components.schemas = doc.components.schemas || {}; + doc.components.schemas.StackqlJsonBody = { + type: 'object', + description: 'A free-form JSON request body, supplied as a JSON string in the body argument', + properties: { body: { type: 'string', description: 'The request payload as a JSON string (the function input)' } }, + required: ['body'] + }; + bodyContent.schema = { $ref: '#/components/schemas/StackqlJsonBody' }; + method.request = { + ...method.request, + mediaType: 'application/json', + // stackql hands a JSON-looking string argument to the template as a + // parsed value, and a plain string as-is (the godaddy records precedent) + transform: { type: 'golang_template_json_v0.3.0', body: '{{ if eq (kindOf .body) "string" }}{{ .body }}{{ else }}{{ toJson .body }}{{ end }}' } + }; + counts.opaqueBodies++; + } + + // 6. DELETE with a body + if (verb === 'delete' && op.requestBody && !method.config?.requestBodyTranslate) { + method.config = { ...(method.config || {}), requestBodyTranslate: { algorithm: 'naive' } }; + counts.naiveDeletes++; + } + } + } +} + +// 5. scalar-list responses: a collection read whose rows are scalars +// ({functionIds: [string]} on /v2/nvcf/functions/ids, a bare array of +// registry names on /v2/nvcf/recognized-registries) projects nothing; a +// response transform re-shapes it into rows with one column named after +// the singular of the array key (function_ids -> function_id, registries +// -> registry). Bare arrays arrive already wrapped by normalize (a text +// template over the raw body); that wrap is replaced by a json template +// ranging over the parsed array. +const snake = (s) => s.replace(/([a-z0-9])([A-Z])/g, '$1_$2').replace(/[-\s]+/g, '_').toLowerCase(); +const singularOf = (s) => s.replace(/ies$/, 'y').replace(/ses$/, 's').replace(/s$/, ''); +for (const [f, doc] of docs) { + const schemas = doc.components?.schemas || {}; + const resolve = (s) => { let cur = s; for (let i = 0; i < 10 && cur?.$ref; i++) cur = schemas[cur.$ref.split('/').pop()]; return cur; }; + for (const [resourceName, resource] of Object.entries(doc.components?.['x-stackQL-resources'] || {})) { + for (const [methodName, method] of Object.entries(resource.methods || {})) { + if (!/^list/.test(methodName) || !method.response?.objectKey) continue; + const [pathKey, verb] = decodeOperationRef(method.operation.$ref); + const op = doc.paths?.[pathKey]?.[verb]; + const content = op?.responses?.[method.response.openAPIDocKey]?.content?.['application/json']; + const top = resolve(method.response.schema_override || content?.schema); + const key = method.response.objectKey.replace(/^\$\./, ''); + const arr = resolve(top?.properties?.[key]); + const items = arr?.type === 'array' ? resolve(arr.items) : null; + if (!items || !['string', 'integer', 'number', 'boolean'].includes(items.type)) continue; + const wrappedBareArray = !!method.response.transform; // normalize's bare-array wrap + const rowsKey = snake(key); + const col = singularOf(rowsKey); + const wrapperName = `Stackql${resourceName.replace(/(^|_)([a-z])/g, (m, p, c) => c.toUpperCase())}Rows`; + schemas[wrapperName] = { + type: 'object', + properties: { [rowsKey]: { type: 'array', items: { type: 'object', properties: { [col]: { type: items.type, description: items.description || arr.description || `${col} value` } } } } } + }; + const source = wrappedBareArray ? '.' : `.${key}`; + method.response = { + mediaType: 'application/json', + openAPIDocKey: method.response.openAPIDocKey, + overrideMediaType: 'application/json', + schema_override: { $ref: `#/components/schemas/${wrapperName}` }, + objectKey: `$.${rowsKey}`, + transform: { + type: 'golang_template_json_v0.3.0', + body: `{"${rowsKey}":[{{ range $i, $v := ${source} }}{{ if $i }},{{ end }}{"${col}":{{ toJson $v }}}{{ end }}]}` + } + }; + counts.scalarLists++; + } + } +} + +// 7. invocation status: GET /v2/nvcf/pexec/status/{request_id} returns the +// function's own response body (arbitrary JSON, 200 when complete, 202 +// while pending; NVCF-STATUS / NVCF-REQID headers carry the state). The spec +// types it as a byte buffer, which projects as nonsense columns. Wrap the +// raw body into one row with a `response` column (the k8s pods_log +// precedent: text template, wrapper schema, objectKey). +const invDoc = docs.get('nvcf_invocation.yaml'); +const invStatus = invDoc?.components?.['x-stackQL-resources']?.invocation_status?.methods?.get; +if (!invStatus) { + errors.push('nvcf_invocation.yaml: expected method invocation_status.get is missing'); +} else { + invDoc.components.schemas.StackqlInvocationResult = { + type: 'object', + properties: { + results: { + type: 'array', + items: { type: 'object', properties: { response: { type: 'string', description: 'The invocation response body as returned by the function (JSON text); empty while the request is still pending (HTTP 202)' } } } + } + } + }; + invStatus.response = { + mediaType: 'application/json', + openAPIDocKey: '200', + overrideMediaType: 'application/json', + schema_override: { $ref: '#/components/schemas/StackqlInvocationResult' }, + objectKey: '$.results', + transform: { type: 'golang_template_text_v0.3.0', body: '{"results": [{"response": {{ toJson . }}}]}' } + }; + counts.scalarLists++; +} + +if (errors.length > 0) { + console.error(`FAILED with ${errors.length} error(s), nothing written:`); + for (const e of errors) console.error(` ${e}`); + process.exit(1); +} +for (const [f, d] of docs) fs.writeFileSync(path.join(servicesDir, f), yaml.dump(d, { lineWidth: -1, noRefs: true })); +console.log(`post_process: ${counts.orgPaths} org-scoped path items on server templates (${ORG_VAR} via ${ORG_ENV}), ${counts.rootPaths} root path items across ${docs.size} services`); +console.log(`post_process: request.nativeCasing camel x${counts.casing.camel}, kebab x${counts.casing.kebab}; page_number pagination on ${counts.pagination} methods (LIMIT -> page-size on ${counts.pushdown}); ${counts.opaqueBodies} opaque JSON body wrapper(s); ${counts.scalarLists} scalar-list transform(s); naive body translation on ${counts.naiveDeletes} DELETE method(s)`); diff --git a/provider-dev/scripts/pre_normalize.mjs b/provider-dev/scripts/pre_normalize.mjs new file mode 100644 index 0000000..4afac0d --- /dev/null +++ b/provider-dev/scripts/pre_normalize.mjs @@ -0,0 +1,109 @@ +#!/usr/bin/env node + +// nvidia-specific spec adjustments applied to provider-dev/source (the +// split service specs) before the generic `npm run normalize` pass. +// Idempotent, deterministic; fails without writing on any rule error. +// +// Rules: +// lower-type-arrays OpenAPI 3.1 `type: [T, "null"]` -> `type: T` + +// `nullable: true` (the NVCF and models definitions +// are 3.1; the normalize flatten and the +// relational analyzer expect a single type - +// clickhouse precedent) +// lower-exclusive-bounds 3.1 numeric `exclusiveMinimum: N` / +// `exclusiveMaximum: N` -> the 3.0 boolean form +// strip-ssa-scopes drop the `security` / `x-ssa-scopes` blocks the +// models definition carries per operation +// (internal scope hints; the provider's bearer +// auth is configured at the provider level and +// the analyzer must not treat them as a scheme) +// +// Usage: node provider-dev/scripts/pre_normalize.mjs [--dry-run] + +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import yaml from 'js-yaml'; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..'); +const sourceDir = path.join(repoRoot, 'provider-dev', 'source'); +const dryRun = process.argv.includes('--dry-run'); + +function walk(node, fn, depth = 0) { + if (!node || typeof node !== 'object' || depth > 200) return; + fn(node); + for (const v of Object.values(node)) walk(v, fn, depth + 1); +} + +const RULES = [ + { + name: 'lower-type-arrays', + apply(doc) { + let n = 0; + walk(doc, (node) => { + if (Array.isArray(node.type)) { + const hadNull = node.type.includes('null'); + const types = node.type.filter((t) => t !== 'null'); + if (types.length === 0) throw new Error(`type array ${JSON.stringify(node.type)} has no non-null member`); + // a value that may be a JSON string or a structured value + // (["string", "object"] on configuration blobs) is carried as a + // string column - the JSON text serves both (k8s IntOrString rule) + node.type = types.includes('string') ? 'string' : types[0]; + if (types.length > 1 && !types.includes('string')) node.description = `${node.description ? node.description + ' ' : ''}(one of ${types.join(' | ')})`; + if (hadNull) node.nullable = true; + n++; + } + }); + return n; + } + }, + { + name: 'lower-exclusive-bounds', + apply(doc) { + let n = 0; + walk(doc, (node) => { + for (const [key, min] of [['exclusiveMinimum', 'minimum'], ['exclusiveMaximum', 'maximum']]) { + if (typeof node[key] === 'number') { + node[min] = node[key]; + node[key] = true; + n++; + } + } + }); + return n; + } + }, + { + name: 'strip-ssa-scopes', + apply(doc) { + let n = 0; + for (const item of Object.values(doc.paths || {})) { + for (const op of Object.values(item)) { + if (!op || typeof op !== 'object') continue; + if (op['x-ssa-scopes'] !== undefined) { delete op['x-ssa-scopes']; n++; } + if (Array.isArray(op.security) && op.security.some((s) => s && Object.keys(s).includes('ssa'))) { delete op.security; n++; } + } + } + return n; + } + } +]; + +const files = fs.readdirSync(sourceDir).filter((f) => f.endsWith('.yaml')).sort(); +if (files.length === 0) { + console.error(`Error: no service specs in ${sourceDir} - run the split first`); + process.exit(1); +} +const results = new Map(); +for (const f of files) { + const doc = yaml.load(fs.readFileSync(path.join(sourceDir, f), 'utf8')); + const counts = {}; + for (const rule of RULES) counts[rule.name] = rule.apply(doc); + results.set(f, { doc, counts }); +} +for (const [f, { doc, counts }] of results) { + const touched = Object.values(counts).some((c) => c > 0); + if (touched && !dryRun) fs.writeFileSync(path.join(sourceDir, f), yaml.dump(doc, { lineWidth: -1, noRefs: true })); + console.log(`${f}: ${Object.entries(counts).map(([k, v]) => `${k}=${v}`).join(', ')}${touched ? (dryRun ? ' (dry run)' : ' (written)') : ''}`); +} +console.log(`pre_normalize: ${files.length} service spec(s) processed`); diff --git a/provider-dev/scripts/service_rules.mjs b/provider-dev/scripts/service_rules.mjs new file mode 100644 index 0000000..6d8cdf6 --- /dev/null +++ b/provider-dev/scripts/service_rules.mjs @@ -0,0 +1,28 @@ +// Service assignment rules for bin/split.mjs, driven by the generated +// endpoint inventory (provider-dev/config/endpoint_inventory.csv - the +// single source of truth produced by build_inventory.mjs; regenerate the +// inventory to change assignments, never edit the CSV). +// +// serviceFor(sourceName, pathKey, operationId, tags, ctx) returns the +// service name for an operation, or null to skip it (skip-reason-coded +// operations in the inventory). Throws on any operation the inventory does +// not know - split must never silently pass an unclassified operation. + +import { loadInventory } from './lib/inventory.mjs'; + +const { byOp } = loadInventory(); + +export function serviceFor(sourceName, pathKey, operationId, tags, ctx) { + const file = `${sourceName}.json`; + if (!operationId) { + throw new Error(`operation without operationId cannot be assigned: ${file} ${pathKey}`); + } + const row = byOp.get(`${file}::${operationId}`); + if (!row) { + throw new Error(`operation not in the endpoint inventory: ${file} ${pathKey} (${operationId}) - regenerate the inventory`); + } + if (row.path !== pathKey) { + throw new Error(`inventory path mismatch for ${file} ${operationId}: spec has ${pathKey}, inventory has ${row.path} - regenerate the inventory`); + } + return row.service || null; +} diff --git a/provider-dev/source-graphql/manifest.yaml b/provider-dev/source-graphql/manifest.yaml new file mode 100644 index 0000000..a6f8aa6 --- /dev/null +++ b/provider-dev/source-graphql/manifest.yaml @@ -0,0 +1,32 @@ +# GraphQL operations merged into the generated nvidia provider by +# provider-dev/scripts/graphql_merge.mjs (the last step of `make generate`). +# With `ops` empty the merge is a no-op - delete this directory if the vendor +# has no GraphQL API. +# +# Each entry under `ops` names a fragment in ./ops/ with: service, resource, +# title, description, parameters (plain OpenAPI parameter objects), selection +# (a plain dotted JSONPath to the row array, no [*]), optional cursor +# (strategy: cursor_after | page_info | keyset | offset, jsonPath, +# terminateOnJsonPath, format, pageSize), optional transform (a response +# transform that runs before the selection), query (Go template: every WHERE +# parameter is {{ .name }}, the cursor is spliced at {{ .cursor }}, a pushed +# LIMIT arrives as {{ .limit }}) and rowSchema (so DESCRIBE and the docs show +# real columns). GraphQL string literals must not contain newlines or +# backslashes. See the stackql-provider-development skill, graphql-merge.md, +# for a worked example (GitHub star history with page_info paging). +# +# Selection criteria: surfaces that are GraphQL-only (no REST equivalent) or +# where GraphQL returns data the REST endpoint cannot. + +graphql_url: https://api.example.com/graphql +docs_url: https://docs.example.com/graphql + +# Services that exist only because of GraphQL (created from scratch by the +# merge). Ops targeting an existing REST service are added alongside it. +services: {} + # discussions: + # title: discussions API + # description: Discussions for a repository - GraphQL only. + +ops: [] + # - ops/star_history.yaml diff --git a/provider-dev/source-graphql/ops/.gitkeep b/provider-dev/source-graphql/ops/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/provider-dev/source/catalog.yaml b/provider-dev/source/catalog.yaml new file mode 100644 index 0000000..3876f21 --- /dev/null +++ b/provider-dev/source/catalog.yaml @@ -0,0 +1,8114 @@ +openapi: 3.1.0 +info: + title: NVIDIA NGC Catalog + description: 'The public NGC catalog: guest reads of models, resources, recipes, helm charts, collections and generic artifacts, plus the GPU and cloud service provider catalogs (no organization scope; public artifacts read without credentials).' + version: 0.0.1-SNAPSHOT +paths: + /v2/collections: + get: + description: List public collections + operationId: listPublicCollections + parameters: + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List public collections + tags: + - Collections + /v2/collections/{org_name}/{collection_name}: + get: + description: Get collection details in org as guest + operationId: getCollectionInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get collection in org as guest + tags: + - Collections + /v2/collections/{org_name}/{collection_name}/artifacts/{artifact_type}: + get: + description: List collection artifacts the user can access in the specified org as guest + operationId: listCollectionArtifactsInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Order by + in: query + name: order-by + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List collection artifacts in org as guest + tags: + - Collections + /v2/collections/{org_name}/{team_name}/{collection_name}: + get: + description: Get collection details in team as guest + operationId: getCollectionInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get collection in team as guest + tags: + - Collections + /v2/collections/{org_name}/{team_name}/{collection_name}/artifacts/{artifact_type}: + get: + description: List collection artifacts the user can access in the specified org and team as guest + operationId: listCollectionArtifactsInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Order by + in: query + name: order-by + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List collection artifacts in org and team as guest + tags: + - Collections + /v2/csps: + get: + description: List cloud service providers + operationId: listCloudServiceProviders + parameters: + - description: Page size + in: query + name: page-size + required: false + schema: + maximum: 5000 + minimum: 1 + type: integer + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + maximum: 10000 + minimum: 0 + type: integer + - description: Include disabled + in: query + name: include-disabled + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CloudServiceProviderListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List cloud service providers + tags: + - Cloud service providers + post: + description: Create cloud service provider + operationId: createCloudServiceProvider + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CloudServiceProviderCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CloudServiceProvider' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create cloud service provider + tags: + - Cloud service providers + parameters: [] + /v2/csps/{artifact_type}/{org_name}/{artifact_name}/deployments/params: + get: + description: List public artifact deployment parameters in org + operationId: listPublicArtifactDeploymentParametersInOrg + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Inherit CSP parameters + in: query + name: inherit-csp-parameters + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List public artifact deployment parameters in org + tags: + - Artifact deployment parameters + /v2/csps/{artifact_type}/{org_name}/{artifact_name}/deployments/{csp_name}/params: + get: + description: Get public artifact deployment parameters details in org + operationId: getPublicArtifactDeploymentParametersInOrg + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Inherit CSP parameters + in: query + name: inherit-csp-parameters + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get public artifact deployment parameters details in org + tags: + - Artifact deployment parameters + /v2/csps/{artifact_type}/{org_name}/{team_name}/{artifact_name}/deployments/params: + get: + description: List public artifact deployment parameters in team + operationId: listPublicArtifactDeploymentParametersInTeam + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Inherit CSP parameters + in: query + name: inherit-csp-parameters + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List public artifact deployment parameters in team + tags: + - Artifact deployment parameters + /v2/csps/{artifact_type}/{org_name}/{team_name}/{artifact_name}/deployments/{csp_name}/params: + get: + description: Get public artifact deployment parameters details in team + operationId: getPublicArtifactDeploymentParametersInTeam + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Inherit CSP parameters + in: query + name: inherit-csp-parameters + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get public artifact deployment parameters details in team + tags: + - Artifact deployment parameters + /v2/csps/{csp_name}: + get: + description: Get cloud service provider details + operationId: getCloudServiceProviderDetails + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CloudServiceProvider' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get cloud service provider details + tags: + - Cloud service providers + patch: + description: Update cloud service provider + operationId: updateCloudServiceProvider + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CloudServiceProviderUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CloudServiceProvider' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update cloud service provider + tags: + - Cloud service providers + delete: + description: Delete cloud service provider + operationId: deleteCloudServiceProvider + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete cloud service provider + tags: + - Cloud service providers + /v2/csps/{csp_name}/deployments/params: + get: + description: Get cloud service provider deployment parameters details + operationId: getCloudServiceProviderDeploymentParametersDetails + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get cloud service provider deployment parameters details + tags: + - Cloud service provider deployment parameters + post: + description: Create cloud service provider deployment parameters + operationId: createCloudServiceProviderDeploymentParameters + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create cloud service provider deployment parameters + tags: + - Cloud service provider deployment parameters + patch: + description: Update cloud service provider deployment parameters + operationId: updateCloudServiceProviderDeploymentParameters + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update cloud service provider deployment parameters + tags: + - Cloud service provider deployment parameters + delete: + description: Delete cloud service provider deployment parameters + operationId: deleteCloudServiceProviderDeploymentParameters + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete cloud service provider deployment parameters + tags: + - Cloud service provider deployment parameters + /v2/csps/{csp_name}/deployments/params/meta: + get: + description: Get cloud service provider deployment parameters meta details + operationId: getCloudServiceProviderDeploymentParametersMetaDetails + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersMeta' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get cloud service provider deployment parameters meta details + tags: + - Deployment parameters meta + post: + description: Create cloud service provider deployment parameters meta + operationId: createCloudServiceProviderDeploymentParametersMeta + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersMetaCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersMeta' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create cloud service provider deployment parameters meta + tags: + - Deployment parameters meta + patch: + description: Update cloud service provider deployment parameters meta + operationId: updateCloudServiceProviderDeploymentParametersMeta + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersMetaUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersMeta' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update cloud service provider deployment parameters meta + tags: + - Deployment parameters meta + delete: + description: Delete cloud service provider deployment parameters meta + operationId: deleteCloudServiceProviderDeploymentParametersMeta + parameters: + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete cloud service provider deployment parameters meta + tags: + - Deployment parameters meta + /v2/gpus: + get: + description: Get all GPU by PCI records + operationId: getGpus + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GetGpusResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get all GPUs + tags: + - GpuByPci + parameters: [] + x-stackql-bare-array-wrap: + wrapperKey: gpus + wrapperName: GetGpusResponse + mediaType: application/json + scalar: false + /v2/gpus/pci-device-id/{pci_device_id}: + get: + description: Get all GPU records matching the given PCI Device ID + operationId: getGpuByPciDeviceId + parameters: + - description: PCI Device ID + in: path + name: pci_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GetGpuByPciDeviceIdResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get GPU by PCI Device ID + tags: + - GpuByPci + x-stackql-bare-array-wrap: + wrapperKey: gpu_by_pci_device_id + wrapperName: GetGpuByPciDeviceIdResponse + mediaType: application/json + scalar: false + post: + description: Create a new GPU record using only PCI Device ID (pciVendorId and pciSubsystemDeviceId default to 'unknown') + operationId: createGpuByPciDeviceId + parameters: + - description: PCI Device ID + in: path + name: pci_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GpuByPciCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GpuByPciResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create GPU by PCI Device ID only + tags: + - GpuByPci + patch: + description: Partially update a GPU record using only PCI Device ID (pciVendorId and pciSubsystemDeviceId default to 'unknown'). Only provided fields will be updated. + operationId: updateGpuByPciDeviceId + parameters: + - description: PCI Device ID + in: path + name: pci_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GpuByPciUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GpuByPciResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Partially update GPU by PCI Device ID only + tags: + - GpuByPci + delete: + description: Delete a GPU record using only PCI Device ID (pciVendorId and pciSubsystemDeviceId default to 'unknown') + operationId: deleteGpuByPciDeviceId + parameters: + - description: PCI Device ID + in: path + name: pci_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete GPU by PCI Device ID only + tags: + - GpuByPci + /v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id}: + get: + description: Get all GPUs by PCI records matching the given PCI Device ID and Vendor ID + operationId: getGpuByPciDeviceIdVendorId + parameters: + - description: PCI Device ID + in: path + name: pci_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + - description: PCI Vendor ID + in: path + name: pci_vendor_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GetGpuByPciDeviceIdVendorIdResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get GPUs by PCI Device ID and Vendor ID + tags: + - GpuByPci + x-stackql-bare-array-wrap: + wrapperKey: gpu_by_pci_device_id_vendor_id + wrapperName: GetGpuByPciDeviceIdVendorIdResponse + mediaType: application/json + scalar: false + /v2/gpus/pci-device-id/{pci_device_id}/pci-vendor-id/{pci_vendor_id}/pci-subsystem-device-id/{pci_subsystem_device_id}: + get: + description: Get a single GPU record matching the full PCI composite key + operationId: getGpuByPciDeviceIdVendorIdSubsystemDeviceId + parameters: + - description: PCI Device ID + in: path + name: pci_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + - description: PCI Vendor ID + in: path + name: pci_vendor_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + - description: PCI Subsystem Device ID + in: path + name: pci_subsystem_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GpuByPciResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get GPU by PCI Device ID, Vendor ID, and Subsystem Device ID + tags: + - GpuByPci + post: + description: Create a new GPU record using the full PCI composite key + operationId: createGpuByPciFullKey + parameters: + - description: PCI Device ID + in: path + name: pci_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + - description: PCI Vendor ID + in: path + name: pci_vendor_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + - description: PCI Subsystem Device ID + in: path + name: pci_subsystem_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GpuByPciCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GpuByPciResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create GPU by PCI Device ID, Vendor ID, and Subsystem Device ID + tags: + - GpuByPci + patch: + description: Partially update a GPU record matching the full PCI composite key. Only provided fields will be updated. + operationId: updateGpuByPciFullKey + parameters: + - description: PCI Device ID + in: path + name: pci_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + - description: PCI Vendor ID + in: path + name: pci_vendor_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + - description: PCI Subsystem Device ID + in: path + name: pci_subsystem_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GpuByPciUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GpuByPciResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Partially update GPU by PCI Device ID, Vendor ID, and Subsystem Device ID + tags: + - GpuByPci + delete: + description: Delete a GPU record matching the full PCI composite key + operationId: deleteGpuByPciFullKey + parameters: + - description: PCI Device ID + in: path + name: pci_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + - description: PCI Vendor ID + in: path + name: pci_vendor_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + - description: PCI Subsystem Device ID + in: path + name: pci_subsystem_device_id + required: true + schema: + format: UTF-8 + maxLength: 32 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete GPU by PCI Device ID, Vendor ID, and Subsystem Device ID + tags: + - GpuByPci + /v2/helm-charts/{org_name}/{artifact_name}/versions: + get: + description: List chart versions in org as guest + operationId: listHelmChartVersionsInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List chart versions in org as guest + tags: + - Helm Charts + /v2/helm-charts/{org_name}/{artifact_name}/versions/{version_id}: + get: + description: Get chart version in org as guest + operationId: getHelmChartVersionInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get chart version in org as guest + tags: + - Helm Charts + /v2/helm-charts/{org_name}/{team_name}/{artifact_name}/versions: + get: + description: List chart versions in team as guest + operationId: listHelmChartVersionsInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List chart versions in team as guest + tags: + - Helm Charts + /v2/helm-charts/{org_name}/{team_name}/{artifact_name}/versions/{version_id}: + get: + description: Get chart version in team as guest + operationId: getHelmChartVersionInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get chart version in team as guest + tags: + - Helm Charts + /v2/models: + get: + description: This operation lists public models. + operationId: listPublicModels + parameters: + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List public models + tags: + - Models + /v2/models/{org_name}/{model_name}: + get: + description: This operation gets info of a model in the org as guest. + operationId: getModelInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get model in org as guest + tags: + - Models + /v2/models/{org_name}/{model_name}/versions: + get: + description: List model versions in org as guest + operationId: listModelVersionsInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List model versions in org as guest + tags: + - Model Version + /v2/models/{org_name}/{model_name}/versions/{version_id}: + get: + description: Get model version in org as guest + operationId: getModelVersionInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get model version in org as guest + tags: + - Model Version + /v2/models/{org_name}/{model_name}/versions/{version_id}/files: + get: + description: List files of the model version in org as guest + operationId: listModeFilesInOrgAsGuest_2 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List model files in org as guest + tags: + - Model Version Files + /v2/models/{org_name}/{team_name}/{model_name}: + get: + description: This operation gets info of a model in the org/team as guest. + operationId: getModelInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get model in team as guest + tags: + - Models + /v2/models/{org_name}/{team_name}/{model_name}/versions: + get: + description: List model versions in team as guest + operationId: listModelVersionsInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List model versions in team as guest + tags: + - Model Version + /v2/models/{org_name}/{team_name}/{model_name}/versions/{version_id}: + get: + description: Get model version in team as guest + operationId: getModelVersionInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get model version in team as guest + tags: + - Model Version + /v2/models/{org_name}/{team_name}/{model_name}/versions/{version_id}/files: + get: + description: List files of the model version in team as guest + operationId: listModeFilesInTeamAsGuest_2 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List model files in team as guest + tags: + - Model Version Files + /v2/nim/{team}/{nim_name}/{tag}/metadata: + post: + description: | + Registers NIM profile metadata for the given team, NIM name, and tag. This is a placeholder that validates the supplied profiles and echoes the provided fields back to the caller. + SSA: requires the following scope `createNimMetadata` + operationId: createNimMetadata + parameters: + - description: Team name + in: path + name: team + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + pattern: ^[a-zA-Z0-9._-]+$ + type: string + - description: NIM name + in: path + name: nim_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + pattern: ^[a-zA-Z0-9._-]+$ + type: string + - description: NIM tag + in: path + name: tag + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + pattern: ^[a-zA-Z0-9._-]+$ + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NimManifestMetadataRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/NimManifestMetadataResponse' + description: Created + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create NIM metadata + tags: + - NIM Metadata + /v2/recipes: + get: + description: List public recipes + operationId: listPublicRecipes + parameters: + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List public recipes + tags: + - Resources + /v2/recipes/{org_name}/{recipe_name}: + get: + description: Get recipe details in org as guest + operationId: getRecipeInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe in org as guest + tags: + - Resources + /v2/recipes/{org_name}/{recipe_name}/versions: + get: + description: List recipe versions in org as guest + operationId: listRecipeVersionsInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe versions in org as guest + tags: + - Resource Versions + /v2/recipes/{org_name}/{recipe_name}/versions/{version_id}: + get: + description: Get recipe version in org as guest + operationId: getRecipeVersionInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe version in org as guest + tags: + - Resource Versions + /v2/recipes/{org_name}/{recipe_name}/versions/{version_id}/files: + get: + description: List files of the recipe version in org as guest + operationId: listModeFilesInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe files in org as guest + tags: + - Resource Version Files endpoints + /v2/recipes/{org_name}/{team_name}/{recipe_name}: + get: + description: Get recipe details in team as guest + operationId: getRecipeInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe in team as guest + tags: + - Resources + /v2/recipes/{org_name}/{team_name}/{recipe_name}/versions: + get: + description: List recipe versions in team as guest + operationId: listRecipeVersionsInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe versions in team as guest + tags: + - Resource Versions + /v2/recipes/{org_name}/{team_name}/{recipe_name}/versions/{version_id}: + get: + description: Get recipe version in team as guest + operationId: getRecipeVersionInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe version in team as guest + tags: + - Resource Versions + /v2/recipes/{org_name}/{team_name}/{recipe_name}/versions/{version_id}/files: + get: + description: List files of the recipe version in team as guest + operationId: listModeFilesInTeamAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe files in team as guest + tags: + - Resource Version Files endpoints + /v2/resources: + get: + description: List public recipes + operationId: listPublicRecipes_1 + parameters: + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List public recipes + tags: + - Resources + /v2/resources/{org_name}/{recipe_name}: + get: + description: Get recipe details in org as guest + operationId: getRecipeInOrgAsGuest_1 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe in org as guest + tags: + - Resources + /v2/resources/{org_name}/{recipe_name}/versions: + get: + description: List recipe versions in org as guest + operationId: listRecipeVersionsInOrgAsGuest_1 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe versions in org as guest + tags: + - Resource Versions + /v2/resources/{org_name}/{recipe_name}/versions/{version_id}: + get: + description: Get recipe version in org as guest + operationId: getRecipeVersionInOrgAsGuest_1 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe version in org as guest + tags: + - Resource Versions + /v2/resources/{org_name}/{recipe_name}/versions/{version_id}/files: + get: + description: List files of the recipe version in org as guest + operationId: listModeFilesInOrgAsGuest_1 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe files in org as guest + tags: + - Resource Version Files endpoints + /v2/resources/{org_name}/{team_name}/{recipe_name}: + get: + description: Get recipe details in team as guest + operationId: getRecipeInTeamAsGuest_1 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe in team as guest + tags: + - Resources + /v2/resources/{org_name}/{team_name}/{recipe_name}/versions: + get: + description: List recipe versions in team as guest + operationId: listRecipeVersionsInTeamAsGuest_1 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe versions in team as guest + tags: + - Resource Versions + /v2/resources/{org_name}/{team_name}/{recipe_name}/versions/{version_id}: + get: + description: Get recipe version in team as guest + operationId: getRecipeVersionInTeamAsGuest_1 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe version in team as guest + tags: + - Resource Versions + /v2/resources/{org_name}/{team_name}/{recipe_name}/versions/{version_id}/files: + get: + description: List files of the recipe version in team as guest + operationId: listModeFilesInTeamAsGuest_1 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe files in team as guest + tags: + - Resource Version Files endpoints + /v2/{artifact_type}: + get: + description: List public artifacts + operationId: listPublicArtifacts + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List public artifacts + tags: + - Artifacts + /v2/{artifact_type}/{org_name}/{artifact_name}: + get: + description: Get artifact details in org as guest + operationId: getArtifactInOrgAsGuest + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get artifact in org as guest + tags: + - Artifacts + /v2/{artifact_type}/{org_name}/{artifact_name}/versions/{version_id}/files: + get: + description: List files of the artifact version in org as guest + operationId: listArtifactFilesInOrgAsGuest + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifact files in org as guest + tags: + - Artifact Version Files + /v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}: + get: + description: Get artifact details in team as guest + operationId: getChartInTeamAsGuest + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get artifact in team as guest + tags: + - Artifacts + /v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/versions/{version_id}/files: + get: + description: List files of the artifact version in team as guest + operationId: listArtifactFilesInTeamAsGuest + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifact files in team as guest + tags: + - Artifact Version Files + /v2/{artifact_type}/{org_name}/{artifact_name}/spec: + get: + description: Get AI Playground for public artifactType + operationId: getPublicModelArtifactsSpec + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - models + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Model name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get AI Playground for public artifactType + tags: + - AIPlayground + /v2/{artifact_type}/{org_name}/{team_name}/{artifact_name}/spec: + get: + description: Get AI Playground for public artifactType + operationId: getPublicModelArtifactsSpec_1 + parameters: + - description: Organization name + in: path + name: org_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - models + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Model name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get AI Playground for public artifactType + tags: + - AIPlayground +components: + schemas: + CollectionListResponse: + description: Response to list collections request + properties: + collections: + items: + $ref: '#/components/schemas/Collection' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + Response: + properties: + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + CollectionResponse: + description: Response to create collection request + properties: + collection: + $ref: '#/components/schemas/Collection' + description: Collection object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ArtifactListResponse: + description: Response to list artifacts request + properties: + artifacts: + items: + $ref: '#/components/schemas/Artifact' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + CloudServiceProviderListResponse: + description: Response to list Cloud Service Providers request + properties: + cloudServiceProviders: + items: + $ref: '#/components/schemas/CloudServiceProvider' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + CloudServiceProviderCreateRequest: + description: Request to create a new Cloud Service Provider + properties: + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + description: + description: Description of the Cloud Service Provider + type: string + displayName: + description: Display name of the Cloud Service Provider + type: string + isEnabled: + description: Determines if this Cloud Service Provider is enabled + type: boolean + labels: + items: + type: string + type: array + logo: + description: URL for the logo image + type: string + name: + description: Unique name of the Cloud Service Provider + type: string + required: + - name + type: object + CloudServiceProvider: + description: Cloud Service Provider object + properties: + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the Cloud Service Provider + type: string + displayName: + description: Display name of the Cloud Service Provider + type: string + isDeployable: + description: Determines if this Cloud Service Provider can be used to deploy artifacts + type: boolean + isEnabled: + description: Determines if this Cloud Service Provider is enabled + type: boolean + labels: + items: + type: string + type: array + logo: + description: URL for the logo image + type: string + name: + description: Unique name of the Cloud Service Provider + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + required: + - name + type: object + DeploymentParametersListResponse: + description: Response to list deployment parameters request + properties: + artifact: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + csp: + description: Cloud Service Provider name + type: string + deploymentParameters: + items: + $ref: '#/components/schemas/DeploymentParameters' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + DeploymentParameters: + description: Deployment Artifact Parameters object + properties: + container: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + cpu: + $ref: '#/components/schemas/DeploymentCpuParameters' + description: Deployment CPU Parameters object + csp: + description: Cloud Service Provider name + type: string + gpu: + $ref: '#/components/schemas/DeploymentGpuParameters' + description: Deployment GPU Parameters object + memory: + $ref: '#/components/schemas/DeploymentMemoryParameters' + description: Deployment Memory Parameters object + model: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + resource: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + storage: + $ref: '#/components/schemas/DeploymentStorageParameters' + description: Deployment Storage Parameters object + type: object + CloudServiceProviderUpdateRequest: + description: Request to update existing Cloud Service Provider + properties: + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + description: + description: Description of the Cloud Service Provider + type: string + displayName: + description: Display name of the Cloud Service Provider + type: string + isEnabled: + description: Determines if this Cloud Service Provider is enabled + type: boolean + labels: + items: + type: string + type: array + logo: + description: URL for the logo image + type: string + type: object + DeploymentParametersUpdateRequest: + description: Request to update existing deployment parameters + properties: + container: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + cpu: + $ref: '#/components/schemas/DeploymentCpuParameters' + description: Deployment CPU Parameters object + gpu: + $ref: '#/components/schemas/DeploymentGpuParameters' + description: Deployment GPU Parameters object + memory: + $ref: '#/components/schemas/DeploymentMemoryParameters' + description: Deployment Memory Parameters object + model: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + resource: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + storage: + $ref: '#/components/schemas/DeploymentStorageParameters' + description: Deployment Storage Parameters object + type: object + DeploymentParametersCreateRequest: + description: Request to create a new deployment parameters + properties: + container: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + cpu: + $ref: '#/components/schemas/DeploymentCpuParameters' + description: Deployment CPU Parameters object + gpu: + $ref: '#/components/schemas/DeploymentGpuParameters' + description: Deployment GPU Parameters object + memory: + $ref: '#/components/schemas/DeploymentMemoryParameters' + description: Deployment Memory Parameters object + model: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + resource: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + storage: + $ref: '#/components/schemas/DeploymentStorageParameters' + description: Deployment Storage Parameters object + type: object + DeploymentParametersMeta: + description: Cloud Service Provider Deployment Parameters object + properties: + cpu: + $ref: '#/components/schemas/DeploymentCpuParametersMeta' + description: Cloud Service Provider Deployment CPU Parameters object + csp: + description: Cloud Service Provider name + type: string + gpu: + $ref: '#/components/schemas/DeploymentGpuParametersMeta' + description: Cloud Service Provider Deployment GPU Parameters object + memory: + $ref: '#/components/schemas/DeploymentMemoryParametersMeta' + description: Cloud Service Provider Deployment Memory Parameters object + storage: + $ref: '#/components/schemas/DeploymentStorageParametersMeta' + description: Cloud Service Provider Deployment Storage Parameters object + type: object + DeploymentParametersMetaUpdateRequest: + description: Properties for the cloud service provider deployment parameters meta to create + properties: + cpu: + $ref: '#/components/schemas/DeploymentCpuParametersMeta' + description: Cloud Service Provider Deployment CPU Parameters object + gpu: + $ref: '#/components/schemas/DeploymentGpuParametersMeta' + description: Cloud Service Provider Deployment GPU Parameters object + memory: + $ref: '#/components/schemas/DeploymentMemoryParametersMeta' + description: Cloud Service Provider Deployment Memory Parameters object + storage: + $ref: '#/components/schemas/DeploymentStorageParametersMeta' + description: Cloud Service Provider Deployment Storage Parameters object + type: object + DeploymentParametersMetaCreateRequest: + description: Properties for the cloud service provider deployment parameters meta to create + properties: + cpu: + $ref: '#/components/schemas/DeploymentCpuParametersMeta' + description: Cloud Service Provider Deployment CPU Parameters object + gpu: + $ref: '#/components/schemas/DeploymentGpuParametersMeta' + description: Cloud Service Provider Deployment GPU Parameters object + memory: + $ref: '#/components/schemas/DeploymentMemoryParametersMeta' + description: Cloud Service Provider Deployment Memory Parameters object + storage: + $ref: '#/components/schemas/DeploymentStorageParametersMeta' + description: Cloud Service Provider Deployment Storage Parameters object + required: + - gpu + - storage + type: object + GpuByPciResponse: + description: Response for GPU by PCI ID lookup + properties: + createdAt: + description: Creation timestamp + format: date-time + type: string + cudaMajorVersion: + description: CUDA major version + type: string + cudaMinorVersion: + description: CUDA minor version + type: string + displayName: + description: Display name for the GPU + type: string + formFactor: + description: GPU form factor + type: string + gpuCounts: + items: + format: int32 + maximum: 255 + minimum: 0 + type: integer + type: array + uniqueItems: true + labelName: + description: Label name for the GPU + type: string + memorySizeGb: + description: Memory size in GB (smallint range) + format: int32 + maximum: 32767 + minimum: 0 + type: integer + pciDeviceId: + description: PCI Device ID + type: string + pciSubsystemDeviceId: + description: PCI Subsystem Device ID + type: string + pciVendorId: + description: PCI Vendor ID + type: string + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + updatedAt: + description: Last update timestamp + format: date-time + type: string + required: + - displayName + - pciDeviceId + type: object + GpuByPciUpdateRequest: + description: GPU by PCI update properties + properties: + cudaMajorVersion: + description: CUDA major version + type: string + cudaMinorVersion: + description: CUDA minor version + type: string + displayName: + description: Display name for the GPU + type: string + formFactor: + description: GPU form factor + type: string + gpuCounts: + items: + format: int32 + maximum: 255 + minimum: 0 + type: integer + type: array + uniqueItems: true + labelName: + description: Label name for the GPU + type: string + memorySizeGb: + description: Memory size in GB (smallint range) + format: int32 + maximum: 32767 + minimum: 0 + type: integer + type: object + GpuByPciCreateRequest: + description: GPU by PCI properties + properties: + cudaMajorVersion: + description: CUDA major version + type: string + cudaMinorVersion: + description: CUDA minor version + type: string + displayName: + description: Display name for the GPU + type: string + formFactor: + description: GPU form factor + type: string + gpuCounts: + items: + format: int32 + maximum: 255 + minimum: 0 + type: integer + type: array + uniqueItems: true + labelName: + description: Label name for the GPU + type: string + memorySizeGb: + description: Memory size in GB (smallint range) + format: int32 + maximum: 32767 + minimum: 0 + type: integer + pciDeviceId: + description: PCI Device ID + type: string + pciSubsystemDeviceId: + description: PCI Subsystem Device ID + type: string + pciVendorId: + description: PCI Vendor ID + type: string + required: + - displayName + - pciDeviceId + type: object + ArtifactVersionListResponse: + description: Response to list artifact versions request + properties: + artifact: + $ref: '#/components/schemas/Artifact' + description: Artifact object + artifactVersions: + items: + $ref: '#/components/schemas/ArtifactVersion' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ArtifactVersionResponse: + description: Response to artifact version request + properties: + artifact: + $ref: '#/components/schemas/Artifact' + description: Artifact object + artifactVersion: + $ref: '#/components/schemas/ArtifactVersion' + description: Artifact version object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ModelListResponse: + description: Response to list models request + properties: + models: + items: + $ref: '#/components/schemas/Model' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ModelResponse: + description: Response to create model request + properties: + model: + $ref: '#/components/schemas/Model' + description: Model object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ModelVersionListResponse: + description: Response to list model versions request + properties: + model: + $ref: '#/components/schemas/Model' + description: Model object + modelVersions: + items: + $ref: '#/components/schemas/ModelVersion' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ModelVersionResponse: + description: Response to create a model version request + properties: + model: + $ref: '#/components/schemas/Model' + description: Model object + modelVersion: + $ref: '#/components/schemas/ModelVersion' + description: Model version object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ModelVersionFileListResponse: + description: Response to list files for model version request + properties: + model: + $ref: '#/components/schemas/Model' + description: Model object + modelFiles: + items: + $ref: '#/components/schemas/ModelFile' + type: array + modelVersion: + $ref: '#/components/schemas/ModelVersion' + description: Model version object + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + NimManifestMetadataRequest: + description: NIM profile metadata + properties: + profiles: + items: + $ref: '#/components/schemas/NimProfile' + type: array + type: object + NimManifestMetadataResponse: + properties: + profiles: + items: + $ref: '#/components/schemas/NimProfile' + type: array + type: object + RecipeListResponse: + description: Response to list recipes request + properties: + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + recipes: + items: + $ref: '#/components/schemas/Recipe' + type: array + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + RecipeResponse: + description: Response to recipe request + properties: + recipe: + $ref: '#/components/schemas/Recipe' + description: Recipe object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + RecipeVersionListResponse: + description: Response to list recipe versions request + properties: + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + recipe: + $ref: '#/components/schemas/Recipe' + description: Recipe object + recipeVersions: + items: + $ref: '#/components/schemas/RecipeVersion' + type: array + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + RecipeVersionResponse: + description: Response to recipe version request + properties: + recipe: + $ref: '#/components/schemas/Recipe' + description: Recipe object + recipeVersion: + $ref: '#/components/schemas/RecipeVersion' + description: Recipe version object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + RecipeVersionFileListResponse: + description: Response to list files for recipe version request + properties: + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + recipe: + $ref: '#/components/schemas/Recipe' + description: Recipe object + recipeFiles: + items: + $ref: '#/components/schemas/RecipeFile' + type: array + recipeVersion: + $ref: '#/components/schemas/RecipeVersion' + description: Recipe version object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ArtifactResponse: + description: Response to artifact request + properties: + artifact: + $ref: '#/components/schemas/Artifact' + description: Artifact object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ArtifactVersionFileListResponse: + description: Response to list files for artifact version request + properties: + artifact: + $ref: '#/components/schemas/Artifact' + description: Artifact object + artifactFiles: + items: + $ref: '#/components/schemas/File' + type: array + artifactVersion: + $ref: '#/components/schemas/ArtifactVersion' + description: Artifact version object + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + AIPlaygroundResponse: + description: Request to fetch an AI Playground config + properties: + artifactName: + description: Unique name of the model + type: string + artifactType: + description: ArtifactTypeEnum of the artifact + type: string + attributes: + description: Metadata json string + type: string + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + namespace: + description: org/team of the model + type: string + nvcfFunctionId: + description: NVCF function id for the model playground + type: string + nvcfInferencePath: + description: NVCF inference path (invocation route) for the model playground + type: string + openAPISpec: + description: OpenAPI specification for this model + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + type: object + Collection: + description: Collection object + properties: + accessType: + enum: + - LISTED + - EXCLUSIVE + - NOT_LISTED + type: string + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + builtBy: + description: Organization that built the collection + type: string + canGuestDownload: + description: Indicates if a guest user can download + type: boolean + category: + enum: + - HEALTHCARE + - SMART_CITIES + - RETAIL + - MANUFACTURING + - SUPERCOMPUTING + - ROBOTICS + - AUTOMOTIVE + - TELECOMMUNICATIONS + - FINANCE + - OIL_AND_GAS + - NATURAL_LANGUAGE_PROCESSING + - AUTOMATIC_SPEECH_RECOGNITION + - INTELLIGENT_VIDEO_ANALYTICS + - OBJECT_DETECTION + - IMAGE_CLASSIFICATION + - ANNOTATION + - IMAGE_SYNTHESIS + - MACHINE_LEARNING + - DEEP_LEARNING + - INFRASTRUCTURE + - HIGH_PERFORMANCE_COMPUTING + - WINDOWS_RTX_ACCELERATED_MODELS + - BEGINNER + - ADVANCED + type: string + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the collection + type: string + displayName: + description: Display name + type: string + isPublic: + description: Determines if this collection is publicly accessible + type: boolean + isReadOnly: + description: indicate if current user has read only permissions (deprecated) + type: boolean + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + logo: + description: URL for the logo image + type: string + name: + description: Unique name of the collection + type: string + orgName: + description: Name of the org that the collection belongs to + type: string + ownerName: + description: Name of the user who owns this version + type: string + policyLabels: + items: + type: string + type: array + productNames: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + publisher: + description: Organization that published this collection + type: string + shortDescription: + description: Short description of the collection + type: string + size: + description: Total count of collection items + format: int64 + type: integer + teamName: + description: Name of the team that the collection belongs to + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + required: + - category + type: object + PaginationInfo: + description: Pagination Information + properties: + index: + description: Page index of results + format: int32 + type: integer + nextPage: + description: Serialized pointer to the next results page. Should be used for fetching next page. Can be empty + type: string + size: + description: Number of results in page + format: int32 + type: integer + totalPages: + description: Total number of pages available + format: int64 + type: integer + totalResults: + description: Total number of results available + format: int64 + type: integer + type: object + RequestStatus: + description: Request status information + properties: + requestId: + description: Request ID + type: string + serverId: + description: Server ID + type: string + statusCode: + description: Describes response status reported by the server. + enum: + - UNKNOWN + - SUCCESS + - UNAUTHORIZED + - PAYMENT_REQUIRED + - FORBIDDEN + - TIMEOUT + - EXISTS + - NOT_FOUND + - INTERNAL_ERROR + - INVALID_REQUEST + - INVALID_REQUEST_VERSION + - INVALID_REQUEST_DATA + - METHOD_NOT_ALLOWED + - CONFLICT + - UNPROCESSABLE_ENTITY + - TOO_MANY_REQUESTS + - INSUFFICIENT_STORAGE + - SERVICE_UNAVAILABLE + type: string + statusDescription: + description: Status description + type: string + type: object + Artifact: + description: Artifact object + properties: + accessType: + enum: + - LISTED + - EXCLUSIVE + - NOT_LISTED + type: string + artifactType: + description: Artifact type + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + type: string + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + bias: + description: Text describing bias in the artifact + type: string + builtBy: + description: Organization that built the helm chart + type: string + canGuestDownload: + description: Indicates if a guest user can download + type: boolean + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the helm chart + type: string + displayName: + description: Display name + type: string + encryptionKeyId: + description: ID of the customer managed encryption key associated with this artifact + type: string + explainability: + description: Text describing the explainability for this artifact + type: string + hasSignedVersion: + description: Indicates if the artifact has any signed versions + type: boolean + isFavourite: + description: Flag indicating if helm chart is user's favorite + type: boolean + isPublic: + description: Determines if this helm chart is publicly accessible + type: boolean + isReadOnly: + description: indicate if current user has read only permissions (deprecated) + type: boolean + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + latestVersionId: + description: ID of the latest version + type: string + latestVersionSizeInBytes: + description: Size of the latest version in bytes + format: int64 + type: integer + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + type: string + name: + description: Unique name of the helm chart + type: string + orgName: + description: Name of the org that the helm chart belongs to + type: string + ownerName: + description: Name of the user who owns this version + type: string + policyLabels: + items: + type: string + type: array + privacy: + description: Text describing the privacy for this artifact + type: string + productNames: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + publisher: + description: Organization that published this helm chart + type: string + safetyAndSecurity: + description: Text for describing the safety and security in the artifact + type: string + shortDescription: + description: Short description of the helm chart + type: string + teamName: + description: Name of the team that the helm chart belongs to + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + type: object + ArtifactAttribute: + description: Attribute on the artifact + properties: + key: + maxLength: 255 + pattern: '[a-zA-Z0-9]+' + type: string + value: + maxLength: 255 + type: string + type: object + DeploymentArtifactParameters: + description: Deployment Artifact Parameters object + properties: + artifactType: + description: Artifact type + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + type: string + displayName: + description: Display name of the artifact + type: string + filePath: + description: Path to a file in an artifact version + type: string + name: + description: Unique name of the artifact + type: string + orgName: + description: Name of the org that the artifact belongs to + type: string + teamName: + description: Name of the team that the artifact belongs to + type: string + versionId: + description: ID of the version or tag + type: string + required: + - name + - orgName + type: object + DeploymentCpuParameters: + description: Deployment CPU Parameters object + properties: + count: + description: Total count of CPUs + format: int64 + type: integer + type: object + DeploymentGpuParameters: + description: Deployment GPU Parameters object + properties: + count: + description: Total count of GPUs + format: int64 + type: integer + type: + description: GPU Type + type: string + type: object + DeploymentMemoryParameters: + description: Deployment Memory Parameters object + properties: + capacityInGB: + description: Capacity in GB + format: int64 + type: integer + type: object + DeploymentStorageParameters: + description: Deployment Storage Parameters object + properties: + capacityInGB: + description: Capacity in GB + format: int64 + type: integer + type: object + DeploymentCpuParametersMeta: + description: Cloud Service Provider Deployment CPU Parameters object + properties: + count: + $ref: '#/components/schemas/CountableResource' + description: Countable Resource object + required: + - count + type: object + DeploymentGpuParametersMeta: + description: Cloud Service Provider Deployment GPU Parameters object + properties: + count: + $ref: '#/components/schemas/CountableResource' + description: Countable Resource object + type: + $ref: '#/components/schemas/EnumerableResource' + description: Enumerable Resource object + required: + - type + type: object + DeploymentMemoryParametersMeta: + description: Cloud Service Provider Deployment Memory Parameters object + properties: + capacityInGB: + $ref: '#/components/schemas/CountableResource' + description: Countable Resource object + required: + - capacityInGB + type: object + DeploymentStorageParametersMeta: + description: Cloud Service Provider Deployment Storage Parameters object + properties: + capacityInGB: + $ref: '#/components/schemas/CountableResource' + description: Countable Resource object + required: + - capacityInGB + type: object + ArtifactVersion: + description: Artifact version object + properties: + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + createdByUser: + description: Id of the user who created this version + type: string + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + customMetrics: + items: + $ref: '#/components/schemas/CustomMetricGroup' + type: array + description: + description: Description of the version + type: string + id: + description: Unique ID of the version + type: string + isSigned: + description: Indicates if the version is signed + type: boolean + malwareScanDate: + description: Scan date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + malwareScanStatus: + description: Malware scan status + enum: + - NOT_SCANNED + - IN_PROGRESS + - CLEAN + - SUSPICIOUS + - FAILED + - MALICIOUS + type: string + policy: + items: + type: string + type: array + releaseType: + description: Release type enum for the artifact version in the product lifecycle. + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + type: string + status: + description: Version status + enum: + - UPLOAD_PENDING + - UPLOAD_COMPLETE + type: string + storageVersion: + description: The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. + type: string + totalFileCount: + description: Total file count + format: int64 + type: integer + totalSizeInBytes: + description: Total size of the version in bytes + format: int64 + type: integer + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + type: object + Model: + description: Model object + properties: + accessType: + enum: + - LISTED + - EXCLUSIVE + - NOT_LISTED + type: string + application: + description: Application of the model + type: string + bias: + description: Text describing bias in the model + type: string + builtBy: + description: organization that built the repository + type: string + canGuestDownload: + description: Indicates if a guest user can download + type: boolean + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the model + type: string + displayName: + description: Display name + type: string + encryptionKeyId: + description: ID of the customer managed encryption key associated with this artifact + type: string + explainability: + description: Text describing explainability for this model + type: string + framework: + description: Framework used to train this model + type: string + hasPlayground: + description: indicate if the Model has AI Playground configured + type: boolean + hasSignedVersion: + description: Indicates if the model has any signed versions + type: boolean + isFavourite: + description: Flag indicating if model is user's favorite + type: boolean + isPlaygroundEnabled: + description: indicate if AI Playground is enabled in the catalog + type: boolean + isPublic: + description: Determines if model is publicly accessible + type: boolean + isReadOnly: + description: indicate if current user has read only permissions (deprecated) + type: boolean + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + latestVersionGpuModel: + description: GPU model and memory used for the latest version + type: string + latestVersionId: + description: 'Deprecated: Please use latestVersionIdStr instead. ID of the latest version' + format: int64 + type: integer + latestVersionIdStr: + description: ID of the latest version + type: string + latestVersionSizeInBytes: + description: Size of the latest version in bytes + format: int64 + type: integer + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + type: string + modelFormat: + description: Format of the model + type: string + name: + description: Unique name of the model + type: string + orgName: + description: Name of the org that the model belongs to + type: string + ownerName: + description: Name of model's owner + type: string + policyLabels: + items: + type: string + type: array + precision: + description: Precision this model was trained with + type: string + privacy: + description: Text describing the privacy for this model + type: string + productNames: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + publicDatasetUsed: + $ref: '#/components/schemas/Dataset' + publisher: + description: organization that published the repository + type: string + safetyAndSecurity: + description: Text for describing the safety and security in the model + type: string + shortDescription: + description: Short description of the model + type: string + teamName: + description: Name of the team that the model belongs to + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + versions: + items: + type: string + type: array + type: object + ModelVersion: + description: Model version object + properties: + accuracyReached: + description: Accuracy this model reached + format: float + type: number + batchSize: + description: Batch size this model was trained with + format: int64 + type: integer + createdByUser: + description: Id of the user who created this model + type: string + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + customMetrics: + items: + $ref: '#/components/schemas/CustomMetricGroup' + type: array + description: + description: Description of the model version + type: string + gpuModel: + description: GPU model and memory + type: string + id: + description: 'Deprecated: Please use versionId instead. Unique ID of the version' + format: int64 + type: integer + isSigned: + description: Indicates if the version is signed + type: boolean + malwareScanDate: + description: Scan date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + malwareScanStatus: + description: Malware scan status + enum: + - NOT_SCANNED + - IN_PROGRESS + - CLEAN + - SUSPICIOUS + - FAILED + - MALICIOUS + type: string + memoryFootprint: + description: Model size/memory footprint for inference + type: string + numberOfEpochs: + description: Number of epochs this model trained + format: int64 + type: integer + nvcfContainerConfiguration: + $ref: '#/components/schemas/NvcfContainerConfiguration' + description: NVCF container configuration parameters + nvcfDeploymentSpecification: + $ref: '#/components/schemas/NvcfDeploymentSpecification' + description: NVCF deployment specification + otherContents: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + ownerName: + description: Name of the user who owns this version + type: string + policy: + items: + type: string + type: array + releaseType: + description: Release type enum for the artifact version in the product lifecycle. + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + type: string + status: + description: Version status + enum: + - UPLOAD_PENDING + - UPLOAD_COMPLETE + type: string + storageVersion: + description: The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. + type: string + totalFileCount: + description: Total file count + format: int64 + type: integer + totalSizeInBytes: + description: Total size of the model in bytes + format: int64 + type: integer + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + versionId: + description: Unique version id. Please use this instead of 'id' + maxLength: 255 + type: string + type: object + ModelFile: + description: Model file object + properties: + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the file + type: string + path: + description: Relative file path from the root of the model + maxLength: 1023 + minLength: 1 + type: string + sha256_base64: + description: Base64 encoded sha256 hash of the artifact file + type: string + sizeInBytes: + description: Size of the file in bytes + format: int64 + minimum: 0 + type: integer + type: object + NimProfile: + properties: + buildable_profile: + type: boolean + checksum: + type: string + feat_lora: + type: boolean + form_factor: + type: string + gpu: + type: string + gpu_device: + type: string + inference_backend: + type: string + latency: + additionalProperties: {} + type: object + min_vram_per_device_gb: + format: double + type: number + pipeline_parallel_size: + format: int32 + type: integer + precision: + type: string + profile_id: + type: string + tensor_parallel_size: + format: int32 + type: integer + workspace_hash: + type: string + type: object + Recipe: + description: Recipe object + properties: + accessType: + enum: + - LISTED + - EXCLUSIVE + - NOT_LISTED + type: string + advanced: + description: Text for describing advanced information + type: string + application: + enum: + - CLASSIFICATION + - OBJECT_DETECTION + - SEGMENTATION + - TRANSLATION + - TEXT_TO_SPEECH + - RECOMMENDER + - SENTIMENT + - NLP + - KUBEFLOW_PIPELINE + - OTHER + - SPEAKER_VERIFICATION + - PUNCTUATION_AND_CAPITALIZATION + - DIALOG_STATE_TRACKING + - SPEAKER_DIARIZATION + - SPEAKER_RECOGNITION + - SPEECH_SYNTHESIS + - VOICE_ACTIVITY_DETECTION + - SPEECH_RECOGNITION + - LANGUAGE_MODELING + - NAMED_ENTITY_RECOGNITION + - TEXT_CLASSIFICATION + - TEXT_PROCESSING + - QUESTION_ANSWERING + - CONTENT_GENERATION + type: string + builtBy: + description: Organization that built the recipe + type: string + canGuestDownload: + description: Indicates if a guest user can download + type: boolean + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the recipe + type: string + displayName: + description: Display name + type: string + hasSignedVersion: + description: Indicates if the recipe has any signed versions + type: boolean + isFavourite: + description: Flag indicating if recipe is user's favorite + type: boolean + isPublic: + description: Determines if this recipe is publicly accessible + type: boolean + isReadOnly: + description: indicate if current user has read only permissions (deprecated) + type: boolean + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + latestVersionId: + description: 'Deprecated: Please use latestVersionIdStr instead. ID of the latest version' + format: int64 + type: integer + latestVersionIdStr: + description: ID of the latest version + type: string + latestVersionSizeInBytes: + description: Size of the latest version in bytes + format: int64 + type: integer + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + type: string + modelFormat: + description: Format of the model this recipe produces + type: string + name: + description: Unique name of the recipe + type: string + orgName: + description: Name of the org that the recipe belongs to + type: string + performance: + description: Text describing performance of the recipe results + type: string + policyLabels: + items: + type: string + type: array + precision: + enum: + - FP16 + - FP32 + - INT8 + - FPBOTH + - OTHER + - ALL + type: string + productNames: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + publicDatasetUsed: + $ref: '#/components/schemas/Dataset' + publisher: + description: Organization that published this recipe + type: string + quickStartGuide: + description: Text with a guide to getting started + type: string + relatedModels: + items: + $ref: '#/components/schemas/Model' + type: array + setup: + description: Text describing recipe setup + type: string + shortDescription: + description: Short description of the recipe + type: string + teamName: + description: Name of the team that the recipe belongs to + type: string + trainingFramework: + enum: + - TensorFlow + - Caffe2 + - CNTK + - Torch + - PyTorch + - MXNet + - Keras + - Other + - TransferLearningToolkit + - TensorFlow2 + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + type: object + RecipeVersion: + description: Recipe version object + properties: + accuracyReached: + description: Accuracy this recipe reached + format: float + type: number + batchSize: + description: Batch size this recipe was trained with + format: int64 + type: integer + createdByUser: + description: Id of the user who created this recipe + type: string + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + customMetrics: + items: + $ref: '#/components/schemas/CustomMetricGroup' + type: array + description: + description: Description of the recipe version + type: string + gpuModel: + description: GPU model and memory + type: string + id: + description: 'Deprecated: Please use versionId instead. Unique ID of the version' + format: int64 + type: integer + isSigned: + description: Indicates if the version is signed + type: boolean + malwareScanDate: + description: Scan date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + malwareScanStatus: + description: Malware scan status + enum: + - NOT_SCANNED + - IN_PROGRESS + - CLEAN + - SUSPICIOUS + - FAILED + - MALICIOUS + type: string + memoryFootprint: + description: recipe size/memory footprint for inference + type: string + numberOfEpochs: + description: Number of epochs this recipe trained + format: int64 + type: integer + otherContents: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + performance: + description: Text describing performance of the recipe results + type: string + policy: + items: + type: string + type: array + quickStartGuide: + description: Text with a guide to getting started + type: string + releaseNotes: + description: Text describing this release + type: string + releaseType: + description: Release type enum for the artifact version in the product lifecycle. + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + type: string + setup: + description: Text describing recipe setup + type: string + status: + description: Version status + enum: + - UPLOAD_PENDING + - UPLOAD_COMPLETE + type: string + storageVersion: + description: The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. + type: string + totalFileCount: + description: Total file count + format: int64 + type: integer + totalSizeInBytes: + description: Total size of the recipe in bytes + format: int64 + type: integer + versionId: + description: Unique version id. Please use this instead of 'id' + maxLength: 255 + type: string + type: object + RecipeFile: + description: Recipe file object + properties: + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the file + type: string + path: + description: Relative file path from the root of the recipe + maxLength: 1023 + minLength: 1 + type: string + sha256_base64: + description: Base64 encoded sha256 hash of the artifact file + type: string + sizeInBytes: + description: Size of the file in bytes + format: int64 + minimum: 0 + type: integer + type: object + File: + description: File object + properties: + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the file + type: string + path: + description: Relative file path from the root of the object + maxLength: 1023 + minLength: 1 + type: string + sizeInBytes: + description: Size of the file in bytes + format: int64 + minimum: 0 + type: integer + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + type: object + LicenseMetadata: + description: License information for the artifact + properties: + configuredLicenseTerms: + $ref: '#/components/schemas/ConfiguredLicenseTerms' + description: License information for the artifact + governingTerms: + description: Comprehensive terms and links related to the license + example: <p><strong>GOVERNING HOSTING TERMS:</strong> Use of the model is governed by the <a href='...'>NVIDIA Open Model Agreement</a>.</p> + maxLength: 1000 + pattern: ^[\s\S]*$ + type: string + licenseId: + description: License ID + example: NVIDIA proprietary + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + licenseVersion: + description: License version ID + example: v1.0 + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + needsAcceptance: + description: Indicator if user needs to accept this license + type: boolean + required: + - governingTerms + - licenseId + - licenseVersion + type: object + CountableResource: + description: Countable Resource object + properties: + defaultValue: + description: 'Deprecated: Default value. Please use actual CloudServiceProvider values instead' + format: int64 + type: integer + maxValue: + description: Maximum value + format: int64 + type: integer + minValue: + description: Minimum value + format: int64 + type: integer + type: object + EnumerableResource: + description: Enumerable Resource object + properties: + defaultItemName: + description: 'Deprecated: Default item name. Please use actual CloudServiceProvider values instead' + type: string + items: + items: + $ref: '#/components/schemas/EnumerableResourceItem' + type: array + type: object + CustomMetricGroup: + description: Defines the group of custom metrics. + properties: + attributes: + items: + $ref: '#/components/schemas/CustomMetric' + type: array + name: + maxLength: 255 + type: string + type: object + Dataset: + properties: + license: + description: License of the dataset + maxLength: 255 + type: string + link: + description: Link to the dataset + maxLength: 255 + type: string + name: + description: Name of the dataset + maxLength: 255 + type: string + type: object + NvcfContainerConfiguration: + description: NVCF container configuration parameters + properties: + apiBodyFormat: + description: API body format + type: string + containerArgs: + description: Container arguments + type: string + containerEnvironment: + items: + $ref: '#/components/schemas/MetaData' + type: array + containerImage: + description: Container Image + type: string + healthUri: + description: Health URI + type: string + inferencePort: + description: Inference port + type: string + inferenceUrl: + description: Inference url + type: string + models: + items: + $ref: '#/components/schemas/NvcfContainerModel' + type: array + type: object + NvcfDeploymentSpecification: + description: NVCF deployment specification + properties: + gpuCount: + description: GPU count + format: int32 + type: integer + gpuType: + description: GPU type + type: string + instanceType: + description: Instance type + type: string + maxConcurrency: + description: Maximum concurrency + format: int32 + type: integer + type: object + ConfiguredLicenseTerms: + description: License information for the artifact + properties: + download: + $ref: '#/components/schemas/ConfiguredLicenseTerm' + description: License information for the artifact + hosting: + $ref: '#/components/schemas/ConfiguredLicenseTerm' + description: License information for the artifact + type: object + EnumerableResourceItem: + description: Enumerable Resource Item object + properties: + displayName: + description: Display name + type: string + logo: + description: Logo URL + type: string + name: + description: Name + type: string + type: object + CustomMetric: + description: Custom metrics + properties: + key: + maxLength: 255 + type: string + value: + maxLength: 255 + type: string + type: object + MetaData: + properties: + key: + maxLength: 255 + type: string + value: + maxLength: 255 + type: string + type: object + NvcfContainerModel: + description: Models version object metadata + properties: + name: + description: Model name + type: string + uri: + description: Model URI + type: string + version: + description: Model version + type: string + type: object + ConfiguredLicenseTerm: + description: License information for the artifact + properties: + artifactType: + description: Artifact type + example: model + maxLength: 15 + pattern: ^[\s\S]*$ + type: string + generatedHtml: + description: Generated html + example: <p><strong>GOVERNING HOSTING TERMS:</strong> ...</p> + maxLength: 9999 + pattern: ^[\s\S]*$ + type: string + tags: + items: + $ref: '#/components/schemas/LicenseTag' + type: array + type: object + LicenseTag: + description: License tag information for individual term + properties: + category: + description: Category of the tag + example: terms + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + key: + description: Key identifier for the tag + example: nv-open-model + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + label: + description: License Label + example: NVIDIA Open Model Agreement + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + tag: + description: License tag name + example: Model Agreement + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + url: + description: Link to the hosted license + example: https://www.nvidia.com/.../nvidia-open-model-agreement/ + maxLength: 1000 + pattern: ^[\s\S]*$ + type: string + type: object + GetGpusResponse: + type: object + properties: + gpus: + type: array + items: + $ref: '#/components/schemas/GpuByPciResponse' + GetGpuByPciDeviceIdResponse: + type: object + properties: + gpu_by_pci_device_id: + type: array + items: + $ref: '#/components/schemas/GpuByPciResponse' + GetGpuByPciDeviceIdVendorIdResponse: + type: object + properties: + gpu_by_pci_device_id_vendor_id: + type: array + items: + $ref: '#/components/schemas/GpuByPciResponse' +servers: + - url: https://api.ngc.nvidia.com diff --git a/provider-dev/source/nvcf_deployments.yaml b/provider-dev/source/nvcf_deployments.yaml new file mode 100644 index 0000000..22e5f8f --- /dev/null +++ b/provider-dev/source/nvcf_deployments.yaml @@ -0,0 +1,2034 @@ +openapi: 3.1.0 +info: + title: NVIDIA Cloud Functions - Deployments + description: 'NVCF deployments and GPU specifications, cluster groups and GPU inventory, registry credentials and telemetry endpoints (source: the published NVCF OpenAPI specification; served from api.ngc.nvidia.com).' + version: 2.261.2 +paths: + /v2/nvcf/clusterGroups: + get: + deprecated: true + description: 'Lists Cluster Groups for the current account. The response includes cluster groups defined specifically in the current account and publicly available cluster groups such as GFN, OCI, etc. Requires a bearer token with ''list_cluster_groups'' scope in HTTP Authorization header. ' + operationId: getClusterGroups + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ClusterGroupsResponse' + description: OK + summary: List Cluster Groups + tags: + - Cluster Groups and GPUs + parameters: [] + /v2/nvcf/deployments/functions/{function_id}/versions/{function_version_id}: + get: + description: 'Allows Account Admins to retrieve the deployment details of the specified function version. Access to this endpoint mandates a bearer token with ''deploy_function'' scope in the HTTP Authorization header. ' + operationId: getFunctionDeployment + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version id + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentResponse' + description: OK + summary: Get Function Deployment Details + tags: + - Function Deployment + post: + description: 'Initiates deployment for the specified function version. Upon invocation of this endpoint, the function''s status transitions to ''DEPLOYING''. If the specified function version is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with ''deploy_function'' scope in the HTTP Authorization header. ' + operationId: createFunctionDeployment + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version id + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FunctionDeploymentRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentResponse' + description: OK + summary: Deploy Function + tags: + - Function Deployment + put: + deprecated: true + description: ' Deprecated and will be removed soon. Use a single GPU specification update method instead. Updates the deployment specs of the specified function version. It''s important to note that GPU type and backend configurations cannot be modified through this endpoint. If the specified function is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with ''deploy_function'' scope in the HTTP Authorization header. ' + operationId: updateFunctionDeployment + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version id + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateFunctionDeploymentRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentResponse' + description: OK + summary: Update Function Deployment + tags: + - Function Deployment + delete: + description: 'Deletes the deployment associated with the specified function. Upon deletion, any active instances will be terminated, and the function''s status will transition to ''INACTIVE''. To undeploy a function version gracefully, specify ''graceful=true'' query parameter, allowing current tasks to complete before terminating the instances. If the specified function version is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with ''deploy_function'' scope in the HTTP Authorization header. ' + operationId: deleteFunctionDeployment + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version id + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Query param to deactivate function for graceful shutdown + in: query + name: graceful + required: false + schema: + default: false + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FunctionResponse' + description: OK + summary: Delete Function Deployment + tags: + - Function Deployment + /v2/nvcf/deployments/{deployment_id}: + get: + description: 'Allows Account Admins to retrieve the deployment details of the specified deployment id. Access to this endpoint mandates a bearer token with ''deploy_function'' scope in the HTTP Authorization header. ' + operationId: getFunctionDeployment_1 + parameters: + - description: Deployment id + in: path + name: deployment_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentResponse' + description: OK + summary: Get Function Deployment Details + tags: + - Function Deployment + /v2/nvcf/deployments/{deployment_id}/gpu-specifications/{gpu_spec_id}: + patch: + description: ' Updates the GPU specification of the specified function version''s deployment. It''s important to note that GPU type and backend configurations cannot be modified through this endpoint. If the specified function is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with ''deploy_function'' scope in the HTTP Authorization header. ' + operationId: updateGpuSpecification + parameters: + - description: Deployment id + in: path + name: deployment_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: GPU Specification id + in: path + name: gpu_spec_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateGpuSpecificationRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateGpuSpecificationResponse' + description: OK + summary: Update the specified GPU specification under the specified deployment + tags: + - Function Deployment + /v2/nvcf/recognized-registries: + get: + description: 'Lists all the registries that are recognized by NVCF. Only when a registry is recognized by NVCF that the users can add its credential to their account and then use it to create functions. Requires a bearer token in the HTTP Authorization header with ''manage_registries'' scope. ' + operationId: getRecognizedRegistries + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecognizedRegistriesResponse' + description: OK + summary: List Recognized Registries + tags: + - Registry Credential Management + parameters: [] + /v2/nvcf/registry-credentials: + get: + description: 'Lists all the registry credentials associated with the authenticated NVIDIA Cloud Account. Requires a bearer token in the HTTP Authorization header with ''manage_registries'' scope. ' + operationId: listRegistryCredentialDetails + parameters: + - description: | + Filters registry credentials using the specified 'artifactType' query param. + in: query + name: artifactType + required: false + schema: + default: + - CONTAINER + - HELM + - MODEL + - RESOURCE + items: + enum: + - CONTAINER + - HELM + - MODEL + - RESOURCE + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + - description: | + Filters registry credentials using the specified 'provisionedBy' query param. + in: query + name: provisionedBy + required: false + schema: + default: + - SYSTEM + - USER + items: + enum: + - SYSTEM + - USER + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListRegistryCredentialDetailsResponse' + description: OK + summary: List Registry Credentials + tags: + - Registry Credential Management + post: + description: 'Adds a new registry credential to the account. Requires a bearer token in the HTTP Authorization header with ''manage_registries'' scope. ' + operationId: addRegistryCredential + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AddRegistryCredentialRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RegistryCredentialDetailsResponse' + description: OK + summary: Add new registry credential to the account + tags: + - Registry Credential Management + parameters: [] + /v2/nvcf/registry-credentials/{registry_credential_id}: + get: + description: 'Retrieves detailed information of the specified registry credential associated with the authenticated NVIDIA Cloud Account. Requires a bearer token in the HTTP Authorization header with ''manage_registries'' scope. ' + operationId: getRegistryCredentialDetails + parameters: + - description: Registry Credential id + in: path + name: registry_credential_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RegistryCredentialDetailsResponse' + description: OK + summary: Get Registry Credential Details + tags: + - Registry Credential Management + patch: + description: 'Updates the secret and/or the artifact types associated with the specified registry credential. Artifact types specified in the request body are added to the set of artifact types that already exist for the specified registry credential. Requires a bearer token in the HTTP Authorization header with ''manage_registries'' scope. ' + operationId: updateRegistryCredential + parameters: + - description: Registry Credential id + in: path + name: registry_credential_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateRegistryCredentialRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RegistryCredentialDetailsResponse' + description: OK + summary: Update registry credential + tags: + - Registry Credential Management + delete: + description: 'Deletes the specified registry credential associated with the authenticated NVIDIA Cloud Account. Requires a bearer token in the HTTP Authorization header with ''manage_registries'' scope. ' + operationId: deleteRegistryCredential + parameters: + - description: Registry Credential id + in: path + name: registry_credential_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '204': + description: No Content + summary: Delete Registry Credential + tags: + - Registry Credential Management + /v2/nvcf/secrets/telemetries/{telemetry_id}: + put: + description: 'Updates secret for the specific telemetry Id within NVIDIA Cloud Account. This endpoint requires a bearer token with ''update_secrets'' scope in the HTTP Authorization header. ' + operationId: updateTelemetrySecret + parameters: + - description: NVIDIA Cloud Account Id + in: path + name: telemetry_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateTelemetrySecretRequest' + required: true + responses: + '204': + description: No Content + summary: Update secret for a specific Telemetry Id + tags: + - User Secret Management + /v2/nvcf/telemetries: + get: + description: 'Retrieves telemetry configurations for a specific NVIDIA Cloud Account. requires a bearer token with ''manage_telemetries'' scope in the HTTP Authorization header. ' + operationId: getTelemetriesByAccount + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListTelemetryResponse' + description: OK + summary: List Telemetries + tags: + - Telemetry Management + parameters: [] + post: + description: 'Creates telemetry endpoints for NVIDIA Cloud Accounts. requires a bearer token with ''manage_telemetries'' scope in the HTTP Authorization header. ' + operationId: createTelemetry + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TelemetryRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TelemetryResponse' + description: OK + summary: Create Telemetry + tags: + - Telemetry Management + parameters: [] + /v2/nvcf/telemetries/{telemetry_id}: + get: + description: 'Retrieves the details of a specific telemetry configuration by its ID. requires a bearer token with ''manage_telemetries'' scope in the HTTP Authorization header. ' + operationId: getTelemetry + parameters: + - in: path + name: telemetry_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TelemetryResponse' + description: OK + summary: Get Telemetry Details + tags: + - Telemetry Management + delete: + description: 'Deletes a specific telemetry configuration for a NVIDIA Cloud Account. requires a bearer token with ''manage_telemetries'' scope in the HTTP Authorization header. If there any functions that are dependent on the Telemetry that is being deleted, then response with 400 status code will be returned. ' + operationId: deleteTelemetry + parameters: + - in: path + name: telemetry_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '204': + description: No Content + '400': + description: Cannot be deleted till Functions depend on it + summary: Delete Telemetry + tags: + - Telemetry Management +components: + schemas: + ClusterGroupsResponse: + properties: + clusterGroups: + items: + $ref: '#/components/schemas/ClusterGroup' + maxItems: 2147483647 + minItems: 0 + type: array + type: object + FunctionResponse: + description: Response body with function details + properties: + function: + $ref: '#/components/schemas/FunctionDto' + description: Function details + required: + - function + type: object + DeploymentResponse: + description: Function Deployment Response + properties: + deployment: + $ref: '#/components/schemas/FunctionDeploymentDto' + description: Deployment details + required: + - deployment + type: object + FunctionDeploymentRequest: + description: Request to deploy a function + properties: + deploymentSpecifications: + description: GPU specs with GPU, instance-type, clusters etc. details + items: + $ref: '#/components/schemas/GpuSpecificationDto' + maxItems: 2147483647 + minItems: 1 + type: array + required: + - deploymentSpecifications + type: object + UpdateFunctionDeploymentRequest: + description: Request to update function deployment spec + properties: + deploymentSpecifications: + description: Deployment specs with GPU, instance-type, etc. details for update request + items: + $ref: '#/components/schemas/UpdateGpuSpecificationDto' + maxItems: 2147483647 + minItems: 1 + type: array + required: + - deploymentSpecifications + type: object + UpdateGpuSpecificationRequest: + description: Request to update single function deployment GPU Specification + properties: + autoscalingConfiguration: + $ref: '#/components/schemas/AutoscalingConfigurationDto' + description: Customizable Autoscaling configuration + autoscalingConfigurationPolicy: + description: 'Autoscaling configuration policy. CUSTOM_CONFIGURATION (default): use the provided autoscalingConfig. PLATFORM_CONFIGURATION: remove custom config and use platform defaults.' + enum: + - CUSTOM_CONFIGURATION + - PLATFORM_CONFIGURATION + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + maxInstances: + description: Maximum number of instances for the deployment + format: int32 + maximum: 2147483647 + minimum: 0 + type: integer + nullable: true + minInstances: + description: Minimum number of instances for the deployment + format: int32 + maximum: 2147483647 + minimum: 0 + type: integer + nullable: true + type: object + UpdateGpuSpecificationResponse: + description: Update GPU Specification Response + properties: + gpuSpecification: + $ref: '#/components/schemas/GpuSpecificationDto' + description: GPU Specification details + required: + - gpuSpecification + type: object + RecognizedRegistriesResponse: + description: Response body for recognized registries endpoint + properties: + recognizedRegistries: + additionalProperties: + items: + additionalProperties: + type: string + type: object + type: array + description: Recognized registries + type: object + type: object + ListRegistryCredentialDetailsResponse: + description: Response body containing list of registry credentials + properties: + registryCredentials: + description: List of registry credentials + items: + $ref: '#/components/schemas/RegistryCredentialDetailsDto' + maxItems: 2147483647 + minItems: 0 + type: array + required: + - registryCredentials + type: object + AddRegistryCredentialRequest: + description: Request body to add a registry credential to an account + properties: + artifactTypes: + description: Artifact types that can be retrieved using this credential + items: + enum: + - CONTAINER + - HELM + - MODEL + - RESOURCE + type: string + maxItems: 2147483647 + minItems: 1 + type: array + uniqueItems: true + description: + description: Optional registry credential description + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + registryHostname: + description: Registry hostname + format: UTF-8 + maxLength: 255 + minLength: 1 + pattern: (?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{1,63}(?<!-)\.)+[a-zA-Z0-9]{2,63}$) + type: string + secret: + $ref: '#/components/schemas/SecretDto' + description: Registry credential - secret value must be base64 encoded string in username:password format + tags: + description: Optional set of tags + items: + pattern: '[a-zA-Z0-9\-_:=]+' + type: string + maxItems: 64 + minItems: 0 + type: array + uniqueItems: true + nullable: true + required: + - artifactTypes + - registryHostname + - secret + type: object + RegistryCredentialDetailsResponse: + description: Response body for Registry Credential operations + properties: + registryCredential: + $ref: '#/components/schemas/RegistryCredentialDetailsDto' + description: Registry credential details + required: + - registryCredential + type: object + UpdateRegistryCredentialRequest: + description: Request body to update registry credential + properties: + artifactTypeEnums: + description: Optional artifact types to be added to the existing ones + items: + enum: + - CONTAINER + - HELM + - MODEL + - RESOURCE + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + secret: + $ref: '#/components/schemas/SecretDto' + description: Registry credential - secret value must be base64 encoded string in username:password format + type: object + UpdateTelemetrySecretRequest: + description: Request payload to update secret + properties: + secret: + $ref: '#/components/schemas/SecretDto' + description: Telemetry secret + required: + - secret + type: object + ListTelemetryResponse: + description: Response containing a list of telemetry configurations. + properties: + telemetries: + description: List of telemetry configurations. + items: + $ref: '#/components/schemas/TelemetryDto' + maxItems: 2147483647 + minItems: 0 + type: array + type: object + TelemetryRequest: + description: Data Transfer Object (DTO) representing a telemetry request + properties: + endpoint: + description: Telemetry endpoint URL + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + protocol: + description: Protocol used for communication + enum: + - HTTP + - GRPC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + provider: + description: Telemetry provider + enum: + - PROMETHEUS + - GRAFANA_CLOUD + - SPLUNK + - DATADOG + - SERVICENOW + - KRATOS + - KRATOS_THANOS + - TIMESTREAM + - VICTORIAMETRICS + - AZURE_MONITOR + - OTEL_COLLECTOR + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + secret: + $ref: '#/components/schemas/SecretDto' + description: Single secret associated with the telemetry configuration + types: + description: Set of telemetry data types + items: + enum: + - LOGS + - METRICS + - TRACES + type: string + maxItems: 2147483647 + minItems: 1 + type: array + uniqueItems: true + required: + - endpoint + - protocol + - provider + - secret + - types + type: object + TelemetryResponse: + description: Data Transfer Object (DTO) representing a telemetry response + properties: + telemetry: + $ref: '#/components/schemas/TelemetryDto' + description: Telemetry details + type: object + ClusterGroup: + properties: + authorizedNcaIds: + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + clusters: + items: + $ref: '#/components/schemas/Cluster' + maxItems: 2147483647 + minItems: 0 + type: array + gpus: + items: + $ref: '#/components/schemas/Gpu' + maxItems: 2147483647 + minItems: 0 + type: array + id: + format: uuid + maxLength: 36 + minLength: 36 + type: string + name: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + ncaId: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + type: object + FunctionDto: + description: Data Transfer Object (DTO) representing a function + properties: + activeInstances: + description: List of active instances for this function. + items: + $ref: '#/components/schemas/InstanceDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + apiBodyFormat: + description: Invocation request body format + enum: + - PREDICT_V2 + - CUSTOM + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + containerArgs: + description: Args used to launch the container + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + containerEnvironment: + description: Environment settings used to launch the container + items: + $ref: '#/components/schemas/ContainerEnvironmentEntryDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + containerImage: + description: Optional custom container + format: uri + type: string + nullable: true + createdAt: + description: Function creation timestamp + format: date-time + maxLength: 30 + minLength: 8 + type: string + description: + description: Function/version description + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + functionType: + description: Used to indicate a STREAMING function. Defaults to DEFAULT. + enum: + - DEFAULT + - STREAMING + - LLM + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + health: + $ref: '#/components/schemas/HealthDto' + description: Function health configuration + healthUri: + deprecated: true + description: Health endpoint for the container or helmChart. Deprecated, use health.uri instead. + format: uri + type: string + helmChart: + description: Optional Helm Chart + format: uri + type: string + nullable: true + helmChartServiceName: + description: | + Helm Chart Service Name specified only when helmChart property is specified + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + id: + description: Unique function id + format: uuid + maxLength: 36 + minLength: 36 + type: string + inferencePort: + description: Optional port number where the inference listener is running - defaults to 8000 for Triton + format: int32 + maximum: 2147483647 + minimum: -2147483648 + type: integer + nullable: true + inferenceUrl: + description: Entrypoint for invoking the container to process requests + format: uri + type: string + nullable: true + llmInvocationConfig: + $ref: '#/components/schemas/LlmInvocationConfigDto' + description: Optional function-level LLM invocation configuration. + models: + description: Optional list of models + items: + $ref: '#/components/schemas/FunctionModelDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + name: + description: Function name + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + ncaId: + description: NVIDIA Cloud Account Id + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + ownedByDifferentAccount: + description: | + Indicates whether the function is owned by another account. If the account + that is being used to lookup functions happens to be authorized to invoke/list + this function which is owned by a different account, then this field is set + to true and ncaId will contain the id of the account that owns the function. + Otherwise, this field is not set as it defaults to false. + type: boolean + nullable: true + rateLimit: + $ref: '#/components/schemas/RateLimitDto' + description: Optional rate limit policy + resources: + description: Optional set of resources. + items: + $ref: '#/components/schemas/ArtifactDto' + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + secrets: + description: Optional secret names + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + status: + description: Function status + enum: + - ACTIVE + - DEPLOYING + - ERROR + - INACTIVE + - DELETED + - DEGRADED + - DEGRADING + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + tags: + description: Optional set of tags. Maximum allowed number of tags per function is 64. Maximum length of each tag is 128 chars. + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + telemetries: + $ref: '#/components/schemas/TelemetriesDto' + description: Optional telemetry configuration for the function + versionId: + description: Unique function version id + format: uuid + maxLength: 36 + minLength: 36 + type: string + required: + - createdAt + - functionType + - healthUri + - id + - name + - ncaId + - status + - versionId + type: object + FunctionDeploymentDto: + description: Function deployment response + properties: + createdAt: + description: Function deployment creation timestamp + format: date-time + maxLength: 30 + minLength: 8 + type: string + deploymentId: + description: Last deployment id + format: uuid + maxLength: 36 + minLength: 36 + type: string + deploymentSpecifications: + description: Function deployment details + items: + $ref: '#/components/schemas/GpuSpecificationDto' + maxItems: 2147483647 + minItems: 0 + type: array + functionId: + description: Function id + format: uuid + maxLength: 36 + minLength: 36 + type: string + functionName: + description: Function name + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + functionStatus: + description: Function status + enum: + - ACTIVE + - DEPLOYING + - ERROR + - INACTIVE + - DELETED + - DEGRADED + - DEGRADING + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + functionVersionId: + description: Function version id + format: uuid + maxLength: 36 + minLength: 36 + type: string + healthInfo: + description: | + Health info for a deployment specification is included only if there are any + issues/errors. + items: + $ref: '#/components/schemas/DeploymentHealthDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + lastUpdatedAt: + description: Function deployment modification timestamp + format: date-time + maxLength: 30 + minLength: 8 + type: string + ncaId: + description: NVIDIA Cloud Account Id + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + required: + - createdAt + - deploymentId + - deploymentSpecifications + - functionId + - functionName + - functionStatus + - functionVersionId + - lastUpdatedAt + - ncaId + type: object + GpuSpecificationDto: + description: Data Transfer Object(DTO) representing GPU specification. + properties: + attributes: + description: | + Specific cluster attributes/capabilities to deploy functions. For example, + HIPPA Compliant, Confidential Compute Compliant, etc. + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + autoscalingConfiguration: + $ref: '#/components/schemas/AutoscalingConfigurationDto' + description: Customizable autoscaling configuration + availabilityZones: + description: List of availability-zones(or clusters) in the cluster group + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + backend: + description: Use clusters instead of this property. Legacy property typically used when deploying a function to GFN. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + clusters: + description: | + Specific clusters powered by the selected instance-type to deploy function. + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + configuration: + additionalProperties: true + description: | + Typically used when the function is based on Helm Charts to substitute + placeholders in values yaml. + type: object + cpuArch: + description: CPU Architecture details + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + driverVersion: + description: GPU driver version + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + gpu: + description: GPU name from the cluster + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + gpuMemory: + description: Amount of GPU memory + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + gpuSpecificationId: + description: GPU specification id + format: uuid + maxLength: 36 + minLength: 36 + type: string + nullable: true + helmValidationPolicy: + $ref: '#/components/schemas/HelmValidationPolicyDto' + description: Helm validation policy + instanceType: + description: Instance type, based on GPU, assigned to a Worker + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + maxInstances: + description: Maximum number of instances for the deployment + format: int32 + maximum: 2147483647 + minimum: 0 + type: integer + maxRequestConcurrency: + description: Max request concurrency between 1 (default) and 16384. + format: int32 + maximum: 16384 + minimum: 1 + type: integer + nullable: true + minInstances: + description: Minimum number of instances for the deployment + format: int32 + maximum: 2147483647 + minimum: 0 + type: integer + os: + description: Operating System details + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + regions: + description: | + List of regions allowed to deploy. The instance or worker node will be in one of + the specified geographical regions. + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + storage: + description: Amount of available storage, e.g. 80G + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + systemMemory: + description: Amount of RAM + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + required: + - gpu + - instanceType + - maxInstances + - minInstances + type: object + UpdateGpuSpecificationDto: + description: Data Transfer Object (DTO) representing GPU specification for Deployment Update case. + properties: + backend: + description: | + Backend/CSP where the GPU powered instance has been launched. The original value + would not be updated and it should be the same as original. The field is required + only for validation. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + clusters: + description: | + Specific clusters within instance or worker node powered by the selected + instance-type to deploy function. The original value would not be updated and it + should be the same as original. The field is required only for validation. + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + gpu: + description: 'GPU name from the cluster. Deprecated: this is read-only field, should not be specified in update request.' + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + gpuSpecificationId: + description: GPU specification id + format: uuid + maxLength: 36 + minLength: 36 + type: string + nullable: true + instanceType: + description: 'Instance type, based on GPU, assigned to a Worker. Deprecated: this is read-only field, should not be specified in update request.' + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + maxInstances: + description: Maximum number of instances for the deployment + format: int32 + maximum: 2147483647 + minimum: 0 + type: integer + maxRequestConcurrency: + description: Max request concurrency between 1 (default) and 16384. + format: int32 + maximum: 16384 + minimum: 1 + type: integer + nullable: true + minInstances: + description: Minimum number of instances for the deployment + format: int32 + maximum: 2147483647 + minimum: 0 + type: integer + required: + - maxInstances + - minInstances + type: object + AutoscalingConfigurationDto: + description: Data Transfer Object(DTO) representing autoscaling configuration + properties: + scaleDownDetails: + $ref: '#/components/schemas/ScalingDetails' + description: Configuration for scaling down + scaleUpDetails: + $ref: '#/components/schemas/ScalingDetails' + description: Configuration for scaling up + type: object + RegistryCredentialDetailsDto: + description: DTO representing a registry credential + properties: + artifactTypes: + description: Registry type + items: + enum: + - CONTAINER + - HELM + - MODEL + - RESOURCE + type: string + maxItems: 2147483647 + minItems: 1 + type: array + uniqueItems: true + createdAt: + description: Timestamp for registry credential creation + format: date-time + maxLength: 30 + minLength: 8 + type: string + description: + description: Registry credential description + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + keyType: + description: Optional registry credential key type + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + lastUpdatedAt: + description: Timestamp for last registry credential update + format: date-time + maxLength: 30 + minLength: 8 + type: string + ncaId: + description: NVIDIA Cloud Account Id owning the Registry Credential + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + provisionedBy: + description: Registry credential provisioned by system or user + enum: + - SYSTEM + - USER + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + registryCredentialId: + description: Registry Credential Id + format: uuid + maxLength: 36 + minLength: 36 + type: string + registryCredentialName: + description: Registry Credential name + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + registryHostname: + description: Registry hostname + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + registryName: + description: Recognized registry name + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + tags: + description: Optional set of tags + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + required: + - artifactTypes + - createdAt + - lastUpdatedAt + - ncaId + - provisionedBy + - registryCredentialId + - registryCredentialName + - registryHostname + - registryName + type: object + SecretDto: + description: Data Transfer Object(DTO) representing secret name/value pair + properties: + name: + description: Secret name + format: UTF-8 + maxLength: 48 + minLength: 1 + pattern: ^[a-z0-9A-Z][a-z0-9A-Z\_\.\-]*$ + type: string + value: + description: Secret value must be a string or JSON object and 1 - 32768 chars long + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + required: + - name + - value + type: object + TelemetryDto: + description: Data Transfer Object (DTO) for Telemetry configurations + properties: + createdAt: + description: Telemetry creation timestamp + format: date-time + maxLength: 30 + minLength: 8 + type: string + endpoint: + description: URL for the telemetry endpoint + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + name: + description: Telemetry name + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + protocol: + description: Protocol used for communication + enum: + - HTTP + - GRPC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + provider: + description: Telemetry provider + enum: + - PROMETHEUS + - GRAFANA_CLOUD + - SPLUNK + - DATADOG + - SERVICENOW + - KRATOS + - KRATOS_THANOS + - TIMESTREAM + - VICTORIAMETRICS + - AZURE_MONITOR + - OTEL_COLLECTOR + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + telemetryId: + description: Unique telemetry ID + format: uuid + maxLength: 36 + minLength: 36 + type: string + types: + description: Set of telemetry data types + items: + enum: + - LOGS + - METRICS + - TRACES + type: string + maxItems: 2147483647 + minItems: 1 + type: array + uniqueItems: true + required: + - createdAt + - endpoint + - name + - protocol + - provider + - telemetryId + - types + type: object + Cluster: + properties: + id: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + k8sVersion: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + name: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + type: object + Gpu: + properties: + instanceTypes: + items: + $ref: '#/components/schemas/InstanceType' + maxItems: 2147483647 + minItems: 0 + type: array + name: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + type: object + InstanceDto: + description: Data Transfer Object(DTO) representing an instance + properties: + backend: + description: Backend where the instance is running + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + functionId: + description: Function executing on the instance + format: uuid + maxLength: 36 + minLength: 36 + type: string + functionVersionId: + description: Function version executing on the instance + format: uuid + maxLength: 36 + minLength: 36 + type: string + gpu: + description: GPU name powering the instance + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + icmsRequestId: + description: ICMS request-id used to launch this instance + format: uuid + maxLength: 36 + minLength: 36 + type: string + instanceCreatedAt: + description: Instance creation timestamp + format: date-time + maxLength: 30 + minLength: 8 + type: string + instanceId: + description: Unique id of the instance + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + instanceStatus: + description: Instance status + enum: + - ACTIVE + - STARTING + - RUNNING + - ERRORED + - PREEMPTED + - DELETED + - TERMINATED + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + instanceType: + description: GPU instance-type powering the instance + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + instanceUpdatedAt: + description: Instance's last updated timestamp + format: date-time + maxLength: 30 + minLength: 8 + type: string + location: + description: Location such as zone name or region where the instance is running + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + ncaId: + description: NVIDIA Cloud Account Id that owns the function running on the instance + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + type: object + ContainerEnvironmentEntryDto: + description: Data Transfer Object(DTO) representing a container environment entry + properties: + key: + description: Container environment key + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + value: + description: Container environment value + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + required: + - key + - value + type: object + HealthDto: + description: Data Transfer Object(DTO) representing a function's health configuration + properties: + expectedStatusCode: + description: Expected return status code considered as successful. + format: int32 + maximum: 2147483647 + minimum: -2147483648 + type: integer + port: + description: Port number where the health listener is running + format: int32 + maximum: 2147483647 + minimum: 0 + type: integer + protocol: + description: HTTP/gPRC protocol type for health endpoint + enum: + - HTTP + - gRPC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + timeout: + description: ISO 8601 duration string in PnDTnHnMn.nS format + example: PT10S + format: duration + type: string + uri: + description: Health endpoint for the container or the helmChart + format: uri + type: string + required: + - expectedStatusCode + - port + - protocol + - timeout + - uri + type: object + LlmInvocationConfigDto: + description: Function-level LLM invocation configuration. + properties: + priority: + $ref: '#/components/schemas/PriorityDto' + description: Function-level request priority configuration. + type: object + FunctionModelDto: + description: Model associated with a function, including optional LLM routing metadata + properties: + llmConfig: + $ref: '#/components/schemas/LlmConfigDto' + description: LLM-specific configuration for this model. Only relevant for LLM-type functions. + name: + description: Model name + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + uri: + description: Model URI. Optional for LLM-type functions. + format: uri + type: string + nullable: true + version: + description: Model version. Optional for LLM-type functions. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + required: + - name + type: object + RateLimitDto: + description: Data Transfer Object(DTO) representing Rate limit config + properties: + exemptedNcaIds: + description: NCA ID Exemptions + items: + type: string + maxItems: 32 + minItems: 0 + type: array + uniqueItems: true + nullable: true + perNcaIdRate: + additionalProperties: + type: string + description: Per NCA ID Rate + type: object + nullable: true + perUserRate: + description: Per-user rate, intended for traffic authenticated with an invocation delegation token (InvocationToken). When set, this single rate is enforced individually against every unique caller identity, in addition to the NCA-tier limit. + format: UTF-8 + maxLength: 262144 + minLength: 0 + pattern: ^(?!.*-([SMHD]).*-\1)[1-9]\d*-[SMHD](,\s*[1-9]\d*-[SMHD])*$ + type: string + nullable: true + rateLimit: + description: Rate + format: UTF-8 + maxLength: 262144 + minLength: 0 + pattern: ^(?!.*-([SMHD]).*-\1)[1-9]\d*-[SMHD](,\s*[1-9]\d*-[SMHD])*$ + type: string + nullable: true + syncCheck: + description: Sync check. Defaults to false + type: boolean + nullable: true + type: object + ArtifactDto: + description: Data Transfer Object(DTO) representing an artifact + properties: + name: + description: Artifact name + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + uri: + description: Artifact URI + format: uri + type: string + version: + description: Artifact version + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + required: + - name + - uri + - version + type: object + TelemetriesDto: + description: Telemetry configuration for logs, metrics, and traces. + properties: + logsTelemetryId: + description: UUID representing the logs telemetry. + format: uuid + maxLength: 36 + minLength: 36 + type: string + nullable: true + metricsTelemetryId: + description: UUID representing the metrics telemetry. + format: uuid + maxLength: 36 + minLength: 36 + type: string + nullable: true + tracesTelemetryId: + description: UUID representing the traces telemetry. + format: uuid + maxLength: 36 + minLength: 36 + type: string + nullable: true + type: object + DeploymentHealthDto: + description: Data Transfer Object(DTO) representing deployment error + properties: + backend: + description: Backend/CSP where the GPU powered instance will be launched + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + error: + description: Deployment error + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + gpu: + description: GPU Type as per SDD + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + icmsRequestId: + description: ICMS Request ID + format: uuid + maxLength: 36 + minLength: 36 + type: string + instanceType: + description: Instance type + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + required: + - backend + - error + - gpu + - icmsRequestId + type: object + HelmValidationPolicyDto: + description: Data Transfer Object(DTO) representing Helm validation policy + properties: + extraKubernetesTypes: + description: | + An API Group in Kubernetes is a collection of related functionality. + When present, must contain at least one entry; each entry must be a valid + KubernetesType (group, version, kind). + items: + $ref: '#/components/schemas/KubernetesType' + maxItems: 2147483647 + minItems: 1 + type: array + nullable: true + name: + description: Helm validation policy name. + enum: + - Default + - Unrestricted + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + required: + - name + type: object + ScalingDetails: + properties: + factor: + description: Scaling factor must be greater-than 1.0 for scale up and less-than 1.0 for scale down. This factor is used to multiply the currentinstance count when specified threshold is met. + format: float + minimum: 0 + type: number + metric: + description: Scaling metric + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + stickiness: + $ref: '#/components/schemas/StickinessWindow' + description: Stickiness window configuration + threshold: + description: Scaling threshold (0-100) as a percentage of utilizationupon which the number of current instances are multiplied with thespecified factor. + format: int32 + maximum: 100 + minimum: 0 + type: integer + required: + - factor + - threshold + type: object + InstanceType: + properties: + default: + type: boolean + description: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + name: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + type: object + PriorityDto: + description: Function-level request priority. Lower value is higher priority, 0 is highest. + properties: + defaultPriority: + description: Default priority. + format: int64 + maximum: 4294967295 + minimum: 0 + type: integer + nullable: true + perAccountPriority: + additionalProperties: + format: int64 + type: integer + description: Per-account priority overrides, keyed by account ID. + type: object + nullable: true + type: object + LlmConfigDto: + description: LLM-specific configuration for a model + properties: + routingMethod: + description: 'Routing method for this model: a request router algorithm name, optionally followed by '';name=value'' tuning parameters, for example pulsar;seed=stable-a. The API checks only the format. The request router checks the algorithm and parameters on each request.' + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + tokenRateLimit: + description: Token-level rate limit for this model. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + tokenizer: + description: Tokenizer identifier for this model. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + uris: + description: OpenAI-compatible URIs supported by this model (e.g. /v1/chat/completions). Required for LLM models. + items: + type: string + maxItems: 2147483647 + minItems: 1 + type: array + required: + - uris + type: object + KubernetesType: + properties: + group: + description: Name of API Group + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + kind: + description: API Group resource or Kind + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + version: + description: Version of API Group + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + required: + - group + - kind + - version + type: object + StickinessWindow: + properties: + size: + description: Window size must be less than or equal to PT1H and will berounded to the nearest minute + example: PT30M + format: duration + type: string + threshold: + description: Window threshold must be less than size + example: PT5M + format: duration + type: string + required: + - size + - threshold + type: object +servers: + - url: https://api.ngc.nvidia.com diff --git a/provider-dev/source/nvcf_functions.yaml b/provider-dev/source/nvcf_functions.yaml new file mode 100644 index 0000000..0e53f2d --- /dev/null +++ b/provider-dev/source/nvcf_functions.yaml @@ -0,0 +1,1652 @@ +openapi: 3.1.0 +info: + title: NVIDIA Cloud Functions - Functions + description: 'NVCF functions and versions, function metadata, authorizations (function sharing grants), secrets and rate limits (source: the published NVCF OpenAPI specification; management operations served from api.ngc.nvidia.com).' + version: 2.261.2 +paths: + /v2/nvcf/authorizations/functions: + get: + description: 'Lists all the function versions in an account that have been shared/authorized with/to other accounts. Response includes the nca-ids of the authorized accounts. If a function version is not shared/authorized, then it is not included in the response. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: getAuthorizedPartiesForAllFunctions + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListAuthorizedPartiesResponse' + description: OK + summary: List Functions Authorized/Shared With Other Accounts + tags: + - Function Sharing + parameters: [] + /v2/nvcf/authorizations/functions/{function_id}: + get: + description: 'Lists function versions of the specified function and their corresponding authorized accounts allowed to invoke the function version. Individual versions of a function can have their own authorized accounts. So, each object in the array can have different authorized accounts listed. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: getAuthorizedPartiesForAllVersions + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListAuthorizedPartiesResponse' + description: OK + summary: List Function Versions with Authorized Accounts For Specified Function + tags: + - Function Sharing + post: + description: 'Authorizes additional NVIDIA Cloud Accounts to invoke any version of the specified function. By default, a function belongs to the NVIDIA Cloud Account that created it, and the credentials used for function invocation must reference the same NVIDIA Cloud Account. Upon invocation of this endpoint, any existing authorized accounts will be overwritten by the newly specified authorized accounts. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: createAuthorizedPartiesForAllVersions + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesResponse' + description: OK + summary: Authorize Accounts To Invoke Function + tags: + - Function Sharing + delete: + description: 'Deletes authorizations at the function level. This impacts all versions of the function. If a function versions has its own set of authorizations, those are not deleted. If the specified function is public, then Account Admin cannot perform this operation. Note that the response does not include any authz accounts at version level. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: deleteAuthorizedPartiesForAllVersions + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesResponse' + description: OK + summary: Delete All Authorizations At Function Level + tags: + - Function Sharing + /v2/nvcf/authorizations/functions/{function_id}/add: + patch: + description: 'Adds the specified NVIDIA Cloud Account to the set of authorized accounts that are can invoke all the versions of the specified function. If the specified function does not have any existing inheritable authorized accounts, it results in a response with status 404. If the specified account is already in the set of existing inheritable authorized accounts, it results in a response with status code 409. If a function is public, then Account Admin cannot perform this operation. Note that response only includes authz accounts at the function level. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: addAuthorizedPartyForAllVersions + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchAuthorizedPartyRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesResponse' + description: OK + summary: Authorize Another Account To Invoke, List, and Check Queue Details of Function + tags: + - Function Sharing + /v2/nvcf/authorizations/functions/{function_id}/remove: + patch: + description: 'Removes the specified NVIDIA Cloud Account from the set of authorized accounts that can invoke all the versions of the specified function. If the specified function does not have any existing inheritable authorized parties, it results in a response with status 404. Also, if the specified account is not in the existing set of inheritable authorized accounts, it results in a response with status 404. If the specified function is public, then Account Admin cannot perform this operation. Note that response only includes the remaining authorized accounts at the function level. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: removeAuthorizedPartyForAllVersions + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchAuthorizedPartyRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesResponse' + description: OK + summary: Unauthorize Account From Invoking, Listing, and Checking Queue Details of Function + tags: + - Function Sharing + /v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id}: + get: + description: 'Gets NVIDIA Cloud Account IDs that are authorized to invoke specified function version. Response includes authorized accounts that were added specifically at the version level and the authorized accounts that were inherited from function level. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: getAuthorizedPartiesForSpecificVersion + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesResponse' + description: OK + summary: Get Account Authorizations For Function Version + tags: + - Function Sharing + post: + description: 'Authorizes additional NVIDIA Cloud Accounts to invoke a specific function version. By default, a function belongs to the NVIDIA Cloud Account that created it, and the credentials used for function invocation must reference the same NVIDIA Cloud Account. Upon invocation of this endpoint, any existing authorized accounts will be overwritten by the newly specified authorized accounts. Note that the response does NOT include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: createAuthorizedPartiesForSpecificVersion + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version id + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesResponse' + description: OK + summary: Authorize Accounts To Invoke/List Function Version + tags: + - Function Sharing + delete: + description: 'Deletes all the authorized accounts that are directly associated with the specified function version. Authorized parties that are inherited by the function version are not deleted. If the specified function version is public, then Account Admin cannot perform this operation. Note that the response does not include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: deleteAuthorizedPartiesForSpecificVersion + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesResponse' + description: OK + summary: Delete All Authorizations At Version Level + tags: + - Function Sharing + /v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id}/add: + patch: + description: 'Adds the specified NVIDIA Cloud Account to the set of authorized accounts that can invoke the specified function version. If the specified function version does not have any existing inheritable authorized accounts, it results in a response with status 404. If the specified account is already in the set of existing authorized accounts that are directly associated with the function version, it results in a response wit status code 409. If a function is public, then Account Admin cannot perform this operation. Note that the response does not include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: addAuthorizedPartyForSpecificVersion + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchAuthorizedPartyRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesResponse' + description: OK + summary: Authorize Another Account To Invoke, List, and Check Queue Details of Function Version + tags: + - Function Sharing + /v2/nvcf/authorizations/functions/{function_id}/versions/{function_version_id}/remove: + patch: + description: 'Removes the specified NVIDIA Cloud Account from the set of authorized accounts that are directly associated with specified function version. If the specified function version does not have any of its own(not inherited) authorized accounts, it results in a response with status 404. Also, if the specified authorized account is not in the set of existing authorized parties that are directly associated with the specified function version, it results in a response with status code 404. If the specified function version is public, then Account Admin cannot perform this operation. Note that the response does not include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the ''authorize_clients'' scope in the HTTP Authorization header ' + operationId: removeAuthorizedPartyForSpecificVersion + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchAuthorizedPartyRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorizedPartiesResponse' + description: OK + summary: Unauthorize Account From Invoking, Listing, and Checking Queue Details of Function Version + tags: + - Function Sharing + /v2/nvcf/functions: + get: + description: Lists all the functions associated with the authenticated NVIDIA Cloud Account. Requires a bearer token with 'list_functions' or 'list_functions_details' scope in the HTTP Authorization header. + operationId: getFunctions + parameters: + - description: | + Query param 'visibility' indicates the kind of functions to be included + in the response. + in: query + name: visibility + required: false + schema: + default: + - authorized + - private + - public + items: + enum: + - authorized + - private + - public + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListFunctionsResponse' + description: OK + summary: List Functions + tags: + - Function Management + post: + description: 'Creates a new function within the authenticated NVIDIA Cloud Account. Requires a bearer token with ''register_function'' scope in the HTTP Authorization header. ' + operationId: createFunction + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateFunctionRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CreateFunctionResponse' + description: OK + summary: Create Function + tags: + - Function Management + parameters: [] + /v2/nvcf/functions/ids: + get: + description: 'Lists ids of all the functions in the authenticated NVIDIA Cloud Account. Requires a bearer token with ''list_functions'' or ''list_functions_details'' scopes in the HTTP Authorization header. ' + operationId: getFunctionIds + parameters: + - description: | + Query param 'visibility' indicates the kind of functions to be included + in the response. + in: query + name: visibility + required: false + schema: + default: + - authorized + - private + - public + items: + enum: + - authorized + - private + - public + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListFunctionIdsResponse' + description: OK + summary: List Function Ids + tags: + - Function Management + /v2/nvcf/functions/{function_id}/versions: + get: + description: 'Lists details of all the versions of the specified function in the authenticated NVIDIA Cloud Account. Requires a bearer token with ''list_functions'' or ''list_functions_details'' scopes in the HTTP Authorization header. ' + operationId: getFunctions_1 + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListFunctionsResponse' + description: OK + summary: List Function Versions + tags: + - Function Management + post: + description: 'Creates a version of the specified function within the authenticated NVIDIA Cloud Account. If the function is public, then Account Admin cannot create a version. Requires a bearer token with ''register_function'' scope in the HTTP Authorization header. ' + operationId: createFunction_1 + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateFunctionRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CreateFunctionResponse' + description: OK + summary: Create Function Version + tags: + - Function Management + /v2/nvcf/functions/{function_id}/versions/{function_version_id}: + get: + description: 'Retrieves detailed information of the specified function version in the authenticated NVIDIA Cloud Account. Requires a bearer token with ''list_functions'' or ''list_functions_details'' scopes in the HTTP Authorization header. ' + operationId: getFunction + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: 'Version id ' + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: | + Query param 'includeSecrets' indicates whether to include secret names + for the function in the response. + in: query + name: includeSecrets + required: false + schema: + default: true + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FunctionResponse' + description: OK + summary: Get Function Version Details + tags: + - Function Management + put: + description: 'Updates mutable fields of the specified function version within the authenticated NVIDIA Cloud Account. The current request payload supports tags updates, rate limit updates, and model-specific LLM config updates. Requires a bearer token with ''update_function'' scope in the HTTP Authorization header. ' + operationId: updateFunction + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Version id + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateFunctionRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FunctionResponse' + description: OK + summary: Updates mutable fields of the specified function version. + tags: + - Function Management + delete: + description: 'Deletes the specified function version in the authenticated NVIDIA Cloud Account. Requires a bearer token with ''delete_function'' scope in the HTTP Authorization header. If the function version is public, then Account Admin cannot delete the function. ' + operationId: deleteFunction + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Version id + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '204': + description: No Content + summary: Delete Function + tags: + - Function Management + /v2/nvcf/metadata/functions/{function_id}/versions/{function_version_id}: + put: + deprecated: true + description: 'Deprecated: use PUT /v2/nvcf/functions/{functionId}/versions/{functionVersionId} to update tags, rate limit, model-specific LLM config, and other mutable function fields. This legacy endpoint updates the same mutable function version fields for the authenticated NVIDIA Cloud Account and requires a bearer token with ''update_function'' scope in the HTTP Authorization header. ' + operationId: updateFunctionMetadata + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Version id + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateFunctionRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FunctionResponse' + description: OK + summary: Update Function Metadata + tags: + - Function Management + /v2/nvcf/ratelimit/functions/{function_id}/versions/{version_id}: + put: + deprecated: true + description: 'Deprecated: use PUT /v2/nvcf/functions/{functionId}/versions/{versionId} to update ratelimit and other mutable function fields. This legacy endpoint only updates ratelimit for the specified function version and requires a bearer token with ''update_function'' scope in the HTTP Authorization header. ' + operationId: updateRateLimit + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version id + in: path + name: version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateFunctionRequest' + required: true + responses: + '204': + description: No Content + summary: Update user ratelimit for a function version + tags: + - User Ratelimit Management + delete: + description: 'Delete ratelimit for the specified function version. This endpoint requires a bearer token with ''update_function'' scope in the HTTP Authorization header. ' + operationId: deleteRateLimit + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version id + in: path + name: version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '204': + description: No Content + summary: Delete user ratelimit for a function version + tags: + - User Ratelimit Management + /v2/nvcf/secrets/functions/{function_id}/versions/{version_id}: + put: + description: 'Updates secrets for the specified function version. This endpoint requires a bearer token with ''update_secrets'' scope in the HTTP Authorization header. ' + operationId: updateFunctionSecrets + parameters: + - description: Function Id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function Version Id + in: path + name: version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateFunctionSecretsRequest' + required: true + responses: + '204': + description: No Content + summary: Update user secrets for a function version + tags: + - User Secret Management +components: + schemas: + ListAuthorizedPartiesResponse: + description: Parties authorized to invoke function + properties: + functions: + description: Functions with authorized parties and other details + items: + $ref: '#/components/schemas/AuthorizedPartiesByFunctionDto' + maxItems: 2147483647 + minItems: 0 + type: array + required: + - functions + type: object + AuthorizedPartiesResponse: + description: Parties authorized to invoke function + properties: + function: + $ref: '#/components/schemas/AuthorizedPartiesByFunctionDto' + description: Function with authorized parties and other details + required: + - function + type: object + AuthorizedPartiesRequest: + description: Request to associated authorized parties for a specific version or allversions of a function + properties: + authorizedParties: + description: Parties authorized to invoke function + items: + $ref: '#/components/schemas/AuthorizedPartyDto' + maxItems: 2147483647 + minItems: 1 + type: array + required: + - authorizedParties + type: object + PatchAuthorizedPartyRequest: + description: | + Request payload to associate/disassociate authorized party with function + properties: + authorizedParty: + $ref: '#/components/schemas/AuthorizedPartyDto' + description: Authorized party + required: + - authorizedParty + type: object + ListFunctionsResponse: + description: Response body containing list of functions + properties: + functions: + description: List of functions + items: + $ref: '#/components/schemas/FunctionDto' + maxItems: 2147483647 + minItems: 0 + type: array + required: + - functions + type: object + CreateFunctionRequest: + description: Request payload to create function. + properties: + apiBodyFormat: + description: Invocation request body format + enum: + - PREDICT_V2 + - CUSTOM + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + containerArgs: + description: Args to be passed when launching the container + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + containerEnvironment: + description: Environment settings for launching the container + items: + $ref: '#/components/schemas/ContainerEnvironmentEntryDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + containerImage: + description: Optional custom container image + format: uri + type: string + nullable: true + description: + description: Optional function/version description + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + functionType: + description: Optional function type, used to indicate a STREAMING function. Defaults to DEFAULT. + enum: + - DEFAULT + - STREAMING + - LLM + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + health: + $ref: '#/components/schemas/HealthDto' + description: Function health + healthUri: + deprecated: true + description: Health endpoint for the container or the helmChart + format: uri + type: string + nullable: true + helmChart: + description: Optional Helm Chart + format: uri + type: string + nullable: true + helmChartServiceName: + description: | + Helm Chart Service Name is required when helmChart property is specified + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + inferencePort: + description: | + Optional port number where the inference listener is running. Defaults to 8000 + for Triton. + format: int32 + maximum: 2147483647 + minimum: -2147483648 + type: integer + nullable: true + inferenceUrl: + description: Entrypoint for invoking the container to process a request + format: uri + type: string + llmInvocationConfig: + $ref: '#/components/schemas/LlmInvocationConfigDto' + description: Optional function-level LLM invocation configuration. Only valid for LLM-type functions. + models: + description: Optional list of models + items: + $ref: '#/components/schemas/FunctionModelDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + name: + description: Function name must start with lowercase/uppercase/digit and can only contain lowercase, uppercase, digit, hyphen, and underscore characters + format: UTF-8 + maxLength: 128 + minLength: 1 + pattern: ^[a-z0-9A-Z][a-z0-9A-Z\-_]*$ + type: string + rateLimit: + $ref: '#/components/schemas/RateLimitDto' + description: Optional rate limit config + resources: + description: Optional set of resources + items: + $ref: '#/components/schemas/ArtifactDto' + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + secrets: + description: Optional secrets + items: + $ref: '#/components/schemas/SecretDto' + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + tags: + description: Optional set of tags - could be empty. Provided by user + items: + pattern: '[a-zA-Z0-9\-_:=]+' + type: string + maxItems: 64 + minItems: 0 + type: array + uniqueItems: true + nullable: true + telemetries: + $ref: '#/components/schemas/TelemetriesDto' + description: Optional telemetry configuration for logs, metrics, and traces. + required: + - inferenceUrl + - name + type: object + CreateFunctionResponse: + description: Response body for create function request. + properties: + function: + $ref: '#/components/schemas/FunctionDto' + description: Details of the newly created function + required: + - function + type: object + ListFunctionIdsResponse: + description: Response body containing list of function ids in an account + properties: + functionIds: + description: List of function ids + items: + format: uuid + type: string + maxItems: 2147483647 + minItems: 0 + type: array + required: + - functionIds + type: object + FunctionResponse: + description: Response body with function details + properties: + function: + $ref: '#/components/schemas/FunctionDto' + description: Function details + required: + - function + type: object + UpdateFunctionRequest: + description: Request payload to update mutable function configuration fields. + properties: + llmInvocationConfig: + $ref: '#/components/schemas/LlmInvocationConfigDto' + description: Optional function-level LLM invocation configuration. When omitted, the existing value is preserved. + modelUpdates: + description: Optional list of model-specific updates. + items: + $ref: '#/components/schemas/ModelUpdateDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + rateLimit: + $ref: '#/components/schemas/RateLimitDto' + description: Optional full replacement for the function rate limit configuration. When omitted, the existing value is preserved. Use the delete rate-limit endpoint to clear it. + tags: + description: Optional set of function tags. When omitted, the existing value is preserved. + items: + pattern: '[a-zA-Z0-9\-_:=]+' + type: string + maxItems: 64 + minItems: 0 + type: array + uniqueItems: true + nullable: true + type: object + UpdateFunctionSecretsRequest: + description: Request payload to update secrets + properties: + secrets: + description: Secrets + items: + $ref: '#/components/schemas/SecretDto' + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + required: + - secrets + type: object + AuthorizedPartiesByFunctionDto: + description: Data Transfer Object(DTO) representing a function with authorized accounts + properties: + authorizedParties: + description: Authorized parties allowed to invoke the function + items: + $ref: '#/components/schemas/AuthorizedPartyDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + id: + description: Function id + format: uuid + maxLength: 36 + minLength: 36 + type: string + ncaId: + description: NVIDIA Cloud Account Id + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + versionId: + description: Function version id + format: uuid + maxLength: 36 + minLength: 36 + type: string + nullable: true + required: + - id + - ncaId + type: object + AuthorizedPartyDto: + description: Data Transfer Object(DTO) representing an authorized party. + properties: + clientId: + description: |- + Client Id -- 'sub' claim in the JWT. This field should not be + specified anymore. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + ncaId: + description: NVIDIA Cloud Account authorized to invoke the function + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + required: + - ncaId + type: object + FunctionDto: + description: Data Transfer Object (DTO) representing a function + properties: + activeInstances: + description: List of active instances for this function. + items: + $ref: '#/components/schemas/InstanceDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + apiBodyFormat: + description: Invocation request body format + enum: + - PREDICT_V2 + - CUSTOM + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + containerArgs: + description: Args used to launch the container + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + containerEnvironment: + description: Environment settings used to launch the container + items: + $ref: '#/components/schemas/ContainerEnvironmentEntryDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + containerImage: + description: Optional custom container + format: uri + type: string + nullable: true + createdAt: + description: Function creation timestamp + format: date-time + maxLength: 30 + minLength: 8 + type: string + description: + description: Function/version description + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + functionType: + description: Used to indicate a STREAMING function. Defaults to DEFAULT. + enum: + - DEFAULT + - STREAMING + - LLM + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + health: + $ref: '#/components/schemas/HealthDto' + description: Function health configuration + healthUri: + deprecated: true + description: Health endpoint for the container or helmChart. Deprecated, use health.uri instead. + format: uri + type: string + helmChart: + description: Optional Helm Chart + format: uri + type: string + nullable: true + helmChartServiceName: + description: | + Helm Chart Service Name specified only when helmChart property is specified + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + id: + description: Unique function id + format: uuid + maxLength: 36 + minLength: 36 + type: string + inferencePort: + description: Optional port number where the inference listener is running - defaults to 8000 for Triton + format: int32 + maximum: 2147483647 + minimum: -2147483648 + type: integer + nullable: true + inferenceUrl: + description: Entrypoint for invoking the container to process requests + format: uri + type: string + nullable: true + llmInvocationConfig: + $ref: '#/components/schemas/LlmInvocationConfigDto' + description: Optional function-level LLM invocation configuration. + models: + description: Optional list of models + items: + $ref: '#/components/schemas/FunctionModelDto' + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + name: + description: Function name + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + ncaId: + description: NVIDIA Cloud Account Id + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + ownedByDifferentAccount: + description: | + Indicates whether the function is owned by another account. If the account + that is being used to lookup functions happens to be authorized to invoke/list + this function which is owned by a different account, then this field is set + to true and ncaId will contain the id of the account that owns the function. + Otherwise, this field is not set as it defaults to false. + type: boolean + nullable: true + rateLimit: + $ref: '#/components/schemas/RateLimitDto' + description: Optional rate limit policy + resources: + description: Optional set of resources. + items: + $ref: '#/components/schemas/ArtifactDto' + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + secrets: + description: Optional secret names + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + status: + description: Function status + enum: + - ACTIVE + - DEPLOYING + - ERROR + - INACTIVE + - DELETED + - DEGRADED + - DEGRADING + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + tags: + description: Optional set of tags. Maximum allowed number of tags per function is 64. Maximum length of each tag is 128 chars. + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + uniqueItems: true + nullable: true + telemetries: + $ref: '#/components/schemas/TelemetriesDto' + description: Optional telemetry configuration for the function + versionId: + description: Unique function version id + format: uuid + maxLength: 36 + minLength: 36 + type: string + required: + - createdAt + - functionType + - healthUri + - id + - name + - ncaId + - status + - versionId + type: object + ContainerEnvironmentEntryDto: + description: Data Transfer Object(DTO) representing a container environment entry + properties: + key: + description: Container environment key + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + value: + description: Container environment value + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + required: + - key + - value + type: object + HealthDto: + description: Data Transfer Object(DTO) representing a function's health configuration + properties: + expectedStatusCode: + description: Expected return status code considered as successful. + format: int32 + maximum: 2147483647 + minimum: -2147483648 + type: integer + port: + description: Port number where the health listener is running + format: int32 + maximum: 2147483647 + minimum: 0 + type: integer + protocol: + description: HTTP/gPRC protocol type for health endpoint + enum: + - HTTP + - gRPC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + timeout: + description: ISO 8601 duration string in PnDTnHnMn.nS format + example: PT10S + format: duration + type: string + uri: + description: Health endpoint for the container or the helmChart + format: uri + type: string + required: + - expectedStatusCode + - port + - protocol + - timeout + - uri + type: object + LlmInvocationConfigDto: + description: Function-level LLM invocation configuration. + properties: + priority: + $ref: '#/components/schemas/PriorityDto' + description: Function-level request priority configuration. + type: object + FunctionModelDto: + description: Model associated with a function, including optional LLM routing metadata + properties: + llmConfig: + $ref: '#/components/schemas/LlmConfigDto' + description: LLM-specific configuration for this model. Only relevant for LLM-type functions. + name: + description: Model name + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + uri: + description: Model URI. Optional for LLM-type functions. + format: uri + type: string + nullable: true + version: + description: Model version. Optional for LLM-type functions. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + required: + - name + type: object + RateLimitDto: + description: Data Transfer Object(DTO) representing Rate limit config + properties: + exemptedNcaIds: + description: NCA ID Exemptions + items: + type: string + maxItems: 32 + minItems: 0 + type: array + uniqueItems: true + nullable: true + perNcaIdRate: + additionalProperties: + type: string + description: Per NCA ID Rate + type: object + nullable: true + perUserRate: + description: Per-user rate, intended for traffic authenticated with an invocation delegation token (InvocationToken). When set, this single rate is enforced individually against every unique caller identity, in addition to the NCA-tier limit. + format: UTF-8 + maxLength: 262144 + minLength: 0 + pattern: ^(?!.*-([SMHD]).*-\1)[1-9]\d*-[SMHD](,\s*[1-9]\d*-[SMHD])*$ + type: string + nullable: true + rateLimit: + description: Rate + format: UTF-8 + maxLength: 262144 + minLength: 0 + pattern: ^(?!.*-([SMHD]).*-\1)[1-9]\d*-[SMHD](,\s*[1-9]\d*-[SMHD])*$ + type: string + nullable: true + syncCheck: + description: Sync check. Defaults to false + type: boolean + nullable: true + type: object + ArtifactDto: + description: Data Transfer Object(DTO) representing an artifact + properties: + name: + description: Artifact name + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + uri: + description: Artifact URI + format: uri + type: string + version: + description: Artifact version + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + required: + - name + - uri + - version + type: object + SecretDto: + description: Data Transfer Object(DTO) representing secret name/value pair + properties: + name: + description: Secret name + format: UTF-8 + maxLength: 48 + minLength: 1 + pattern: ^[a-z0-9A-Z][a-z0-9A-Z\_\.\-]*$ + type: string + value: + description: Secret value must be a string or JSON object and 1 - 32768 chars long + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + required: + - name + - value + type: object + TelemetriesDto: + description: Telemetry configuration for logs, metrics, and traces. + properties: + logsTelemetryId: + description: UUID representing the logs telemetry. + format: uuid + maxLength: 36 + minLength: 36 + type: string + nullable: true + metricsTelemetryId: + description: UUID representing the metrics telemetry. + format: uuid + maxLength: 36 + minLength: 36 + type: string + nullable: true + tracesTelemetryId: + description: UUID representing the traces telemetry. + format: uuid + maxLength: 36 + minLength: 36 + type: string + nullable: true + type: object + ModelUpdateDto: + description: Model-specific update request. + properties: + llmConfig: + $ref: '#/components/schemas/LlmConfigUpdateDto' + description: Optional updates to this model's LLM config fields. + modelName: + description: Name of the model to update. + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + required: + - modelName + type: object + InstanceDto: + description: Data Transfer Object(DTO) representing an instance + properties: + backend: + description: Backend where the instance is running + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + functionId: + description: Function executing on the instance + format: uuid + maxLength: 36 + minLength: 36 + type: string + functionVersionId: + description: Function version executing on the instance + format: uuid + maxLength: 36 + minLength: 36 + type: string + gpu: + description: GPU name powering the instance + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + icmsRequestId: + description: ICMS request-id used to launch this instance + format: uuid + maxLength: 36 + minLength: 36 + type: string + instanceCreatedAt: + description: Instance creation timestamp + format: date-time + maxLength: 30 + minLength: 8 + type: string + instanceId: + description: Unique id of the instance + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + instanceStatus: + description: Instance status + enum: + - ACTIVE + - STARTING + - RUNNING + - ERRORED + - PREEMPTED + - DELETED + - TERMINATED + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + instanceType: + description: GPU instance-type powering the instance + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + instanceUpdatedAt: + description: Instance's last updated timestamp + format: date-time + maxLength: 30 + minLength: 8 + type: string + location: + description: Location such as zone name or region where the instance is running + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + ncaId: + description: NVIDIA Cloud Account Id that owns the function running on the instance + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + type: object + PriorityDto: + description: Function-level request priority. Lower value is higher priority, 0 is highest. + properties: + defaultPriority: + description: Default priority. + format: int64 + maximum: 4294967295 + minimum: 0 + type: integer + nullable: true + perAccountPriority: + additionalProperties: + format: int64 + type: integer + description: Per-account priority overrides, keyed by account ID. + type: object + nullable: true + type: object + LlmConfigDto: + description: LLM-specific configuration for a model + properties: + routingMethod: + description: 'Routing method for this model: a request router algorithm name, optionally followed by '';name=value'' tuning parameters, for example pulsar;seed=stable-a. The API checks only the format. The request router checks the algorithm and parameters on each request.' + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + tokenRateLimit: + description: Token-level rate limit for this model. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + tokenizer: + description: Tokenizer identifier for this model. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + uris: + description: OpenAI-compatible URIs supported by this model (e.g. /v1/chat/completions). Required for LLM models. + items: + type: string + maxItems: 2147483647 + minItems: 1 + type: array + required: + - uris + type: object + LlmConfigUpdateDto: + description: Partial update payload for LLM-specific model configuration fields. + properties: + routingMethod: + description: Updated routing method for the model, in the same format as llmConfig.routingMethod on create. When omitted, the existing value is preserved. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + tokenRateLimit: + description: Updated token-level rate limit for the model. When omitted, the existing value is preserved. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + tokenizer: + description: Cannot be changed after creation. A request that sets it is rejected with 400. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + uris: + description: Cannot be changed after creation. A request that sets it is rejected with 400. + items: + type: string + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + type: object +servers: + - url: https://api.ngc.nvidia.com diff --git a/provider-dev/source/nvcf_invocation.yaml b/provider-dev/source/nvcf_invocation.yaml new file mode 100644 index 0000000..bac5fe6 --- /dev/null +++ b/provider-dev/source/nvcf_invocation.yaml @@ -0,0 +1,1081 @@ +openapi: 3.1.0 +info: + title: NVIDIA Cloud Functions - Invocation + description: NVCF HTTP-polling invocation (pexec and status), assets and invocation assertion tokens (served from api.nvcf.nvidia.com). + version: 2.261.2 +paths: + /v2/nvcf/assets: + get: + deprecated: true + description: 'List assets owned by the current NVIDIA Cloud Account. Requires a bearer token with ''invoke_function'' scope in the HTTP Authorization header. ' + operationId: getAssets + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListAssetsResponse' + description: OK + summary: List Assets + tags: + - Asset Management + parameters: [] + post: + deprecated: true + description: 'Creates a unique id representing an asset and a pre-signed URL to upload the asset artifact to AWS S3 bucket for the NVIDIA Cloud Account. Requires a bearer token with ''invoke_function'' scope in the HTTP Authorization header. ' + operationId: createAsset + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAssetRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAssetResponse' + description: OK + summary: Create Asset + tags: + - Asset Management + parameters: [] + /v2/nvcf/assets/{asset_id}: + get: + deprecated: true + description: 'Returns details for the specified asset-id belonging to the current NVIDIA Cloud Account. Requires a bearer token with ''invoke_function'' scope in the HTTP Authorization header. ' + operationId: getAsset + parameters: + - description: Asset id + in: path + name: asset_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AssetResponse' + description: OK + summary: Show Asset Details + tags: + - Asset Management + delete: + deprecated: true + description: 'Deletes asset belonging to the current NVIDIA Cloud Account. Requires a bearer token with ''invoke_function'' scope in the HTTP Authorization header. ' + operationId: deleteAsset + parameters: + - description: Id of the asset to be deleted + in: path + name: asset_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '204': + description: No Content + summary: Delete Asset + tags: + - Asset Management + /v2/nvcf/pexec/functions/{function_id}: + post: + deprecated: true + description: 'Deprecated and will be removed soon. Please use the new NVCF Invocation API endpoint to invoke a function. Invokes the specified function that was successfully deployed. If the version is not specified, any active function versions will handle the request. If the version is specified in the URI, then the request is exclusively processed by the designated version of the function. By default, this endpoint will block for 5 seconds. If the request is not fulfilled before the timeout, it''s status is considered in-progress or pending and the response includes HTTP status code 202 with an invocation request ID, indicating that the client should commence polling for the result using the invocation request ID. Access to this endpoint mandates inclusion of a bearer token with ''invoke_function'' scope in the HTTP Authorization header. Additionally, this endpoint has the capability to provide updates on the progress of the request, contingent upon the workload''s provision of such information. In-progress responses are returned in order. If no in-progress response is received during polling you will receive the most recent in-progress response. Only the first 256 unread in-progress messages are kept. ' + operationId: invokeFunction + parameters: + - in: header + name: NVCF-INPUT-ASSET-REFERENCES + required: false + schema: + items: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + - in: header + name: NVCF-POLL-SECONDS + required: false + schema: + format: int32 + maximum: 300 + minimum: 0 + type: integer + nullable: true + - in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + type: string + description: (opaque JSON object) + required: true + responses: + '200': + content: + '*/*': + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Invocation is fulfilled + headers: + NVCF-PERCENT-COMPLETE: + description: Percentage complete + schema: + type: string + style: simple + NVCF-REQID: + description: Invocation Request Id + schema: + type: string + style: simple + NVCF-STATUS: + description: Invocation status + schema: + type: string + style: simple + '202': + content: + '*/*': + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Result is pending. Client should poll using the requestId. + headers: + NVCF-PERCENT-COMPLETE: + description: Percentage complete + schema: + type: string + style: simple + NVCF-REQID: + description: Invocation Request Id + schema: + type: string + style: simple + NVCF-STATUS: + description: Invocation status + schema: + type: string + style: simple + '302': + description: | + Client should use the URL specified in the 'Location' response header to fetch + large result. + headers: + Location: + description: URL to get the result + schema: + type: string + style: simple + NVCF-PERCENT-COMPLETE: + description: Percentage complete + schema: + type: string + style: simple + NVCF-REQID: + description: Invocation Request Id + schema: + type: string + style: simple + NVCF-STATUS: + description: Invocation status + schema: + type: string + style: simple + '402': + content: + '*/*': + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Cloud credits expired for public functions. Please contact NVIDIA representatives. + '403': + content: + '*/*': + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: | + Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry + in the ApiKey for the function. + '429': + content: + '*/*': + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Client is doing too many requests per second and should slow down request rate. + summary: Call Function + tags: + - Function Invocation + /v2/nvcf/pexec/functions/{function_id}/versions/{version_id}: + post: + deprecated: true + description: 'Deprecated and will be removed soon. Please use the new NVCF Invocation API endpoint to invoke a function. Invokes the specified function that was successfully deployed. If the version is not specified, any active function versions will handle the request. If the version is specified in the URI, then the request is exclusively processed by the designated version of the function. By default, this endpoint will block for 5 seconds. If the request is not fulfilled before the timeout, it''s status is considered in-progress or pending and the response includes HTTP status code 202 with an invocation request ID, indicating that the client should commence polling for the result using the invocation request ID. Access to this endpoint mandates inclusion of a bearer token with ''invoke_function'' scope in the HTTP Authorization header. Additionally, this endpoint has the capability to provide updates on the progress of the request, contingent upon the workload''s provision of such information. In-progress responses are returned in order. If no in-progress response is received during polling you will receive the most recent in-progress response. Only the first 256 unread in-progress messages are kept. ' + operationId: invokeFunction_1 + parameters: + - in: header + name: NVCF-INPUT-ASSET-REFERENCES + required: false + schema: + items: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + maxItems: 2147483647 + minItems: 0 + type: array + nullable: true + - in: header + name: NVCF-POLL-SECONDS + required: false + schema: + format: int32 + maximum: 300 + minimum: 0 + type: integer + nullable: true + - in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version id + in: path + name: version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + type: string + description: (opaque JSON object) + required: true + responses: + '200': + content: + '*/*': + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Invocation is fulfilled + headers: + NVCF-PERCENT-COMPLETE: + description: Percentage complete + schema: + type: string + style: simple + NVCF-REQID: + description: Invocation Request Id + schema: + type: string + style: simple + NVCF-STATUS: + description: Invocation status + schema: + type: string + style: simple + '202': + content: + '*/*': + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Result is pending. Client should poll using the requestId. + headers: + NVCF-PERCENT-COMPLETE: + description: Percentage complete + schema: + type: string + style: simple + NVCF-REQID: + description: Invocation Request Id + schema: + type: string + style: simple + NVCF-STATUS: + description: Invocation status + schema: + type: string + style: simple + '302': + description: | + Client should use the URL specified in the 'Location' response header to fetch + large result. + headers: + Location: + description: URL to get the result + schema: + type: string + style: simple + NVCF-PERCENT-COMPLETE: + description: Percentage complete + schema: + type: string + style: simple + NVCF-REQID: + description: Invocation Request Id + schema: + type: string + style: simple + NVCF-STATUS: + description: Invocation status + schema: + type: string + style: simple + '402': + content: + '*/*': + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Cloud credits expired for public functions. Please contact NVIDIA representatives. + '403': + content: + '*/*': + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: | + Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry + in the ApiKey for the function. + '429': + content: + '*/*': + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Client is doing too many requests per second and should slow down request rate. + summary: Call Function + tags: + - Function Invocation + /v2/nvcf/pexec/status/{request_id}: + get: + deprecated: true + description: 'Deprecated and will be removed soon. Please use the new NVCF Invocation API endpoint to invoke a function and stream results without polling. Retrieves the status of an in-progress or pending request using its unique invocation request ID. If the result is available, it will be included in the response, marking the request as fulfilled. Conversely, if the result is not yet available, the request is deemed pending. Access to this endpoint mandates inclusion of a bearer token with ''invoke_function'' scope in the HTTP Authorization header. In-progress responses are returned in order. If no in-progress response is received during polling you will receive the most recent in-progress response. Only the first 256 unread in-progress messages are kept. ' + operationId: getFunctionInvocationResult + parameters: + - description: Invocation Request Id + in: path + name: request_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + '*/*': + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Invocation is fulfilled + headers: + NVCF-PERCENT-COMPLETE: + description: Percentage complete + schema: + type: string + style: simple + NVCF-REQID: + description: Invocation Request Id + schema: + type: string + style: simple + NVCF-STATUS: + description: Invocation status + schema: + type: string + style: simple + '202': + content: + '*/*': + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Result is pending. Client should poll using the requestId. + headers: + NVCF-PERCENT-COMPLETE: + description: Percentage complete + schema: + type: string + style: simple + NVCF-REQID: + description: Invocation Request Id + schema: + type: string + style: simple + NVCF-STATUS: + description: Invocation status + schema: + type: string + style: simple + '302': + description: | + Client should use the URL specified in the 'Location' response header to fetch + large result. + headers: + Location: + description: URL to get the result + schema: + type: string + style: simple + NVCF-PERCENT-COMPLETE: + description: Percentage complete + schema: + type: string + style: simple + NVCF-REQID: + description: Invocation Request Id + schema: + type: string + style: simple + NVCF-STATUS: + description: Invocation status + schema: + type: string + style: simple + '402': + content: + '*/*': + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: Cloud credits expired for public functions. Please contact NVIDIA representatives. + '403': + content: + '*/*': + schema: + properties: + char: + type: string + direct: + type: boolean + double: + format: double + type: number + float: + format: float + type: number + int: + format: int32 + type: integer + long: + format: int64 + type: integer + readOnly: + type: boolean + short: + format: int32 + type: integer + type: object + description: | + Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry + in the ApiKey for the function. + summary: Poll For Result Using Function Invocation Request + tags: + - Function Invocation + /v2/nvcf/tokens/functions: + post: + description: 'Issues an assertion token from Notary Service for specified functionIds and/or functionVersionIds ' + operationId: issueMultiFunctionsInvocationToken + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/MultiFunctionsInvocationTokenRequest' + required: true + responses: + '200': + content: + '*/*': + schema: + $ref: '#/components/schemas/InvocationTokenResponse' + description: Invocation assertion token is issued + '403': + content: + '*/*': + schema: + $ref: '#/components/schemas/InvocationTokenResponse' + description: | + Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry + in the ApiKey for the function. + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/InvocationTokenResponse' + description: Client is doing too many requests per second and should slow down request rate. + summary: Issue Function Invocation Token + tags: + - Function Invocation Assertion Token + parameters: [] + /v2/nvcf/tokens/functions/{function_id}: + post: + description: 'Issues an assertion token from Notary Service for a specific functionId and/or functionVersionId ' + operationId: issueInvocationToken_1 + parameters: + - in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InvocationTokenRequest' + required: true + responses: + '200': + content: + '*/*': + schema: + $ref: '#/components/schemas/InvocationTokenResponse' + description: Invocation assertion token is issued + '403': + content: + '*/*': + schema: + $ref: '#/components/schemas/InvocationTokenResponse' + description: | + Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry + in the ApiKey for the function. + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/InvocationTokenResponse' + description: Client is doing too many requests per second and should slow down request rate. + summary: Issue Function Invocation Token + tags: + - Function Invocation Assertion Token + /v2/nvcf/tokens/functions/{function_id}/versions/{function_version_id}: + post: + description: 'Issues an assertion token from Notary Service for a specific functionId and/or functionVersionId ' + operationId: issueInvocationToken + parameters: + - in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version id + in: path + name: function_version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InvocationTokenRequest' + required: true + responses: + '200': + content: + '*/*': + schema: + $ref: '#/components/schemas/InvocationTokenResponse' + description: Invocation assertion token is issued + '403': + content: + '*/*': + schema: + $ref: '#/components/schemas/InvocationTokenResponse' + description: | + Either missing scope in the auth(JWT / ApiKey) token and/or missing resource entry + in the ApiKey for the function. + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/InvocationTokenResponse' + description: Client is doing too many requests per second and should slow down request rate. + summary: Issue Function Invocation Token + tags: + - Function Invocation Assertion Token +components: + schemas: + ListAssetsResponse: + description: Response body containing list of assets of the current nca id + properties: + assets: + description: List of assets uploaded for the nca id + items: + $ref: '#/components/schemas/AssetDto' + maxItems: 2147483647 + minItems: 0 + type: array + required: + - assets + type: object + CreateAssetRequest: + description: Request payload to create an asset-id and the corresponding pre-signed URL to upload an asset of specified content-type to AWS S3 bucket. + properties: + contentType: + description: Content type of the asset such image/png, image/jpeg, etc. + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + description: + description: Asset description + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + required: + - contentType + - description + type: object + CreateAssetResponse: + description: Response body containing asset-id and the corresponding pre-signed URL to upload an asset of specified content-type to AWS S3 bucket. + properties: + assetId: + description: Unique id of the asset to be uploaded to AWS S3 bucket + format: uuid + maxLength: 36 + minLength: 36 + type: string + contentType: + description: Content type of the asset such image/png, image/jpeg, etc. + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + description: + description: Asset description to be used when uploading the asset + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + uploadUrl: + description: Pre-signed upload URL to upload asset + format: url + type: string + required: + - assetId + - contentType + - description + - uploadUrl + type: object + AssetResponse: + properties: + asset: + $ref: '#/components/schemas/AssetDto' + required: + - asset + type: object + MultiFunctionsInvocationTokenRequest: + description: Request body for issuing a function invocation token + properties: + clientId: + description: ClientId for client to pass in to track who will eventually use the token + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + functions: + description: Functions to invoke + items: + $ref: '#/components/schemas/BasicFunctionDto' + maxItems: 4 + minItems: 0 + type: array + required: + - clientId + - functions + type: object + InvocationTokenResponse: + description: Function invocation token response + properties: + access_token: + description: Token issued by Notary Service + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + expires_in: + description: Token expiration time in seconds + format: int32 + maximum: 2147483647 + minimum: -2147483648 + type: integer + type: object + InvocationTokenRequest: + description: Request body for issuing a function invocation token + properties: + clientId: + description: ClientId for client to pass in to track who will eventually use the token + format: UTF-8 + maxLength: 262144 + minLength: 1 + type: string + required: + - clientId + type: object + AssetDto: + description: Data Transfer Object(DTO) representing an asset + properties: + assetId: + description: Asset id + format: uuid + maxLength: 36 + minLength: 36 + type: string + contentType: + description: Content-type specified when creating the asset + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + createdAt: + description: Timestamp specified when creating the asset + format: date-time + maxLength: 30 + minLength: 8 + type: string + nullable: true + description: + description: Description specified when creating the asset + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + nullable: true + type: object + BasicFunctionDto: + description: Basic Data Transfer Object (DTO) representing a function + properties: + functionId: + description: Unique function id + format: uuid + maxLength: 36 + minLength: 36 + type: string + functionVersionId: + description: Unique function version id + format: uuid + maxLength: 36 + minLength: 36 + type: string + nullable: true + required: + - functionId + type: object +servers: + - url: https://api.nvcf.nvidia.com diff --git a/provider-dev/source/nvcf_queues.yaml b/provider-dev/source/nvcf_queues.yaml new file mode 100644 index 0000000..bea3089 --- /dev/null +++ b/provider-dev/source/nvcf_queues.yaml @@ -0,0 +1,176 @@ +openapi: 3.1.0 +info: + title: NVIDIA Cloud Functions - Queues + description: NVCF request queue details per function and version, and queue position per request (served from api.nvcf.nvidia.com). + version: 2.261.2 +paths: + /v2/nvcf/queues/functions/{function_id}: + get: + description: 'Provides details of all the queues associated with the specified function. If a function has multiple versions and they are all deployed, then the response includes details of all the queues. If the specified function is public, then Account Admin cannot perform this operation. Requires a bearer token or an api-key with ''queue_details'' scope in the HTTP Authorization header. ' + operationId: getQueuesDetails_1 + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GetQueuesResponse' + description: OK + summary: Queue Details + tags: + - Queue Details + /v2/nvcf/queues/functions/{function_id}/versions/{version_id}: + get: + description: 'Provides details of all the queues associated with the specified function. If a function has multiple versions and they are all deployed, then the response includes details of all the queues. If the specified function is public, then Account Admin cannot perform this operation. Requires a bearer token or an api-key with ''queue_details'' scope in the HTTP Authorization header. ' + operationId: getQueuesDetails + parameters: + - description: Function id + in: path + name: function_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + - description: Function version id + in: path + name: version_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GetQueuesResponse' + description: OK + summary: Queue Details + tags: + - Queue Details + /v2/nvcf/queues/{request_id}/position: + get: + description: 'Using the specified function invocation request id, returns the estimated position of the corresponding message up to 1000 in the queue. Requires a bearer token or an api-key with ''queue_details'' scope in the HTTP Authorization header. ' + operationId: getPositionInQueue + parameters: + - description: Function invocation request id + in: path + name: request_id + required: true + schema: + format: uuid + maxLength: 36 + minLength: 36 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GetPositionInQueueResponse' + description: OK + summary: Queue Position + tags: + - Queue Details +components: + schemas: + GetQueuesResponse: + description: Request queue details of all the functions with same id in an account + properties: + functionId: + description: Function id + format: uuid + maxLength: 36 + minLength: 36 + type: string + queues: + description: Details of all the queues associated with same named functions + items: + $ref: '#/components/schemas/QueueDto' + maxItems: 2147483647 + minItems: 0 + type: array + required: + - functionId + - queues + type: object + GetPositionInQueueResponse: + description: Request position in queue for invocation request + properties: + functionId: + description: Function id + format: uuid + maxLength: 36 + minLength: 36 + type: string + functionVersionId: + description: Function version id + format: uuid + maxLength: 36 + minLength: 36 + type: string + positionInQueue: + description: Position of request in queue + format: int32 + maximum: 2147483647 + minimum: -2147483648 + type: integer + required: + - functionId + - functionVersionId + type: object + QueueDto: + description: Data Transfer Object(DTO) representing a request queue for function version + properties: + functionName: + description: Function name + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + functionStatus: + description: Function status + enum: + - ACTIVE + - DEPLOYING + - ERROR + - INACTIVE + - DELETED + - DEGRADED + - DEGRADING + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + functionVersionId: + description: Function version id + format: uuid + maxLength: 36 + minLength: 36 + type: string + queueDepth: + description: Approximate number of messages in the request queue + format: int32 + maximum: 2147483647 + minimum: -2147483648 + type: integer + required: + - functionName + - functionStatus + - functionVersionId + type: object +servers: + - url: https://api.nvcf.nvidia.com diff --git a/provider-dev/source/orgs.yaml b/provider-dev/source/orgs.yaml new file mode 100644 index 0000000..135f78e --- /dev/null +++ b/provider-dev/source/orgs.yaml @@ -0,0 +1,5482 @@ +openapi: 3.0.1 +info: + title: NVIDIA NGC Organizations + description: 'NGC organizations, teams, users and team members, role grants, invitations and the current user (source: the NGC API definition harvested from the API explorer).' + version: v3.249.17 +paths: + /roles: + get: + description: List of roles in NGC and their scopes + operationId: getRoles + parameters: + - description: flag indicate if hidden roles should be included + in: query + name: show-hidden + required: false + schema: + default: false + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserRoleDefinitionsResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: NGC Roles + tags: + - Services + /starfleetIds/{starfleet_id}: + get: + description: Get User details in org by starfleet Id + operationId: getUserInOrg_1 + parameters: + - in: path + name: starfleet_id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Get User in org + tags: + - Users Management + /team/{team_name}/starfleetIds/{starfleet_id}: + get: + description: Get User details in team by starfleet Id + operationId: getUserInTeamByStarfleetId + parameters: + - in: path + name: team_name + required: true + schema: + type: string + - in: path + name: starfleet_id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Get User in team + tags: + - Users Management + /team/{team_name}/users: + get: + description: Get list of users in team. (User Admin in team privileges required) + operationId: listUsersInTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + - description: The page number of result + in: query + name: page-number + required: false + schema: + format: int32 + type: integer + - description: The page size of result + in: query + name: page-size + required: false + schema: + format: int32 + type: integer + - description: User Search Parameters. Only 'filters' and 'orderBy' for 'name' and 'email' are implemented + in: query + name: q + required: false + schema: + $ref: '#/components/schemas/SearchParams' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserListResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: List users in team + tags: + - Users Management + post: + description: Creates a User and add them to a team within the org. + operationId: createUserInTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + - in: query + name: send-email + required: false + schema: + default: true + type: boolean + - description: If the IDP ID is provided then it is used instead of the one configured for the organization + in: query + name: idp-id + required: false + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Creates a User in team + tags: + - Users Management + /team/{team_name}/users/invitations: + get: + description: List invitations in a team. (Team User Admin privileges required) + operationId: listInvitationsForUserInTeam + parameters: + - description: The page number of result + in: query + name: page-number + required: false + schema: + format: int32 + type: integer + - description: The page size of result + in: query + name: page-size + required: false + schema: + format: int32 + type: integer + - in: query + name: orderBy + required: false + schema: + enum: + - NAME_ASC + - NAME_DESC + type: string + - in: path + name: team_name + required: true + schema: + type: string + - description: User Search Parameters + in: query + name: q + required: false + schema: + $ref: '#/components/schemas/SearchParams' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserInvitationListResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: List user invitations in a team. + tags: + - Users Management + /team/{team_name}/users/invitations/{id}: + delete: + description: Delete a specific invitation in an team. (Org Admin or Team User Admin privileges required) + operationId: deleteUserInvitationInTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + - in: path + name: id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Delete a specific invitation in a team. + tags: + - Users Management + /team/{team_name}/users/invitations/{id}/resend-invitation-email: + get: + description: Resend email of a specific invitation in a team (Org or Team User Admin privileges required). + operationId: resendUserInvitationEmailInTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + - in: path + name: id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Resend email of a specific invitation in a team. + tags: + - Users Management + /team/{team_name}/users/{id}: + post: + description: Add a User to team + operationId: addUserToTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + - in: path + name: id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Add a User to team + tags: + - Users Management + /teams: + get: + description: List all Teams + operationId: listTeams + parameters: + - description: The page number of result + in: query + name: page-number + required: false + schema: + format: int32 + type: integer + - description: The page size of result + in: query + name: page-size + required: false + schema: + format: int32 + type: integer + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TeamListResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: List Teams + tags: + - Teams + post: + description: Create team in org. (Org Admin Privileges Required) + operationId: createTeam + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TeamCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TeamCreateResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Create Team + tags: + - Teams + /teams/{team_name}: + get: + description: Get Team by name + operationId: getTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TeamResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Get Team + tags: + - Teams + patch: + description: Edit a Team + operationId: editTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TeamUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TeamResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Edit Team + tags: + - Teams + delete: + description: Delete a Team + operationId: deleteTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Delete Team + tags: + - Teams + /users: + get: + description: Get list of users in organization. (User Admin in org privileges required) + operationId: listUsersInOrg + parameters: + - description: Name of team to exclude members from + in: query + name: exclude-from-team + required: false + schema: + type: string + - description: The page number of result + in: query + name: page-number + required: false + schema: + format: int32 + type: integer + - description: The page size of result + in: query + name: page-size + required: false + schema: + format: int32 + type: integer + - description: User Search Parameters. Only 'filters' and 'orderBy' for 'name' and 'email' are implemented + in: query + name: q + required: false + schema: + $ref: '#/components/schemas/SearchParams' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserListResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: List users In org + tags: + - Users Management + post: + description: Creates a User + operationId: createUserInOrg + parameters: + - in: query + name: send-email + required: false + schema: + default: true + type: boolean + - description: If the IDP ID is provided then it is used instead of the one configured for the organization + in: query + name: idp-id + required: false + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Creates a User in org + tags: + - Users Management + /users/invitations: + get: + description: List invitations in an org. (Org User Admin privileges required) + operationId: listInvitationsForUserInOrg + parameters: + - description: The page number of result + in: query + name: page-number + required: false + schema: + format: int32 + type: integer + - description: The page size of result + in: query + name: page-size + required: false + schema: + format: int32 + type: integer + - in: query + name: orderBy + required: false + schema: + enum: + - NAME_ASC + - NAME_DESC + type: string + - description: User Search Parameters + in: query + name: q + required: false + schema: + $ref: '#/components/schemas/SearchParams' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserInvitationListResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: List user invitations in an org. + tags: + - Users Management + /users/invitations/{id}: + delete: + description: Delete a specific invitation in an org. (Org User Admin privileges required) + operationId: deleteUserInvitationInOrg + parameters: + - in: path + name: id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Delete a specific invitation in an org. + tags: + - Users Management + /users/invitations/{id}/resend-invitation-email: + get: + description: Resend email of a specific invitation in an org (Org User Admin privileges required). + operationId: resendUserInvitationEmailInOrg + parameters: + - in: path + name: id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Resend email of a specific invitation in an org. + tags: + - Users Management + /v2/orgs: + get: + description: List all organizations of the user + operationId: listOrganizations_1 + parameters: + - description: The page number of result + in: query + name: page-number + required: false + schema: + format: int32 + type: integer + - description: The page size of result + in: query + name: page-size + required: false + schema: + format: int32 + type: integer + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/OrgListResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: List Organizations + tags: + - Orgs + /v2/orgs/{org_name}: + get: + description: Get organization information + operationId: getOrganization + parameters: + - in: path + name: org_name + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/OrgResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Get Organization + tags: + - Orgs + patch: + description: Update organization information + operationId: updateOrganization + parameters: + - in: path + name: org_name + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OrgProfileUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/OrgResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Update Organization + tags: + - Orgs + /v2/users/me: + get: + description: What am I? + operationId: whoAmI + parameters: + - in: query + name: org-name + required: false + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Who am I? + tags: + - Users Management + patch: + description: Edit current user profile + operationId: editUserProfile + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Edit current user profile + tags: + - Users Management + parameters: [] + /v2/users/me/api-key: + post: + description: Generate API Key + operationId: generateUserApiKey + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserKeyResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Generate API Key + tags: + - Users Management + parameters: [] + /v3/orgs: + post: + description: Create a new organization based on the org info provided in the request. + operationId: createOrganizationFromScratch + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OrgCreateRequestV3' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/OrgResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Create Organization from Scratch + tags: + - Orgs + /v3/orgs/proto-org: + post: + description: Create a new organization based on the org info retrieved from the ProtoOrg. + operationId: createOrganizationFromProtoOrg + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OrgCreateRequestV3' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/OrgResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Create Organization from ProtoOrg + tags: + - Orgs + /v3/orgs/proto-org/validate: + get: + description: Validate org creation from proto org + operationId: protoOrgInvitationValidate + parameters: + - description: JWT that contains org owner email and proto org identifier + in: query + name: invitation_token + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/OrgInvitationResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Validate org creation invite + tags: + - Orgs + /teams/{team_name}/users/nca-invitations: + post: + description: Invites and creates a User in team + operationId: inviteUserToNcaInTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserNcaInvitationRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Invite User to NCA (team version) + tags: + - Users Management + /teams/{team_name}/users/{id}: + delete: + description: Remove User from team. + operationId: removeUserFromTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + - in: path + name: id + required: true + schema: + type: string + - description: If anonymize is true, then org owner permission is required. + in: query + name: anonymize + required: false + schema: + default: false + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Remove User from team + tags: + - Users Management + /teams/{team_name}/users/{user_email_or_id}: + get: + description: Get info and role/invitation in a team by email or id + operationId: listUserRolesInOrgTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + - in: path + name: user_email_or_id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Get user in a team by email or id. + tags: + - Users Management + /teams/{team_name}/users/{user_email_or_id}/add-role: + patch: + description: Invite if user does not exist, otherwise add role in team + operationId: addRoleOrInviteUserToTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + - in: path + name: user_email_or_id + required: true + schema: + type: string + - in: query + name: roles + required: true + schema: + items: + type: string + type: array + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Invite user or add role in team + tags: + - Users Management + /teams/{team_name}/users/{user_email_or_id}/remove-role: + delete: + description: Remove role in team if user exists, otherwise remove invitation + operationId: removeRoleOrInvitationInTeam + parameters: + - in: path + name: team_name + required: true + schema: + type: string + - in: path + name: user_email_or_id + required: true + schema: + type: string + - in: query + name: roles + required: false + schema: + items: + type: string + type: array + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Remove role or invitation in team + tags: + - Users Management + /users/nca-invitations: + post: + description: Invites and creates a User in org + operationId: inviteUserToNcaInOrg + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserNcaInvitationRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Invite User to NCA (org version) + tags: + - Users Management + /users/{id}: + delete: + description: Remove User from org. + operationId: removeUserFromOrg + parameters: + - in: path + name: id + required: true + schema: + type: string + - description: If anonymize is true, then org owner permission is required. + in: query + name: anonymize + required: false + schema: + default: false + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Remove User from org + tags: + - Users Management + /users/{user_email_or_id}: + get: + description: Get info and role/invitation in an org by email or id + operationId: listUserRolesInOrg + parameters: + - in: path + name: user_email_or_id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Get user in an org by email or id. + tags: + - Users Management + /users/{user_email_or_id}/add-role: + patch: + description: Invite if user does not exist, otherwise add role in org + operationId: addRoleOrInviteUserToOrg + parameters: + - in: path + name: user_email_or_id + required: true + schema: + type: string + - in: query + name: roles + required: true + schema: + items: + type: string + type: array + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Invite user or add role in org + tags: + - Users Management + /users/{user_email_or_id}/remove-role: + delete: + description: Remove role in org if user exists, otherwise remove invitation + operationId: removeRoleOrInvitationInOrg + parameters: + - in: path + name: user_email_or_id + required: true + schema: + type: string + - in: query + name: roles + required: false + schema: + items: + type: string + type: array + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: OK + '302': + description: Found + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unauthorized + '402': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Payment Required + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Found + '405': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Method Not Allowed + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Object Exists + '415': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unsupported Media Type + '422': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Unprocessable Entity + '429': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Too Many Requests + '451': + description: Unavailable For Legal Reasons + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Error + '501': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Not Implemented + '502': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Gateway + '503': + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Service Unavailable + summary: Remove role or invitation in org + tags: + - Users Management +components: + schemas: + UserRoleDefinitionsResponse: + description: Response containing all the roles defined in NGC and their allowed actions + properties: + requestStatus: + $ref: '#/components/schemas/RequestStatus' + roles: + description: List of roles + items: + $ref: '#/components/schemas/UserRoleDefinition' + type: array + type: object + ErrorResponse: + properties: + requestStatus: + $ref: '#/components/schemas/RequestStatus' + type: object + UserResponse: + description: ' about one user' + properties: + activationToken: + description: token needed to activate the user to enable login and other features + type: string + ncaRole: + description: NCA role + enum: + - UNKNOWN + - ADMINISTRATOR + - MEMBER + - OWNER + - PENDING + type: string + requestStatus: + $ref: '#/components/schemas/RequestStatus' + user: + $ref: '#/components/schemas/User' + userRoles: + description: DEPRECATED - Please use roles inside user + items: + $ref: '#/components/schemas/UserRole' + type: array + type: object + SearchParams: + properties: + fields: + items: + type: string + type: array + filters: + items: + $ref: '#/components/schemas/SearchParamFilter' + type: array + groupBy: + type: string + orderBy: + items: + $ref: '#/components/schemas/SearchParamOrderBy' + type: array + page: + format: int64 + type: integer + pageSize: + format: int64 + type: integer + query: + type: string + queryFields: + items: + type: string + type: array + scoredSize: + format: int64 + type: integer + type: object + UserListResponse: + description: Response for List User reponse + properties: + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + requestStatus: + $ref: '#/components/schemas/RequestStatus' + users: + description: information about the user + items: + $ref: '#/components/schemas/User' + type: array + type: object + UserCreateRequest: + description: object used request user creation in an existing org + properties: + email: + description: Email address of the user. This should be unique. + maxLength: 128 + minLength: 6 + type: string + emailOptIn: + description: indicates if user has opt in to nvidia emails + type: boolean + eulaAccepted: + description: indicates if user has accepted EULA + type: boolean + name: + description: user name + maxLength: 64 + minLength: 1 + type: string + roleType: + description: DEPRECATED - use roleTypes which allows multiple roles + type: string + roleTypes: + description: feature roles to give to the user + items: + description: feature roles to give to the user + type: string + type: array + salesforceContactJobRole: + description: user job role + type: string + userMetadata: + $ref: '#/components/schemas/UserMetadata' + required: + - email + type: object + UserInvitationListResponse: + description: Response for a list of user invitations. + properties: + invitations: + description: List of invitations. + items: + $ref: '#/components/schemas/UserInvitation' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + requestStatus: + $ref: '#/components/schemas/RequestStatus' + type: object + Response: + properties: + requestStatus: + $ref: '#/components/schemas/RequestStatus' + type: object + TeamListResponse: + description: listing of all teams + properties: + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + requestStatus: + $ref: '#/components/schemas/RequestStatus' + teams: + items: + $ref: '#/components/schemas/Team' + type: array + type: object + TeamCreateRequest: + description: Request to create new Team + properties: + description: + description: description of the team + maxLength: 255 + type: string + name: + description: team name + maxLength: 19 + minLength: 2 + type: string + required: + - name + type: object + TeamCreateResponse: + description: response to an team creation request, includes unique team id + properties: + requestStatus: + $ref: '#/components/schemas/RequestStatus' + team: + $ref: '#/components/schemas/Team' + type: object + TeamResponse: + description: details about one team + properties: + requestStatus: + $ref: '#/components/schemas/RequestStatus' + team: + $ref: '#/components/schemas/Team' + type: object + TeamUpdateRequest: + description: object used to update information about existing team + properties: + description: + description: description of the team + maxLength: 255 + type: string + infinityManagerSettings: + $ref: '#/components/schemas/InfinityManagerSettings' + repoScanSettings: + $ref: '#/components/schemas/RepoScanSettings' + type: object + OrgListResponse: + description: List of organizations. + properties: + organizations: + items: + $ref: '#/components/schemas/Organization' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + requestStatus: + $ref: '#/components/schemas/RequestStatus' + type: object + OrgResponse: + description: info about an organizations + properties: + organizations: + $ref: '#/components/schemas/Organization' + requestStatus: + $ref: '#/components/schemas/RequestStatus' + type: object + OrgProfileUpdateRequest: + description: Object used to update Org profile information + properties: + description: + description: optional description of the organization + maxLength: 128 + type: string + displayName: + description: Name of the organization that will be shown to users + maxLength: 255 + minLength: 1 + type: string + type: object + UserUpdateRequest: + description: object used to request user update + properties: + hasEmailOptIn: + description: indicates if user has opt in to nvidia emails + type: boolean + hasSignedAODTEULA: + description: indicates if user has accepted AODT End User License Agreement. + type: boolean + hasSignedAiFoundryPartnershipsEULA: + description: indicates if user has accepted AI Foundry Partnerships End User License Agreement. + type: boolean + hasSignedBaseCommandEULA: + description: indicates if user has accepted Base Command EULA + type: boolean + hasSignedBaseCommandManagerEULA: + description: indicates if user has accepted Base Command Manager End User License Agreement. + type: boolean + hasSignedBioNeMoEULA: + description: indicates if user has accepted BioNeMo End User License Agreement. + type: boolean + hasSignedContainerPublishingEULA: + description: indicates if user has accepted container publishing eula + type: boolean + hasSignedCuOptEULA: + description: indicates if user has accepted CuOpt End User License Agreement. + type: boolean + hasSignedEULA: + description: indicates if user has accepted NGC EULA + type: boolean + hasSignedEarth2EULA: + description: indicates if user has accepted Earth-2 End User License Agreement. + type: boolean + hasSignedEgxEULA: + description: indicates if user has accepted EGX EULA + type: boolean + hasSignedFleetCommandEULA: + description: indicates if user has accepted Fleet Command End User License Agreement. + type: boolean + hasSignedLlmEULA: + description: indicates if user has accepted LLM End User License Agreement. + type: boolean + hasSignedNVAIEEULA: + description: indicates if user has accepted Fleet Command End User License Agreement. + type: boolean + hasSignedNVQCEULA: + description: indicates if user has accepted Nvidia Quantum Cloud End User License Agreement. + type: boolean + hasSignedNvidiaEULA: + description: indicates if user has accepted NVIDIA EULA + type: boolean + hasSignedOmniverseEULA: + description: indicates if user has accepted Omniverse End User License Agreement. + type: boolean + hasSignedPrivacyPolicy: + description: indicates if the user has signed the Privacy Policy + type: boolean + hasSignedThirdPartyRegistryShareEULA: + description: indicates if user has consented to share their registration info with other parties + type: boolean + name: + description: user name + maxLength: 64 + minLength: 1 + type: string + userMetadata: + $ref: '#/components/schemas/UserMetadata' + type: object + UserKeyResponse: + description: response to a request to access key such as docker token + properties: + cloudNfsKey: + type: string + cloudNfsKeyPwd: + type: string + cloudNfsUserName: + type: string + key: + maxLength: 255 + type: string + requestStatus: + $ref: '#/components/schemas/RequestStatus' + required: + - key + type: object + OrgCreateRequestV3: + description: Request to create new Organization in v3 flow + properties: + country: + description: user country + type: string + description: + description: optional description of the organization + maxLength: 128 + type: string + displayName: + description: Name of the organization that will be shown to users. + maxLength: 255 + minLength: 1 + type: string + initiator: + description: Identify the initiator of the org request + type: string + isInternal: + description: Is NVIDIA internal org or not + type: boolean + name: + description: Organization name + maxLength: 64 + minLength: 2 + type: string + ncaId: + description: NVIDIA Cloud Account Identifier + type: string + ncaNumber: + description: NVIDIA Cloud Account Number + type: string + orgOwner: + $ref: '#/components/schemas/OrgOwnerV3' + pecName: + description: product end customer name for enterprise(Fleet Command) product + type: string + pecSfdcId: + description: product end customer salesforce.com Id (external customer Id) for enterprise(Fleet Command) product + type: string + productEnablements: + items: + $ref: '#/components/schemas/ProductEnablement' + type: array + productSubscriptions: + description: This should be deprecated, use productEnablements instead + items: + $ref: '#/components/schemas/ProductSubscription' + type: array + protoOrgId: + description: Proto org identifier + type: string + salesforceAccountIndustry: + description: Company or organization industry + type: string + sendEmail: + description: Send email to org owner or not. Default is true + type: boolean + type: + enum: + - UNKNOWN + - CLOUD + - ENTERPRISE + - INDIVIDUAL + type: string + type: object + OrgInvitationResponse: + description: Invitation Validation Response. + properties: + orgInvitation: + $ref: '#/components/schemas/OrgInvitation' + requestStatus: + $ref: '#/components/schemas/RequestStatus' + type: object + UserNcaInvitationRequest: + description: NCA User invitation request + properties: + email: + description: Is the user email + maxLength: 128 + minLength: 7 + type: string + invitationExpirationIn: + description: Is the numbers of days the invitation will expire + format: int32 + type: integer + inviteAs: + description: Nca allow users to be invited as Admin and as Member + enum: + - ADMIN + - MEMBER + type: string + message: + description: Is a message to the new user + type: string + type: object + RequestStatus: + properties: + requestId: + type: string + serverId: + type: string + statusCode: + description: Describes response status reported by the server. + enum: + - UNKNOWN + - SUCCESS + - UNAUTHORIZED + - PAYMENT_REQUIRED + - FORBIDDEN + - TIMEOUT + - EXISTS + - NOT_FOUND + - INTERNAL_ERROR + - INVALID_REQUEST + - INVALID_REQUEST_VERSION + - INVALID_REQUEST_DATA + - METHOD_NOT_ALLOWED + - CONFLICT + - UNPROCESSABLE_ENTITY + - TOO_MANY_REQUESTS + - INSUFFICIENT_STORAGE + - SERVICE_UNAVAILABLE + - PAYLOAD_TOO_LARGE + - NOT_ACCEPTABLE + - UNAVAILABLE_FOR_LEGAL_REASONS + - BAD_GATEWAY + - PRECONDITION_FAILED + type: string + statusDescription: + type: string + type: object + UserRoleDefinition: + description: List of roles + properties: + allowedActions: + description: List of actions that this role allows + items: + $ref: '#/components/schemas/ServiceAccess' + type: array + displayName: + description: Display Name of the role + type: string + name: + description: Name of the role + type: string + product: + $ref: '#/components/schemas/RoleProduct' + shortDisplayName: + description: Short Display Name of the role + type: string + type: object + User: + description: information about the user + properties: + clientId: + description: unique auth client id of this user. + type: string + createdDate: + description: Created date for this user + type: string + email: + description: Email address of the user. This should be unique. + maxLength: 128 + minLength: 7 + type: string + firstLoginDate: + description: Last time the user logged in + type: string + hasBetaAccess: + description: Determines if the user has beta access + type: boolean + hasProfile: + description: indicate if user profile has been completed. + type: boolean + hasSignedAODTEULA: + description: indicates if user has accepted AODT End User License Agreement. + type: boolean + hasSignedAiFoundryPartnershipsEULA: + description: indicates if user has accepted AI Foundry Partnerships eula + type: boolean + hasSignedBaseCommandEULA: + description: indicates if user has accepted Base Command End User License Agreement. + type: boolean + hasSignedBaseCommandManagerEULA: + description: indicates if user has accepted Base Command Manager End User License Agreement. + type: boolean + hasSignedBioNeMoEULA: + description: indicates if user has accepted BioNeMo End User License Agreement. + type: boolean + hasSignedContainerPublishingEULA: + description: indicates if user has accepted container publishing eula + type: boolean + hasSignedCuOptEULA: + description: indicates if user has accepted CuOpt eula + type: boolean + hasSignedEULA: + description: Determines if the user has signed the NGC End User License Agreement. + type: boolean + hasSignedEarth2EULA: + description: indicates if user has accepted Earth-2 eula + type: boolean + hasSignedEgxEULA: + description: '[Deprecated] indicates if user has accepted EGX End User License Agreement.' + type: boolean + hasSignedFleetCommandEULA: + description: indicates if user has accepted Fleet Command End User License Agreement. + type: boolean + hasSignedLlmEULA: + description: indicates if user has accepted LLM End User License Agreement. + type: boolean + hasSignedNVAIEEULA: + description: indicates if user has accepted Fleet Command End User License Agreement. + type: boolean + hasSignedNVQCEULA: + description: indicates if user has accepted Nvidia Quantum Cloud End User License Agreement. + type: boolean + hasSignedNvidiaEULA: + description: Determines if the user has signed the NVIDIA End User License Agreement. + type: boolean + hasSignedOmniverseEULA: + description: indicates if user has accepted Omniverse End User License Agreement. + type: boolean + hasSignedPrivacyPolicy: + description: Determines if the user has signed the Privacy Policy. + type: boolean + hasSignedThirdPartyRegistryShareEULA: + description: indicates if user has consented to share their registration info with other parties + type: boolean + hasSubscribedToEmail: + description: Determines if the user has opted in email subscription. + type: boolean + id: + description: unique Id of this user. + format: int64 + type: integer + idpType: + description: Type of IDP, Identity Provider. Used for login. + enum: + - NVIDIA + - ENTERPRISE + type: string + isActive: + description: Determines if the user is active or not. + type: boolean + isDeleted: + description: Indicates if user was deleted from the system. + type: boolean + isSAML: + description: Determines if the user is a SAML account or not. + type: boolean + jobPositionTitle: + description: Title of user's job position. + type: string + lastLoginDate: + description: Last time the user logged in + type: string + name: + description: user name + maxLength: 64 + minLength: 1 + type: string + roles: + description: List of roles that the user have + items: + $ref: '#/components/schemas/UserRole' + type: array + starfleetId: + description: unique starfleet id of this user. + type: string + storageQuota: + description: Storage quota for this user. + items: + $ref: '#/components/schemas/UserStorageQuota' + type: array + updatedDate: + description: Updated date for this user + type: string + userMetadata: + $ref: '#/components/schemas/UserMetadata' + verified: + description: Is user's email or phone number is verified + type: boolean + type: object + UserRole: + description: List of roles that the user have + properties: + org: + $ref: '#/components/schemas/Organization' + orgRoles: + description: List of org role types that the user have + items: + description: List of org role types that the user have + type: string + type: array + roleTypes: + description: DEPRECATED - List of role types that the user have + items: + description: DEPRECATED - List of role types that the user have + type: string + type: array + targetSystemUserIdentifier: + $ref: '#/components/schemas/TargetSystemUserIdentifier' + team: + $ref: '#/components/schemas/Team' + teamRoles: + description: List of team role types that the user have + items: + description: List of team role types that the user have + type: string + type: array + type: object + SearchParamFilter: + properties: + field: + type: string + value: + type: string + type: object + SearchParamOrderBy: + properties: + field: + type: string + value: + enum: + - ASC + - DESC + type: string + type: object + PaginationInfo: + description: object that describes the pagination information + properties: + index: + description: Page index of results + format: int32 + type: integer + nextPage: + description: Serialized pointer to the next results page. Should be used for fetching next page. Can be empty + type: string + size: + description: Number of results in page + format: int32 + type: integer + totalPages: + description: Total number of pages available + format: int64 + type: integer + totalResults: + description: Total number of results available + format: int64 + type: integer + type: object + UserMetadata: + description: Metadata information about the user. + properties: + company: + description: Name of the company + maxLength: 128 + type: string + companyUrl: + description: Company URL + type: string + country: + description: Country of the user + type: string + firstName: + description: User's first name + maxLength: 255 + type: string + industry: + description: Industry segment + type: string + interest: + description: List of development areas that user has interest + items: + description: List of development areas that user has interest + type: string + type: array + lastName: + description: User's last name + maxLength: 255 + type: string + role: + description: Role of the user in the company + type: string + type: object + UserInvitation: + description: User invitation to an NGC org or team + properties: + createdDate: + description: Date on which the invitation was created. (ISO-8601 format) + type: string + email: + description: Email address of the user. + maxLength: 128 + minLength: 7 + type: string + id: + description: Unique invitation ID + type: string + isProcessed: + description: Flag indicating if the invitation has already been accepted by the user. + type: boolean + name: + description: user name + maxLength: 64 + minLength: 1 + type: string + org: + description: Org to which a user was invited. + type: string + roles: + description: List of roles that the user have. + items: + description: List of roles that the user have. + type: string + type: array + team: + description: Team to which a user was invited. + type: string + type: + description: Type of invitation. The invitation is either to an organization or to a team within organization. + enum: + - ORGANIZATION + - TEAM + type: string + type: object + Team: + description: Information about the team + properties: + description: + description: description of the team + type: string + id: + description: unique Id of this team. + format: int64 + type: integer + infinityManagerSettings: + $ref: '#/components/schemas/InfinityManagerSettings' + isDeleted: + description: indicates if the team is deleted or not + type: boolean + name: + description: team name + type: string + repoScanSettings: + $ref: '#/components/schemas/RepoScanSettings' + type: object + InfinityManagerSettings: + description: Infinity manager setting definition + properties: + infinityManagerEnableTeamOverride: + description: Allow override settings at team level. Only used in org level object + type: boolean + infinityManagerEnabled: + description: Enable the infinity manager or not. Used both in org and team level object + type: boolean + type: object + RepoScanSettings: + description: Repo scan setting definition + properties: + repoScanAllowOverride: + description: Allow org admin to override the org level repo scan settings + type: boolean + repoScanByDefault: + description: Allow repository scanning by default + type: boolean + repoScanEnableNotifications: + description: Sends notification to end user after scanning is done + type: boolean + repoScanEnableTeamOverride: + description: Allow override settings at team level. Only used in org level object + type: boolean + repoScanEnabled: + description: Enable the repository scan or not. Only used in org level object + type: boolean + repoScanShowResults: + description: Allow showing scan results to CLI or UI + type: boolean + type: object + Organization: + description: Information about the Organization + properties: + alternateContact: + $ref: '#/components/schemas/AlternateContact' + billingAccountId: + description: Billing account ID. + type: string + canAddOn: + description: Identifies if the org can be reused. + type: boolean + country: + description: ISO country code of the organization. + type: string + description: + description: Optional description of the organization. + type: string + displayName: + description: Name of the organization that will be shown to users. + maxLength: 255 + minLength: 1 + type: string + id: + description: Unique Id of this team. + format: int64 + type: integer + idpId: + description: Identity Provider ID. + type: string + industry: + description: Industry of the organization. + type: string + infinityManagerSettings: + $ref: '#/components/schemas/InfinityManagerSettings' + isDatasetServiceEnabled: + description: Dataset Service enable flag for an organization + type: boolean + isInternal: + description: Is NVIDIA internal org or not + type: boolean + isProto: + description: Indicates when the org is a proto org + type: boolean + isQuickStartEnabled: + description: Quick Start enable flag for an organization + type: boolean + isRegistrySSEEnabled: + description: If a server side encryption is enabled for private registry (models, resources) + type: boolean + isSecretsManagerServiceEnabled: + description: Secrets Manager Service enable flag for an organization + type: boolean + isSecureCredentialSharingServiceEnabled: + description: Secure Credential Sharing Service enable flag for an organization + type: boolean + isSeparateInfluxDbUsed: + description: If a separate influx db used for an organization in BCP for job telemetry + type: boolean + name: + description: Organization name. + type: string + ncaAccountNumber: + description: NVIDIA Cloud Account Number. + type: string + orgOwner: + $ref: '#/components/schemas/OrgOwner' + orgOwners: + description: Org owners + items: + $ref: '#/components/schemas/OrgOwner' + type: array + pecSfdcId: + description: Product end customer salesforce.com Id (external customer Id). pecSfdcId is for EMS (entitlement management service) to track external paid customer. + type: string + productEnablements: + items: + $ref: '#/components/schemas/ProductEnablement' + type: array + productSubscriptions: + items: + $ref: '#/components/schemas/ProductSubscription' + type: array + repoScanSettings: + $ref: '#/components/schemas/RepoScanSettings' + type: + enum: + - UNKNOWN + - CLOUD + - ENTERPRISE + - INDIVIDUAL + type: string + usersInfo: + $ref: '#/components/schemas/UsersInfo' + type: object + OrgOwnerV3: + description: Org owner. + properties: + email: + description: Email address of the org owner. + maxLength: 128 + type: string + fullName: + description: Org owner name. + maxLength: 64 + minLength: 1 + type: string + idpId: + description: Identity Provider ID of the org owner. + type: string + starfleetId: + description: Starfleet ID of the org owner. + type: string + required: + - email + type: object + ProductEnablement: + description: Product Enablement + properties: + expirationDate: + description: Date on which the subscription expires. The subscription is invalid after this date. (yyyy-MM-dd) + type: string + poDetails: + items: + $ref: '#/components/schemas/PurchaseOrder' + type: array + productName: + description: Product Name (NVAIE, BASE_COMMAND, REGISTRY, etc) + type: string + type: + description: Product Enablement Types + enum: + - NGC_ADMIN_EVAL + - NGC_ADMIN_NFR + - NGC_ADMIN_COMMERCIAL + - EMS_EVAL + - EMS_NFR + - EMS_COMMERCIAL + - NGC_ADMIN_DEVELOPER + type: string + required: + - productName + - type + type: object + ProductSubscription: + description: Product Subscription + properties: + emsEntitlementType: + description: 'EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL)' + enum: + - EMS_EVAL + - EMS_NFR + - EMS_COMMERICAL + - EMS_COMMERCIAL + type: string + expirationDate: + description: Date on which the subscription expires. The subscription is invalid after this date. (yyyy-MM-dd) + type: string + id: + description: Unique entitlement identifier + type: string + productName: + description: Product Name (NVAIE, BASE_COMMAND, FleetCommand, REGISTRY, etc). + type: string + startDate: + description: Date on which the subscription becomes active. (yyyy-MM-dd) + type: string + type: + description: 'Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, NGC_ADMIN_COMMERCIAL)' + enum: + - NGC_ADMIN_EVAL + - NGC_ADMIN_NFR + - NGC_ADMIN_COMMERCIAL + type: string + required: + - productName + type: object + OrgInvitation: + description: Org invitation to NGC + properties: + email: + description: Email address of the user. + type: string + protoOrgId: + description: Proto Org identifier. + type: string + type: object + ServiceAccess: + description: List of actions that this role allows + properties: + accessLevels: + description: List of access levels that this role allows + items: + description: List of access levels that this role allows + type: string + type: array + service: + description: Service that this role allows + type: string + type: object + RoleProduct: + description: Product information of the role + properties: + displayName: + description: Display Name of the product from the product catalog to which this role is associated with + type: string + name: + description: Name of the product from the product catalog to which this role is associated with + type: string + type: object + UserStorageQuota: + description: represents user storage quota for a given ace and available unused storage + properties: + aceId: + description: id of the ace + format: int64 + type: integer + aceName: + description: name of the ace + type: string + available: + description: Available space in bytes + format: int64 + type: integer + datasetCount: + description: Number of datasets that are a part of user's used storage + format: int64 + type: integer + datasetsUsage: + description: Space used by datasets in bytes + format: int64 + type: integer + orgName: + description: The org name that this user quota tied to. This is needed for analytics + type: string + quota: + description: Assigned quota in bytes + format: int64 + type: integer + resultsetCount: + description: Number of resultsets that are a part of user's used storage + format: int64 + type: integer + resultsetsUsage: + description: Space used by resultsets in bytes + format: int64 + type: integer + storageClusterDescription: + description: Description of this storage cluster + type: string + storageClusterName: + description: Name of storage cluster + type: string + storageClusterUuid: + description: Identifier to this storage cluster + type: string + workspacesCount: + description: Number of workspaces that are a part of user's used storage + format: int64 + type: integer + workspacesUsage: + description: Space used by workspaces in bytes + format: int64 + type: integer + type: object + TargetSystemUserIdentifier: + description: Information about the user who is attempting to run the job + properties: + gid: + description: gid of the user on this team + format: int64 + type: integer + orgName: + description: Org context for the job + type: string + starfleetId: + description: Starfleet ID of the user creating the job. + type: string + teamName: + description: Team context for the job + type: string + uid: + description: uid of the user on this team + format: int64 + type: integer + userId: + description: Unique ID of the user who submitted the job + format: int64 + type: integer + type: object + AlternateContact: + description: Org Owner Alternate Contact + properties: + email: + description: Alternate contact's email. + maxLength: 128 + minLength: 6 + type: string + fullName: + description: Full name of the alternate contact. + maxLength: 255 + type: string + type: object + OrgOwner: + description: Org owner. + properties: + email: + description: Email address of the org owner. + maxLength: 128 + type: string + fullName: + description: Org owner name. + maxLength: 64 + minLength: 1 + type: string + lastLoginDate: + description: Last time the org owner logged in. + type: string + required: + - email + type: object + UsersInfo: + description: Users information. + properties: + totalUsers: + description: Total number of users. + format: int64 + type: integer + type: object + PurchaseOrder: + description: Purchase Order. + properties: + entitlementId: + description: Entitlement identifier. + type: string + pkId: + description: PAK (Product Activation Key) identifier. + type: string + type: object +servers: + - url: https://api.ngc.nvidia.com diff --git a/provider-dev/source/private_registry.yaml b/provider-dev/source/private_registry.yaml new file mode 100644 index 0000000..c573f51 --- /dev/null +++ b/provider-dev/source/private_registry.yaml @@ -0,0 +1,17209 @@ +openapi: 3.1.0 +info: + title: NVIDIA NGC Private Registry + description: 'Org-scoped artifact metadata in the NGC private registry: models, resources, recipes, generic artifacts (helm charts, endpoints, blueprints, agents, playbooks, APIs, skills), versions and files, collections, shares, deployment parameters, encryption keys and workflows. Team-scoped twins are mapped as *_by_team methods (source: the Private Artifacts (Models) API definition, responses from the ngcsdk data classes).' + version: 0.0.1-SNAPSHOT +paths: + /encryption-keys: + get: + description: List encryption keys in org + operationId: listKeysInOrg + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/KeyListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List encryption keys in org + tags: + - Encryption Keys + /encryption-keys/{key_id}: + get: + description: List artifacts for encryption key in org + operationId: listArtifactsForKeyInOrg + parameters: + - description: Key ID + in: path + name: key_id + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: query + name: artifact-type + required: false + schema: + default: MODEL + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/KeyArtifactListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifacts for encryption key in org + tags: + - Encryption Keys + delete: + description: Revoke encryption key and disassociate from all artifacts in org + operationId: deleteKeyFromOrg + parameters: + - description: Key ID + in: path + name: key_id + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + responses: + '202': + content: + application/json: + schema: + $ref: '#/components/schemas/WorkflowStatusUrlResponse' + description: Accepted + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Revoke encryption key in org + tags: + - Encryption Keys + /team/{team_name}/encryption-keys: + get: + description: List encryption keys in org/team + operationId: listKeysInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/KeyListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List encryption keys in org/team + tags: + - Encryption Keys + /team/{team_name}/encryption-keys/{key_id}: + get: + description: List artifacts for encryption key in org/team + operationId: listArtifactsForKeyInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Key ID + in: path + name: key_id + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: query + name: artifactType + required: false + schema: + default: MODEL + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/KeyArtifactListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifacts for encryption key in org/team + tags: + - Encryption Keys + delete: + description: Revoke encryption key and disassociate from all artifacts in org/team + operationId: deleteKeyFromTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Key ID + in: path + name: key_id + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + responses: + '202': + content: + application/json: + schema: + $ref: '#/components/schemas/WorkflowStatusUrlResponse' + description: Accepted + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Revoke encryption key in org/team + tags: + - Encryption Keys + /team/{team}/workflows/{workflow_id}: + get: + description: Returns the current status (pending, running, completed, or failed) of an artifact-registry Temporal workflow execution within the specified organization and team. + operationId: getWorkflowStatusForTeam + parameters: + - description: Team name + in: path + name: team + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Workflow identifier + in: path + name: workflow_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + responses: + '200': + content: + '*/*': + schema: + $ref: '#/components/schemas/WorkflowStatusResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get team-scoped workflow status + tags: + - Workflows + /workflows/{workflow_id}: + get: + description: Returns the current status (pending, running, completed, or failed) of an artifact-registry Temporal workflow execution within the specified organization. + operationId: getWorkflowStatus + parameters: + - description: Workflow identifier + in: path + name: workflow_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + responses: + '200': + content: + '*/*': + schema: + $ref: '#/components/schemas/WorkflowStatusResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get workflow status + tags: + - Workflows + /collections: + get: + description: List collections the user can access in the specified org + operationId: listCollectionsInOrg + parameters: + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Order by + in: query + name: order-by + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List collections in org + tags: + - Collections + post: + description: Create collection in org + operationId: createCollectionInOrg + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create collection in org + tags: + - Collections + /collections/{collection_name}: + get: + description: Get collection details in org + operationId: getCollectionInOrg + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get collection in org + tags: + - Collections + patch: + description: Update collection details in org + operationId: updateCollectionInOrg + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update collection in org + tags: + - Collections + delete: + description: Delete collection in the specified org + operationId: deleteCollectionInOrg + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete collection in org + tags: + - Collections + /collections/{collection_name}/artifacts: + patch: + description: Patch collection in the specified org + operationId: patchCollectionInOrg + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionPatchRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Patch collection in org + tags: + - Collections + /collections/{collection_name}/artifacts/org/{artifact_org_name}/team/{artifact_team_name}/{artifact_type}/{artifact_name}: + put: + description: Add artifact to the specified collection in the specified org from another org and team + operationId: addArtifactToCollectionInOrgFromAnotherOrgAndTeam + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact organization name + in: path + name: artifact_org_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact team name + in: path + name: artifact_team_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Add artifact to collection in org from another org and team + tags: + - Collections + delete: + description: Remove artifact from the specified collection in the specified org from another org + operationId: removeArtifactFromCollectionInOrgFromAnotherOrgAndTeam + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact organization name + in: path + name: artifact_org_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact team name + in: path + name: artifact_team_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Remove artifact from collection in org from another org + tags: + - Collections + /collections/{collection_name}/artifacts/org/{artifact_org_name}/{artifact_type}/{artifact_name}: + put: + description: Add artifact to the specified collection in the specified org from another org + operationId: addArtifactToCollectionInOrgFromAnotherOrg + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact organization name + in: path + name: artifact_org_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Add artifact to collection in org from another org + tags: + - Collections + delete: + description: Remove artifact from the specified collection in the specified org from another org + operationId: removeArtifactFromCollectionInOrgFromAnotherOrg + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact organization name + in: path + name: artifact_org_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Remove artifact from collection in org from another org + tags: + - Collections + /collections/{collection_name}/artifacts/{artifact_type}: + get: + description: List collection artifacts the user can access in the specified org + operationId: listCollectionArtifactsInOrg + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Order by + in: query + name: order-by + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List collection artifacts in org + tags: + - Collections + /collections/{collection_name}/share/product: + put: + description: Publish collection to product + operationId: publishCollectionFromRequest + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionPublishRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Publish collection to product + tags: + - Publish + /collections/{collection_name}/{artifact_type}/{artifact_name}: + put: + description: Add artifact to the specified collection in the specified org + operationId: addArtifactToCollectionInOrg + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Add artifact to collection in org + tags: + - Collections + delete: + description: Remove artifact from the specified collection in the specified org + operationId: removeArtifactFromCollectionInOrg + parameters: + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Remove artifact from collection in org + tags: + - Collections + /helm-charts/{artifact_name}/versions: + get: + description: List chart versions in org + operationId: listHelmChartVersionsInOrg + parameters: + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List chart versions in org + tags: + - Helm Charts + /helm-charts/{artifact_name}/versions/{version_id}: + get: + description: Get chart version in org + operationId: getHelmChartVersionInOrg + parameters: + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get chart version in org + tags: + - Helm Charts + patch: + description: Update chart version information in org e.g. upload status + operationId: updateHelmChartVersionInOrg + parameters: + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update chart version in org + tags: + - Helm Charts + /models: + get: + description: This operation lists models the user can access in the org. + operationId: listModelsInOrg + parameters: + - deprecated: true + description: Application name + in: query + name: app-name + required: false + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - deprecated: true + description: '[Deprecated] Page reference, Use page-number instead' + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List models in org + tags: + - Models + post: + description: This operation creates a model in the org. + operationId: createModelInOrg + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModelCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create model in org + tags: + - Models + /models/{artifact_name}/versions/{version_id}/stash: + patch: + description: Stash artifact version information in org during upload paused state + operationId: stashArtifactVersionInOrg + parameters: + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Stash artifact version in org + tags: + - Model Version + /models/{model_name}: + get: + description: This operation gets info of a model in the org. + operationId: getModelInOrg + parameters: + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get model details in org + tags: + - Models + patch: + description: This operation updates details of a model in the org. + operationId: updateModelInOrg + parameters: + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModelUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update model in org + tags: + - Models + delete: + tags: + - Models + summary: Delete model in org + description: 'This operation deletes a model in the org (SDK evidence: ngcsdk registry/api/models.py remove_model; not declared in the published definition).' + operationId: deleteModelInOrg + parameters: + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + x-stackql-sdk-evidence: ngcsdk registry/api + /models/{model_name}/encryption-key: + delete: + description: Disassociate encryption key from model in org and mark it for offline deletion + operationId: disassociateKeyFromModelInOrg + parameters: + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + responses: + '202': + content: + application/json: + schema: + $ref: '#/components/schemas/WorkflowStatusUrlResponse' + description: Accepted + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Disassociate encryption key from model in org + tags: + - Models + /models/{model_name}/versions: + get: + description: List model versions in org + operationId: listModelVersionsInOrg + parameters: + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List model versions in org + tags: + - Model Version + post: + description: Create a new and empty model version in org. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org + operationId: createModelVersionInOrg + parameters: + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create model version in org + tags: + - Model Version + /models/{model_name}/versions/{version_id}: + get: + description: Get model version in org + operationId: getModelVersionInOrg + parameters: + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get model version in org + tags: + - Model Version + patch: + description: Update model version information in org e.g. upload status + operationId: updateModelVersionInOrg + parameters: + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + - description: Create zip of version content + in: query + name: create-zip + required: false + schema: + type: boolean + - description: Set version to latest + in: query + name: set-latest + required: false + schema: + type: boolean + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update model version in org + tags: + - Model Version + /models/{model_name}/versions/{version_id}/files: + get: + description: List files of the model version in org + operationId: listModeFilesInOrg + parameters: + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List model files in org + tags: + - Model Version Files + /recipes: + get: + description: List recipes the user can access in the specified org + operationId: listRecipesInOrg + parameters: + - description: Application name + in: query + name: app-name + required: false + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipes in org + tags: + - Resources + post: + description: Create recipe in org + operationId: createRecipeInOrg + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create recipe in org + tags: + - Resources + /recipes/{recipe_name}: + get: + description: Get recipe in org + operationId: getRecipeInOrg + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe in org + tags: + - Resources + patch: + description: Update recipe details in org + operationId: updateRecipeInOrg + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update recipe in org + tags: + - Resources + /recipes/{recipe_name}/versions: + get: + description: List recipe versions in org + operationId: listRecipeVersionsInOrg + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe versions in org + tags: + - Resource Versions + post: + description: Create recipe version in org. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org + operationId: createRecipeVersionInOrg + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create recipe version in org + tags: + - Resource Versions + /recipes/{recipe_name}/versions/{version_id}: + get: + description: Get recipe version in org + operationId: getRecipeVersionInOrg + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe version in org + tags: + - Resource Versions + patch: + description: Update recipe version information in org e.g. upload status + operationId: updateRecipeVersionInOrg + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Create zip of version content + in: query + name: create-zip + required: false + schema: + type: boolean + - description: Set version to latest + in: query + name: set-latest + required: false + schema: + type: boolean + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update recipe version in org + tags: + - Resource Versions + /recipes/{recipe_name}/versions/{version_id}/files: + get: + description: List recipe files in org + operationId: listRecipeFilesInOrg + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe files in org + tags: + - Resource Version Files endpoints + /repositories/{container_name}/associated-models: + get: + description: List associated model versions by container + operationId: listModelVersionsAssociatedByContainer + parameters: + - description: Container name + in: path + name: container_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List associated model versions by container + tags: + - Model Version + /repositories/{container_name}/tags/{container_tag}/associated-models: + get: + description: List associated model versions by container + operationId: listModelVersionsAssociatedByContainer_2 + parameters: + - description: Container name + in: path + name: container_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Container tag + in: path + name: container_tag + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List associated model versions by container + tags: + - Model Version + /resources: + get: + description: List recipes the user can access in the specified org + operationId: listRecipesInOrg_1 + parameters: + - description: Application name + in: query + name: app-name + required: false + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipes in org + tags: + - Resources + post: + description: Create recipe in org + operationId: createRecipeInOrg_1 + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create recipe in org + tags: + - Resources + /resources/{recipe_name}: + get: + description: Get recipe in org + operationId: getRecipeInOrg_1 + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe in org + tags: + - Resources + patch: + description: Update recipe details in org + operationId: updateRecipeInOrg_1 + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update recipe in org + tags: + - Resources + delete: + tags: + - Resources + summary: Delete resource in org + description: 'This operation deletes a resource in the org (SDK evidence: ngcsdk registry/api/resources.py remove; not declared in the published definition).' + operationId: deleteResourceInOrg + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + x-stackql-sdk-evidence: ngcsdk registry/api + /resources/{recipe_name}/versions: + get: + description: List recipe versions in org + operationId: listRecipeVersionsInOrg_1 + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe versions in org + tags: + - Resource Versions + post: + description: Create recipe version in org. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org + operationId: createRecipeVersionInOrg_1 + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create recipe version in org + tags: + - Resource Versions + /resources/{recipe_name}/versions/{version_id}: + get: + description: Get recipe version in org + operationId: getRecipeVersionInOrg_1 + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe version in org + tags: + - Resource Versions + patch: + description: Update recipe version information in org e.g. upload status + operationId: updateRecipeVersionInOrg_1 + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Create zip of version content + in: query + name: create-zip + required: false + schema: + type: boolean + - description: Set version to latest + in: query + name: set-latest + required: false + schema: + type: boolean + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update recipe version in org + tags: + - Resource Versions + /resources/{recipe_name}/versions/{version_id}/files: + get: + description: List recipe files in org + operationId: listRecipeFilesInOrg_1 + parameters: + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe files in org + tags: + - Resource Version Files endpoints + /team/{team_name}/collections: + get: + description: List collections the user can access in the specified org and team + operationId: listCollectionsInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Order by + in: query + name: order-by + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List collections in team + tags: + - Collections + post: + description: Create collection in org and team + operationId: createCollectionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create collection in org and team + tags: + - Collections + /team/{team_name}/collections/{collection_name}: + get: + description: Get collection details in team + operationId: getCollectionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get collection in team + tags: + - Collections + patch: + description: Update collection details in team + operationId: updateCollectionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update collection in team + tags: + - Collections + delete: + description: Delete collection in the specified org and team + operationId: deleteCollectionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete collection in org and team + tags: + - Collections + /team/{team_name}/collections/{collection_name}/artifacts: + patch: + description: Patch collection in the specified org and team + operationId: patchCollectionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionPatchRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Patch collection in org and team + tags: + - Collections + /team/{team_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/team/{artifact_team_name}/{artifact_type}/{artifact_name}: + put: + description: Add artifact to the specified collection in the specified org and team from another org and team + operationId: addArtifactToCollectionInTeamFromAnotherOrgAndTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact organization name + in: path + name: artifact_org_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact team name + in: path + name: artifact_team_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Add artifact to collection in org and team from another org and team + tags: + - Collections + delete: + description: Remove artifact from the specified collection in the specified org and team from another org and team + operationId: removeArtifactFromCollectionInTeamFromAnotherOrgAndTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact organization name + in: path + name: artifact_org_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact team name + in: path + name: artifact_team_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Remove artifact from collection in org and team from another org and team + tags: + - Collections + /team/{team_name}/collections/{collection_name}/artifacts/org/{artifact_org_name}/{artifact_type}/{artifact_name}: + put: + description: Add artifact to the specified collection in the specified org and team from another org + operationId: addArtifactToCollectionInTeamFromAnotherOrg + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact organization name + in: path + name: artifact_org_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Add artifact to collection in org and team from another org + tags: + - Collections + delete: + description: Remove artifact from the specified collection in the specified org and team from another org + operationId: removeArtifactFromCollectionInTeamFromAnotherOrg + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact organization name + in: path + name: artifact_org_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Remove artifact from collection in org and team from another org + tags: + - Collections + /team/{team_name}/collections/{collection_name}/artifacts/{artifact_type}: + get: + description: List collection artifacts the user can access in the specified org and team + operationId: listCollectionArtifactsInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Order by + in: query + name: order-by + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List collection artifacts in org and team + tags: + - Collections + /team/{team_name}/collections/{collection_name}/share/product: + put: + description: Publish collection to product + operationId: publishCollectionFromRequest_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionPublishRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Publish collection to product + tags: + - Publish + /team/{team_name}/collections/{collection_name}/{artifact_type}/{artifact_name}: + put: + description: Add artifact to the specified collection in the specified org and team + operationId: addArtifactToCollectionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Add artifact to collection in org and team + tags: + - Collections + delete: + description: Remove artifact from the specified collection in the specified org and team + operationId: removeArtifactFromCollectionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Collection name + in: path + name: collection_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Remove artifact from collection in org and team + tags: + - Collections + /team/{team_name}/helm-charts/{artifact_name}/versions: + get: + description: List chart versions in team + operationId: listHelmChartVersionsInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List chart versions in team + tags: + - Helm Charts + /team/{team_name}/helm-charts/{artifact_name}/versions/{version_id}: + get: + description: Get chart version in team + operationId: getHelmChartVersionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get chart version in team + tags: + - Helm Charts + patch: + description: Update chart version information in team e.g. upload status + operationId: updateHelmChartVersionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update chart version in team + tags: + - Helm Charts + /team/{team_name}/models: + get: + description: This operation lists models the user can access in the org/team. + operationId: listModelsInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - deprecated: true + description: Application name + in: query + name: app-name + required: false + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - deprecated: true + description: '[Deprecated] Page reference, Use page-number instead' + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List models in team + tags: + - Models + post: + description: This operation creates a model in the org/team. + operationId: createModelInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModelCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create model in team + tags: + - Models + /team/{team_name}/models/{artifact_name}/versions/{version_id}/stash: + patch: + description: Stash artifact version information in team in model version upload paused state + operationId: stashArtifactVersionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Stash artifact version in team + tags: + - Model Version + /team/{team_name}/models/{model_name}: + get: + description: This operation gets info of a model in the org/team. + operationId: getModelInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get model in team + tags: + - Models + patch: + description: This operation updates details of a model in the org/team. + operationId: updateModelInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModelUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update model in team + tags: + - Models + delete: + tags: + - Models + summary: Delete model in org/team + description: 'This operation deletes a model in the org/team (SDK evidence: ngcsdk registry/api/models.py remove_model; not declared in the published definition).' + operationId: deleteModelInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + x-stackql-sdk-evidence: ngcsdk registry/api + /team/{team_name}/models/{model_name}/encryption-key: + delete: + description: Disassociate encryption key from model in team and mark it for offline deletion + operationId: disassociateKeyFromModelInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + responses: + '202': + content: + application/json: + schema: + $ref: '#/components/schemas/WorkflowStatusUrlResponse' + description: Accepted + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Disassociate encryption key from model in team + tags: + - Models + /team/{team_name}/models/{model_name}/versions: + get: + description: List model versions in team + operationId: listModelVersionsInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List model versions in team + tags: + - Model Version + post: + description: Create model version in team. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org + operationId: createModelVersionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create model version in team. + tags: + - Model Version + /team/{team_name}/models/{model_name}/versions/{version_id}: + get: + description: Get model version in team + operationId: getModelVersionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get model version in team + tags: + - Model Version + patch: + description: Update model version information in team e.g. upload status + operationId: updateModelVersionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + - description: Create zip of version content + in: query + name: create-zip + required: false + schema: + type: boolean + - description: Set version to latest + in: query + name: set-latest + required: false + schema: + type: boolean + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update model version in team + tags: + - Model Version + /team/{team_name}/models/{model_name}/versions/{version_id}/files: + get: + description: List files of the model version in team + operationId: listModeFilesInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Model name + in: path + name: model_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List model files in team + tags: + - Model Version Files + /team/{team_name}/recipes: + get: + description: List recipes the user can access in the specified org and team + operationId: listRecipesInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Application name + in: query + name: app-name + required: false + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipes in team + tags: + - Resources + post: + description: Create recipe in team + operationId: createRecipeInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create recipe in team + tags: + - Resources + /team/{team_name}/recipes/{recipe_name}: + get: + description: Get recipe details in team + operationId: getRecipeInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe in team + tags: + - Resources + patch: + description: Update recipe details in team + operationId: updateRecipeInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update recipe in team + tags: + - Resources + /team/{team_name}/recipes/{recipe_name}/versions: + get: + description: List recipe versions in team + operationId: listRecipeVersionsInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe versions in team + tags: + - Resource Versions + post: + description: Create recipe version in team. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org + operationId: createRecipeVersionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create recipe version in team + tags: + - Resource Versions + /team/{team_name}/recipes/{recipe_name}/versions/{version_id}: + get: + description: Get recipe version in team + operationId: getRecipeVersionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe version in team + tags: + - Resource Versions + patch: + description: Update recipe version information in team e.g. upload status + operationId: updateRecipeVersionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Create zip of version content + in: query + name: create-zip + required: false + schema: + type: boolean + - description: Set version to latest + in: query + name: set-latest + required: false + schema: + type: boolean + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update recipe version in team + tags: + - Resource Versions + /team/{team_name}/recipes/{recipe_name}/versions/{version_id}/files: + get: + description: List recipe files in team + operationId: listRecipeFilesInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe files in team + tags: + - Resource Version Files endpoints + /team/{team_name}/repositories/{container_name}/associated-models: + get: + description: List associated model versions by container + operationId: listModelVersionsAssociatedByContainer_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Container name + in: path + name: container_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List associated model versions by container + tags: + - Model Version + /team/{team_name}/repositories/{container_name}/tags/{container_tag}/associated-models: + get: + description: List associated model versions by container + operationId: listModelVersionsAssociatedByContainer_3 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Container name + in: path + name: container_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Container tag + in: path + name: container_tag + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 1000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModelVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List associated model versions by container + tags: + - Model Version + /team/{team_name}/resources: + get: + description: List recipes the user can access in the specified org and team + operationId: listRecipesInTeam_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Application name + in: query + name: app-name + required: false + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipes in team + tags: + - Resources + post: + description: Create recipe in team + operationId: createRecipeInTeam_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create recipe in team + tags: + - Resources + /team/{team_name}/resources/{recipe_name}: + get: + description: Get recipe details in team + operationId: getRecipeInTeam_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe in team + tags: + - Resources + patch: + description: Update recipe details in team + operationId: updateRecipeInTeam_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update recipe in team + tags: + - Resources + delete: + tags: + - Resources + summary: Delete resource in org/team + description: 'This operation deletes a resource in the org/team (SDK evidence: ngcsdk registry/api/resources.py remove; not declared in the published definition).' + operationId: deleteResourceInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + x-stackql-sdk-evidence: ngcsdk registry/api + /team/{team_name}/resources/{recipe_name}/versions: + get: + description: List recipe versions in team + operationId: listRecipeVersionsInTeam_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Sort order + in: query + name: sort-order + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Release Type + in: query + name: release-type + required: false + schema: + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe versions in team + tags: + - Resource Versions + post: + description: Create recipe version in team. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org + operationId: createRecipeVersionInTeam_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create recipe version in team + tags: + - Resource Versions + /team/{team_name}/resources/{recipe_name}/versions/{version_id}: + get: + description: Get recipe version in team + operationId: getRecipeVersionInTeam_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get recipe version in team + tags: + - Resource Versions + patch: + description: Update recipe version information in team e.g. upload status + operationId: updateRecipeVersionInTeam_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Create zip of version content + in: query + name: create-zip + required: false + schema: + type: boolean + - description: Set version to latest + in: query + name: set-latest + required: false + schema: + type: boolean + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update recipe version in team + tags: + - Resource Versions + /team/{team_name}/resources/{recipe_name}/versions/{version_id}/files: + get: + description: List recipe files in team + operationId: listRecipeFilesInTeam_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Recipe name + in: path + name: recipe_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page reference + in: query + name: page-reference + required: false + schema: + format: UTF-8 + maxLength: 1024 + minLength: 0 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecipeVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List recipe files in team + tags: + - Resource Version Files endpoints + /team/{team_name}/{artifact_type}: + get: + description: List artifacts the user can access in the specified org and team + operationId: listArtifactsInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifacts in team + tags: + - Artifacts + post: + description: Create artifact in team + operationId: createArtifactInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create artifact in team + tags: + - Artifacts + /team/{team_name}/{artifact_type}/{artifact_name}: + get: + description: Get artifact details in team + operationId: getArtifactInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get artifact in team + tags: + - Artifacts + put: + description: Replace artifact details in team + operationId: replaceArtifactInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Replace artifact in team + tags: + - Artifacts + patch: + description: Update artifact details in team + operationId: updateArtifactInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update artifact in team + tags: + - Artifacts + delete: + description: Delete artifact in team + operationId: deleteArtifactInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete artifact in team + tags: + - Artifacts + /team/{team_name}/{artifact_type}/{artifact_name}/catalog/flags: + get: + description: Get the Catalog Public flags for artifact in team + operationId: getPublicFlagsInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactCatalogFlags' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get Catalog flags + tags: + - Publish + /team/{team_name}/{artifact_type}/{artifact_name}/collections: + get: + description: List artifact collections the user can access in the specified org and team + operationId: listArtifactCollectionsInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Order by + in: query + name: order-by + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifact collections in org and team + tags: + - Collections + /team/{team_name}/{artifact_type}/{artifact_name}/collections/sync-release-type-labels: + post: + description: Sync release type labels for all collections containing this artifact. Internal API for service-to-service communication. + operationId: syncCollectionReleaseTypeLabelsForArtifact_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Sync collection release type labels for artifact + tags: + - Collections + /team/{team_name}/{artifact_type}/{artifact_name}/deployments/params: + get: + description: List artifact deployment parameters in team + operationId: listArtifactDeploymentParametersInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Inherit CSP parameters + in: query + name: inherit-csp-parameters + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifact deployment parameters in team + tags: + - Artifact deployment parameters + /team/{team_name}/{artifact_type}/{artifact_name}/deployments/{csp_name}/params: + get: + description: Get artifact deployment parameters details in team + operationId: getArtifactDeploymentParametersInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Inherit CSP parameters + in: query + name: inherit-csp-parameters + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get artifact deployment parameters details in team + tags: + - Artifact deployment parameters + post: + description: Create artifact deployment parameters in team + operationId: createArtifactDeploymentParametersInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: No auto labels + in: query + name: no-auto-labels + required: false + schema: + type: boolean + - description: Merge CSP parameters in response + in: query + name: merge-csp-parameters + required: false + schema: + type: boolean + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Conflict + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create artifact deployment parameters in team + tags: + - Artifact deployment parameters + patch: + description: Update artifact deployment parameters in team + operationId: updateArtifactDeploymentParametersInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Merge CSP parameters in response + in: query + name: merge-csp-parameters + required: false + schema: + type: boolean + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Conflict + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update artifact deployment parameters in team + tags: + - Artifact deployment parameters + delete: + description: Delete artifact deployment parameters in team + operationId: deleteArtifactDeploymentParametersInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Conflict + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete artifact deployment parameters in team + tags: + - Artifact deployment parameters + /team/{team_name}/{artifact_type}/{artifact_name}/license/acceptance: + post: + description: Record license acceptance for an org artifact. + operationId: acceptArtifactLicense_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AcceptArtifactLicenseRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Accept artifact license + tags: + - Publish + /team/{team_name}/{artifact_type}/{artifact_name}/release-type: + put: + description: Updates the release type (for example GA, EA, beta) of an artifact version within the specified organization and optional team. + operationId: updateReleaseLabel_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateReleaseTypeRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update artifact version release type + tags: + - Publish + /team/{team_name}/{artifact_type}/{artifact_name}/share: + put: + description: Publish artifact to public + operationId: publishArtifact_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Indicates if guest users can download this artifact + in: query + name: guest-can-download + required: true + schema: + type: boolean + - description: Indicates if artifact is listed publicly + in: query + name: public-can-list + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Publish artifact to public + tags: + - Publish + delete: + description: Undo publishing of artifact to public + operationId: undoPublishArtifact_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Undo publishing of artifact to public + tags: + - Publish + /team/{team_name}/{artifact_type}/{artifact_name}/share/product: + put: + description: Publish artifact to product + operationId: publishArtifactFromRequest_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactPublishRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Publish artifact to product + tags: + - Publish + delete: + description: Undo publishing of product artifacts + operationId: undoPublishProduct_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Undo publishing of product artifacts + tags: + - Publish + /team/{team_name}/{artifact_type}/{artifact_name}/terms-of-service: + put: + description: Update artifact terms of service + operationId: updateTermsOfService_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactPublishRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update artifact terms of service + tags: + - Publish + /team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}: + delete: + description: Delete a artifact version in team + operationId: deleteArtifactVersionInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete a artifact version in team + tags: + - Artifact Versions + /team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/configs: + patch: + description: Update artifact version with configs like policy badge + operationId: updateTagLevelPublishConfigs_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateArtifactVersionConfigs' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Publish artifact version with configs like policy badge + tags: + - Publish + /team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/deployments/{csp_name}: + post: + description: Create artifact version deployment url in team + operationId: createArtifactDeploymentUrlInTeam + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentUrlCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentUrlResponse' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Conflict + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create artifact version deployment url in team + tags: + - Artifact deployment parameters + /team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/files: + get: + description: List files of the artifact version in team + operationId: listArtifactFilesInTeam + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifact files in team + tags: + - Artifact Version Files + /team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/signature: + put: + description: Request to sign artifact version + operationId: signArtifactVersion_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactDownloadResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + tags: + - ArtifactSigning + /{artifact_type}: + get: + description: List artifacts the user can access in the specified org + operationId: listArtifactsInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifacts in org + tags: + - Artifacts + post: + description: Create artifact in org + operationId: createArtifactInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create artifact in org + tags: + - Artifacts + /{artifact_type}/{artifact_name}: + get: + description: Get artifact details in org + operationId: getArtifactInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get artifact in org + tags: + - Artifacts + put: + description: Replace artifact details in org + operationId: replaceArtifactInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Replace artifact in org + tags: + - Artifacts + patch: + description: Update artifact details in org + operationId: updateArtifactInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update artifact in org + tags: + - Artifacts + delete: + description: Delete artifact in org + operationId: deleteArtifactInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete artifact in org + tags: + - Artifacts + /{artifact_type}/{artifact_name}/catalog/flags: + get: + description: Get the Catalog Public flags for artifact in org + operationId: getPublicFlagsInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactCatalogFlags' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get Catalog flags + tags: + - Publish + /{artifact_type}/{artifact_name}/collections: + get: + description: List artifact collections the user can access in the specified org + operationId: listArtifactCollectionsInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + - description: Order by + in: query + name: order-by + required: false + schema: + enum: + - ALPHABETIC_ASC + - ALPHABETIC_DESC + - CREATED_DATE_ASC + - CREATED_DATE_DESC + - SEMVER_ASC + - SEMVER_DESC + - DISPLAY_NAME_ASC + - DISPLAY_NAME_DESC + - UPDATED_DATE_ASC + - UPDATED_DATE_DESC + - PUBLISHER_ASC + - PUBLISHER_DESC + - BUILT_BY_ASC + - BUILT_BY_DESC + - RESOURCE_ID_ASC + - RESOURCE_ID_DESC + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Resolve labels + in: query + name: resolve-labels + required: false + schema: + type: boolean + - description: Remove unresolved labels + in: query + name: remove-unresolved-labels + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifact collections in org + tags: + - Collections + /{artifact_type}/{artifact_name}/collections/sync-release-type-labels: + post: + description: Sync release type labels for all collections containing this artifact. Internal API for service-to-service communication. + operationId: syncCollectionReleaseTypeLabelsForArtifact + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Sync collection release type labels for artifact + tags: + - Collections + /{artifact_type}/{artifact_name}/deployments/params: + get: + description: List artifact deployment parameters in org + operationId: listArtifactDeploymentParametersInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Inherit CSP parameters + in: query + name: inherit-csp-parameters + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifact deployment parameters in org + tags: + - Artifact deployment parameters + /{artifact_type}/{artifact_name}/deployments/{csp_name}/params: + get: + description: Get artifact deployment parameters details in org + operationId: getArtifactDeploymentParametersInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Inherit CSP parameters + in: query + name: inherit-csp-parameters + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get artifact deployment parameters details in org + tags: + - Artifact deployment parameters + post: + description: Create artifact deployment parameters in org + operationId: createArtifactDeploymentParametersInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: No auto labels + in: query + name: no-auto-labels + required: false + schema: + type: boolean + - description: Merge CSP parameters in response + in: query + name: merge-csp-parameters + required: false + schema: + type: boolean + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Conflict + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create artifact deployment parameters in org + tags: + - Artifact deployment parameters + patch: + description: Update artifact deployment parameters in org + operationId: updateArtifactDeploymentParametersInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Merge CSP parameters in response + in: query + name: merge-csp-parameters + required: false + schema: + type: boolean + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParametersUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentParameters' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Conflict + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update artifact deployment parameters in org + tags: + - Artifact deployment parameters + delete: + description: Delete artifact deployment parameters in org + operationId: deleteArtifactDeploymentParametersInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Conflict + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete artifact deployment parameters in org + tags: + - Artifact deployment parameters + /{artifact_type}/{artifact_name}/license/acceptance: + post: + description: Record license acceptance for an org artifact. + operationId: acceptArtifactLicense + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AcceptArtifactLicenseRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Accept artifact license + tags: + - Publish + /{artifact_type}/{artifact_name}/release-type: + put: + description: Updates the release type (for example GA, EA, beta) of an artifact version within the specified organization and optional team. + operationId: updateReleaseLabel + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateReleaseTypeRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update artifact version release type + tags: + - Publish + /{artifact_type}/{artifact_name}/share: + put: + description: Publish artifact to public + operationId: publishArtifact + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Indicates if guest users can download this artifact + in: query + name: guest-can-download + required: true + schema: + type: boolean + - description: Indicates if artifact is listed publicly + in: query + name: public-can-list + required: false + schema: + type: boolean + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Publish artifact to public + tags: + - Publish + delete: + description: Undo publishing of artifact to public + operationId: undoPublishArtifact + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Undo publishing of artifact to public + tags: + - Publish + /{artifact_type}/{artifact_name}/share/product: + put: + description: Publish artifact to product + operationId: publishArtifactFromRequest + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactPublishRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Publish artifact to product + tags: + - Publish + delete: + description: Undo publishing of product artifacts + operationId: undoPublishProduct + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Undo publishing of product artifacts + tags: + - Publish + /{artifact_type}/{artifact_name}/terms-of-service: + put: + description: Update artifact terms of service + operationId: updateTermsOfService + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactPublishRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update artifact terms of service + tags: + - Publish + /{artifact_type}/{artifact_name}/versions/{version_id}: + delete: + description: Delete a artifact version in org + operationId: deleteArtifactVersionInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete a artifact version in org + tags: + - Artifact Versions + /{artifact_type}/{artifact_name}/versions/{version_id}/configs: + patch: + description: Update artifact version with configs like policy badge + operationId: updateTagLevelPublishConfigs + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateArtifactVersionConfigs' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Publish artifact version with configs like policy badge + tags: + - Publish + /{artifact_type}/{artifact_name}/versions/{version_id}/deployments/{csp_name}: + post: + description: Create artifact version deployment url in org + operationId: createArtifactDeploymentUrlInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - repositories + - recipes + - models + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Cloud service provider name + in: path + name: csp_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentUrlCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentUrlResponse' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Conflict + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create artifact version deployment url in org + tags: + - Artifact deployment parameters + /{artifact_type}/{artifact_name}/versions/{version_id}/files: + get: + description: List files of the artifact version in org + operationId: listArtifactFilesInOrg + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Page size + in: query + name: page-size + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 5000 + minLength: 0 + minimum: 1 + type: string + - description: Page number - zero based index + in: query + name: page-number + required: false + schema: + format: UTF-8 + maxLength: 262144 + maximum: 10000 + minLength: 0 + minimum: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactVersionFileListResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: List artifact files in org + tags: + - Artifact Version Files + /{artifact_type}/{artifact_name}/versions/{version_id}/signature: + put: + description: Request to sign artifact version + operationId: signArtifactVersion + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ArtifactDownloadResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + tags: + - ArtifactSigning + /team/{team_name}/{artifact_type}/{artifact_name}/versions/{version_id}/malware-scan: + post: + description: Initiates malwares can for the artifact + operationId: initiateMalwareScan_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + - description: Contact email + in: query + name: contact-email + required: false + schema: + format: UTF-8 + maxLength: 320 + minLength: 0 + type: string + - description: Nspect identifier + in: query + name: nspect-id + required: false + schema: + format: UTF-8 + maxLength: 64 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Initiates malwares can for the artifact + tags: + - MalwareScan + /team/{team_name}/{artifact_type}/spec: + post: + description: Create AI Playground for artifactType + operationId: createModelArtifactsSpec_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - models + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create AI Playground for artifactType + tags: + - AIPlayground + /team/{team_name}/{artifact_type}/{artifact_name}/purge: + delete: + description: Purge Search DB for deleted artifacts + operationId: purgeDeletedArtifact_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Purge Search DB + tags: + - Artifacts + /team/{team_name}/{artifact_type}/{artifact_name}/spec: + get: + description: Get AI Playground for artifactType + operationId: getModelArtifactsSpec_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - models + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Model name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get AI Playground for artifactType + tags: + - AIPlayground + put: + description: Update AI Playground for artifactType + operationId: updateModelArtifactsSpec_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - models + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Model name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update AI Playground for artifactType + tags: + - AIPlayground + delete: + description: Delete AI Playground for artifactType + operationId: deleteModelArtifactsSpec_1 + parameters: + - description: Team name + in: path + name: team_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - models + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Model name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete AI Playground for artifactType + tags: + - AIPlayground + /{artifact_type}/{artifact_name}/versions/{version_id}/malware-scan: + post: + description: Initiates malwares can for the artifact + operationId: initiateMalwareScan + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 255 + minLength: 0 + type: string + - description: Version ID + in: path + name: version_id + required: true + schema: + format: UTF-8 + maxLength: 512 + minLength: 0 + type: string + - description: Contact email + in: query + name: contact-email + required: false + schema: + format: UTF-8 + maxLength: 320 + minLength: 0 + type: string + - description: Nspect identifier + in: query + name: nspect-id + required: false + schema: + format: UTF-8 + maxLength: 64 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Initiates malwares can for the artifact + tags: + - MalwareScan + /{artifact_type}/spec: + post: + description: Create AI Playground for artifactType + operationId: createModelArtifactsSpec + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - models + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Create AI Playground for artifactType + tags: + - AIPlayground + /{artifact_type}/{artifact_name}/purge: + delete: + description: Purge Search DB for deleted artifacts + operationId: purgeDeletedArtifact + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Artifact name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Purge Search DB + tags: + - Artifacts + /{artifact_type}/{artifact_name}/spec: + get: + description: Get AI Playground for artifactType + operationId: getModelArtifactsSpec + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - models + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Model name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Get AI Playground for artifactType + tags: + - AIPlayground + put: + description: Update AI Playground for artifactType + operationId: updateModelArtifactsSpec + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - models + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Model name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AIPlaygroundResponse' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Update AI Playground for artifactType + tags: + - AIPlayground + delete: + description: Delete AI Playground for artifactType + operationId: deleteModelArtifactsSpec + parameters: + - description: Artifact type + in: path + name: artifact_type + required: true + schema: + enum: + - models + - helm-charts + - endpoints + - agents + - blueprints + - apis + - playbooks + - skills + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + - description: Model name + in: path + name: artifact_name + required: true + schema: + format: UTF-8 + maxLength: 262144 + minLength: 0 + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: OK + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Not Found + '429': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Too many requests + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + description: Internal Error + summary: Delete AI Playground for artifactType + tags: + - AIPlayground +components: + schemas: + KeyListResponse: + description: Response to list keys request + properties: + encryptionKeys: + items: + $ref: '#/components/schemas/KeyItem' + type: array + type: object + Response: + properties: + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + WorkflowStatusUrlResponse: + description: Response containing workflow status URL and ID + properties: + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + statusUrl: + description: URL to check the workflow status + type: string + workflowId: + description: ID of the workflow + type: string + type: object + KeyArtifactListResponse: + description: Response containing a list of artifacts associated with a key + properties: + artifacts: + items: + $ref: '#/components/schemas/ArtifactItem' + type: array + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + WorkflowStatusResponse: + description: Response containing workflow status information + properties: + cloneStatus: + $ref: '#/components/schemas/CloneStatus' + description: Progress of cloning artifact version files + duration: + description: Wall-clock execution duration as an ISO-8601 duration (e.g. PT1H30M5S, PT0.001S); Omitted while IN_PROGRESS. + type: string + endTime: + description: UTC instant when the workflow reached a closed state; omitted while IN_PROGRESS. + format: date-time + type: string + message: + description: Human-readable message about the workflow status + maxLength: 255 + type: string + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + startTime: + description: UTC instant when the workflow execution started. + format: date-time + type: string + status: + description: Current status of the workflow + enum: + - IN_PROGRESS + - COMPLETED + - FAILED + - CANCELED + - TERMINATED + - CONTINUED_AS_NEW + - TIMED_OUT + - UNKNOWN + type: string + workflowType: + description: Workflow type. + enum: + - CLONE + - CUSTOMER_MANAGED_KEY + type: string + required: + - message + - requestStatus + - status + type: object + CollectionListResponse: + description: Response to list collections request + properties: + collections: + items: + $ref: '#/components/schemas/Collection' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + CollectionCreateRequest: + description: Properties for the collections to be created + properties: + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + builtBy: + description: organization that built the collection + type: string + category: + enum: + - HEALTHCARE + - SMART_CITIES + - RETAIL + - MANUFACTURING + - SUPERCOMPUTING + - ROBOTICS + - AUTOMOTIVE + - TELECOMMUNICATIONS + - FINANCE + - OIL_AND_GAS + - NATURAL_LANGUAGE_PROCESSING + - AUTOMATIC_SPEECH_RECOGNITION + - INTELLIGENT_VIDEO_ANALYTICS + - OBJECT_DETECTION + - IMAGE_CLASSIFICATION + - ANNOTATION + - IMAGE_SYNTHESIS + - MACHINE_LEARNING + - DEEP_LEARNING + - INFRASTRUCTURE + - HIGH_PERFORMANCE_COMPUTING + - WINDOWS_RTX_ACCELERATED_MODELS + - BEGINNER + - ADVANCED + type: string + description: + description: Description of the collection + type: string + displayName: + description: Display name + maxLength: 64 + minLength: 2 + type: string + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + labelsV2: + items: + type: string + type: array + logo: + description: URL for the logo image + maxLength: 255 + type: string + name: + description: Unique name of the collection + maxLength: 128 + minLength: 1 + pattern: ^[a-z][a-z\d._-]*$ + type: string + ownerName: + description: Name of the user who owns this collection + maxLength: 255 + type: string + publisher: + description: organization that published the collection + maxLength: 255 + type: string + shortDescription: + description: Short description of the collection + maxLength: 255 + type: string + required: + - category + - name + - shortDescription + type: object + CollectionResponse: + description: Response to create collection request + properties: + collection: + $ref: '#/components/schemas/Collection' + description: Collection object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + CollectionUpdateRequest: + description: Properties for the collection to update + properties: + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + builtBy: + description: organization that built the collection + type: string + category: + enum: + - HEALTHCARE + - SMART_CITIES + - RETAIL + - MANUFACTURING + - SUPERCOMPUTING + - ROBOTICS + - AUTOMOTIVE + - TELECOMMUNICATIONS + - FINANCE + - OIL_AND_GAS + - NATURAL_LANGUAGE_PROCESSING + - AUTOMATIC_SPEECH_RECOGNITION + - INTELLIGENT_VIDEO_ANALYTICS + - OBJECT_DETECTION + - IMAGE_CLASSIFICATION + - ANNOTATION + - IMAGE_SYNTHESIS + - MACHINE_LEARNING + - DEEP_LEARNING + - INFRASTRUCTURE + - HIGH_PERFORMANCE_COMPUTING + - WINDOWS_RTX_ACCELERATED_MODELS + - BEGINNER + - ADVANCED + type: string + description: + description: Description of the collection + type: string + displayName: + description: Display name + maxLength: 64 + minLength: 2 + type: string + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + labelsV2: + items: + type: string + type: array + logo: + description: URL for the logo image + maxLength: 255 + type: string + ownerName: + description: Name of the user who owns this collection + maxLength: 255 + type: string + publisher: + description: organization that published the collection + maxLength: 255 + type: string + shortDescription: + description: Short description of the collection + maxLength: 255 + type: string + type: object + CollectionPatchRequest: + description: Properties for the collection to patch + properties: + operations: + items: + $ref: '#/components/schemas/CollectionOperation' + maxItems: 100 + maxItems: 100 + type: array + type: object + ArtifactListResponse: + description: Response to list artifacts request + properties: + artifacts: + items: + $ref: '#/components/schemas/Artifact' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + CollectionPublishRequest: + description: Request to publish a collection + properties: + accessType: + enum: + - LISTED + - EXCLUSIVE + - NOT_LISTED + type: string + canGuestPull: + type: boolean + canPublicList: + type: boolean + isPublic: + type: boolean + productNames: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + type: object + ArtifactVersionListResponse: + description: Response to list artifact versions request + properties: + artifact: + $ref: '#/components/schemas/Artifact' + description: Artifact object + artifactVersions: + items: + $ref: '#/components/schemas/ArtifactVersion' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ArtifactVersionResponse: + description: Response to artifact version request + properties: + artifact: + $ref: '#/components/schemas/Artifact' + description: Artifact object + artifactVersion: + $ref: '#/components/schemas/ArtifactVersion' + description: Artifact version object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ArtifactVersionUpdateRequest: + description: Version properties to update + properties: + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + description: + description: Description of the artifact version + maxLength: 255 + type: string + status: + description: Version status + enum: + - UPLOAD_PENDING + - UPLOAD_COMPLETE + type: string + type: object + ModelListResponse: + description: Response to list models request + properties: + models: + items: + $ref: '#/components/schemas/Model' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ModelCreateRequest: + description: Properties for the models to be created + properties: + application: + description: Application of the model + maxLength: 255 + type: string + bias: + description: Text describing bias in the model + type: string + builtBy: + description: organization that built the repository + maxLength: 255 + type: string + description: + description: Description of the model + type: string + displayName: + description: Display name + maxLength: 64 + minLength: 2 + type: string + encryptionKey: + $ref: '#/components/schemas/EncryptionKey' + description: Customer Managed Key shard configuration for the model + explainability: + description: Text describing explainability for this model + type: string + framework: + description: Framework used to train this model + maxLength: 255 + type: string + hasPlayground: + description: indicate if the Model has AI Playground configured + type: boolean + isPlaygroundEnabled: + description: indicate if AI Playground is enabled in the catalog + type: boolean + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + labelsV2: + items: + type: string + type: array + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + maxLength: 255 + type: string + modelFormat: + description: Format of the model + maxLength: 255 + type: string + name: + description: Unique name of the model + maxLength: 128 + minLength: 1 + pattern: ^[a-z][a-z\d._-]*$ + type: string + ownerName: + description: Name of the user who owns this model + maxLength: 255 + type: string + precision: + description: Precision this model was trained with + maxLength: 255 + type: string + privacy: + description: Text describing the privacy for this model + type: string + publicDatasetUsed: + $ref: '#/components/schemas/Dataset' + publisher: + description: organization that published the repository + maxLength: 255 + type: string + safetyAndSecurity: + description: Text for describing the safety and security in the model + type: string + shortDescription: + description: Short description of the model + maxLength: 255 + type: string + required: + - framework + - name + - precision + type: object + ModelResponse: + description: Response to create model request + properties: + model: + $ref: '#/components/schemas/Model' + description: Model object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ModelUpdateRequest: + description: Properties for the model to update + properties: + application: + description: Application of the model + maxLength: 255 + type: string + bias: + description: Text describing bias in the model + type: string + builtBy: + description: organization that built the repository + maxLength: 255 + type: string + description: + description: Description of the model + type: string + displayName: + description: Display name + maxLength: 64 + minLength: 2 + type: string + explainability: + description: Text describing explainability for this model + type: string + framework: + description: Framework used to train this model + maxLength: 255 + type: string + hasPlayground: + description: indicate if the Model has AI Playground configured + type: boolean + isPlaygroundEnabled: + description: indicate if AI Playground is enabled in the catalog + type: boolean + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + labelsV2: + items: + type: string + type: array + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + maxLength: 255 + type: string + modelFormat: + description: Format of the model + maxLength: 255 + type: string + ownerName: + description: Name of the user who owns this model + maxLength: 255 + type: string + precision: + description: Precision this model was trained with + maxLength: 255 + type: string + privacy: + description: Text describing the privacy for this model + type: string + publicDatasetUsed: + $ref: '#/components/schemas/Dataset' + publisher: + description: organization that published the repository + maxLength: 255 + type: string + safetyAndSecurity: + description: Text for describing the safety and security in the model + type: string + shortDescription: + description: Short description of the model + maxLength: 255 + type: string + type: object + ModelVersionListResponse: + description: Response to list model versions request + properties: + model: + $ref: '#/components/schemas/Model' + description: Model object + modelVersions: + items: + $ref: '#/components/schemas/ModelVersion' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ModelVersionCreateRequest: + description: Properties for the model version to be created + properties: + accuracyReached: + description: Accuracy this model reached + format: float + maximum: 100 + minimum: 0 + type: number + batchSize: + description: Batch size this model was trained with + format: int64 + minimum: 0 + type: integer + customMetrics: + items: + $ref: '#/components/schemas/CustomMetricGroup' + type: array + description: + description: Description of the model version + maxLength: 255 + type: string + gpuModel: + description: GPU model and memory + maxLength: 255 + type: string + id: + description: 'Deprecated: Please use version instead. Unique ID of the version' + format: int64 + maximum: 2147483647 + minimum: 1 + type: integer + memoryFootprint: + description: Model size/memory footprint for inference + maxLength: 255 + type: string + numberOfEpochs: + description: Number of epochs this model trained + format: int64 + minimum: 0 + type: integer + nvcfContainerConfiguration: + $ref: '#/components/schemas/NvcfContainerConfiguration' + description: NVCF container configuration parameters + nvcfDeploymentSpecification: + $ref: '#/components/schemas/NvcfDeploymentSpecification' + description: NVCF deployment specification + otherContents: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + ownerName: + description: Name of the user who owns this version + maxLength: 255 + type: string + versionId: + description: Unique version id. Please use this instead of 'id' + maxLength: 255 + pattern: '[^/]+' + type: string + type: object + ModelVersionResponse: + description: Response to create a model version request + properties: + model: + $ref: '#/components/schemas/Model' + description: Model object + modelVersion: + $ref: '#/components/schemas/ModelVersion' + description: Model version object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ModelVersionUpdateRequest: + description: Version properties to update + properties: + accuracyReached: + description: Accuracy this model reached + format: float + maximum: 100 + minimum: 0 + type: number + batchSize: + description: Batch size this model was trained with + format: int64 + minimum: 0 + type: integer + customMetrics: + items: + $ref: '#/components/schemas/CustomMetricGroup' + type: array + description: + description: Description of the model version + maxLength: 255 + type: string + gpuModel: + description: GPU model and memory + maxLength: 255 + type: string + memoryFootprint: + description: Model size/memory footprint for inference + maxLength: 255 + type: string + numberOfEpochs: + description: Number of epochs this model trained + format: int64 + minimum: 0 + type: integer + nvcfContainerConfiguration: + $ref: '#/components/schemas/NvcfContainerConfiguration' + description: NVCF container configuration parameters + nvcfDeploymentSpecification: + $ref: '#/components/schemas/NvcfDeploymentSpecification' + description: NVCF deployment specification + otherContents: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + ownerName: + description: Name of the user who owns this version + maxLength: 255 + type: string + status: + description: Version status + enum: + - UPLOAD_PENDING + - UPLOAD_COMPLETE + type: string + type: object + ModelVersionFileListResponse: + description: Response to list files for model version request + properties: + model: + $ref: '#/components/schemas/Model' + description: Model object + modelFiles: + items: + $ref: '#/components/schemas/ModelFile' + type: array + modelVersion: + $ref: '#/components/schemas/ModelVersion' + description: Model version object + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + RecipeListResponse: + description: Response to list recipes request + properties: + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + recipes: + items: + $ref: '#/components/schemas/Recipe' + type: array + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + RecipeCreateRequest: + description: Properties for the recipe to create + properties: + advanced: + description: Text for describing advanced information + type: string + application: + enum: + - CLASSIFICATION + - OBJECT_DETECTION + - SEGMENTATION + - TRANSLATION + - TEXT_TO_SPEECH + - RECOMMENDER + - SENTIMENT + - NLP + - KUBEFLOW_PIPELINE + - OTHER + - SPEAKER_VERIFICATION + - PUNCTUATION_AND_CAPITALIZATION + - DIALOG_STATE_TRACKING + - SPEAKER_DIARIZATION + - SPEAKER_RECOGNITION + - SPEECH_SYNTHESIS + - VOICE_ACTIVITY_DETECTION + - SPEECH_RECOGNITION + - LANGUAGE_MODELING + - NAMED_ENTITY_RECOGNITION + - TEXT_CLASSIFICATION + - TEXT_PROCESSING + - QUESTION_ANSWERING + - CONTENT_GENERATION + type: string + builtBy: + description: organization that built the recipe + maxLength: 255 + type: string + description: + description: Description of the recipe + type: string + displayName: + description: Display name + maxLength: 64 + minLength: 2 + type: string + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + labelsV2: + items: + type: string + type: array + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + maxLength: 255 + type: string + modelFormat: + description: Format of the model this recipe produces + maxLength: 255 + type: string + name: + description: Unique name of the recipe + maxLength: 128 + minLength: 1 + pattern: ^[a-z][a-z\d._-]*$ + type: string + performance: + description: Text describing performance of the recipe results + type: string + precision: + enum: + - FP16 + - FP32 + - INT8 + - FPBOTH + - OTHER + - ALL + type: string + publicDatasetUsed: + $ref: '#/components/schemas/Dataset' + publisher: + description: organization that published the recipe + maxLength: 255 + type: string + quickStartGuide: + description: Text with a guide to getting started + type: string + setup: + description: Text describing recipe setup + type: string + shortDescription: + description: Short description of the recipe + maxLength: 255 + type: string + trainingFramework: + enum: + - TensorFlow + - Caffe2 + - CNTK + - Torch + - PyTorch + - MXNet + - Keras + - Other + - TransferLearningToolkit + - TensorFlow2 + type: string + required: + - application + - modelFormat + - name + - precision + - publicDatasetUsed + - shortDescription + - trainingFramework + type: object + RecipeResponse: + description: Response to recipe request + properties: + recipe: + $ref: '#/components/schemas/Recipe' + description: Recipe object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + RecipeUpdateRequest: + description: Properties for the recipe to update + properties: + advanced: + description: Text for describing advanced information + type: string + application: + enum: + - CLASSIFICATION + - OBJECT_DETECTION + - SEGMENTATION + - TRANSLATION + - TEXT_TO_SPEECH + - RECOMMENDER + - SENTIMENT + - NLP + - KUBEFLOW_PIPELINE + - OTHER + - SPEAKER_VERIFICATION + - PUNCTUATION_AND_CAPITALIZATION + - DIALOG_STATE_TRACKING + - SPEAKER_DIARIZATION + - SPEAKER_RECOGNITION + - SPEECH_SYNTHESIS + - VOICE_ACTIVITY_DETECTION + - SPEECH_RECOGNITION + - LANGUAGE_MODELING + - NAMED_ENTITY_RECOGNITION + - TEXT_CLASSIFICATION + - TEXT_PROCESSING + - QUESTION_ANSWERING + - CONTENT_GENERATION + type: string + builtBy: + description: organization that built the recipe + maxLength: 255 + type: string + description: + description: Description of the recipe + type: string + displayName: + description: Display name + maxLength: 64 + minLength: 2 + type: string + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + labelsV2: + items: + type: string + type: array + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + maxLength: 255 + type: string + modelFormat: + description: Format of the model this recipe produces + maxLength: 255 + type: string + performance: + description: Text describing performance of the recipe results + type: string + precision: + enum: + - FP16 + - FP32 + - INT8 + - FPBOTH + - OTHER + - ALL + type: string + publicDatasetUsed: + $ref: '#/components/schemas/Dataset' + publisher: + description: organization that published the recipe + maxLength: 255 + type: string + quickStartGuide: + description: Text with a guide to getting started + type: string + relatedModels: + items: + $ref: '#/components/schemas/ModelSimplified' + type: array + setup: + description: Text describing recipe setup + type: string + shortDescription: + description: Short description of the recipe + maxLength: 255 + type: string + trainingFramework: + enum: + - TensorFlow + - Caffe2 + - CNTK + - Torch + - PyTorch + - MXNet + - Keras + - Other + - TransferLearningToolkit + - TensorFlow2 + type: string + type: object + RecipeVersionListResponse: + description: Response to list recipe versions request + properties: + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + recipe: + $ref: '#/components/schemas/Recipe' + description: Recipe object + recipeVersions: + items: + $ref: '#/components/schemas/RecipeVersion' + type: array + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + RecipeVersionCreateRequest: + description: Properties for the recipe version to be created + properties: + accuracyReached: + description: Accuracy this recipe reached + format: float + maximum: 100 + minimum: 0 + type: number + batchSize: + description: Batch size this recipe was trained with + format: int64 + minimum: 0 + type: integer + customMetrics: + items: + $ref: '#/components/schemas/CustomMetricGroup' + type: array + description: + description: Description of the recipe version + type: string + gpuModel: + description: GPU model and memory + maxLength: 255 + type: string + id: + description: 'Deprecated: Please use version instead. Unique ID of the version' + format: int64 + maximum: 2147483647 + minimum: 1 + type: integer + memoryFootprint: + description: Recipe size/memory footprint for inference + maxLength: 255 + type: string + numberOfEpochs: + description: Number of epochs this recipe trained + format: int64 + minimum: 0 + type: integer + otherContents: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + performance: + description: Text describing performance of the recipe results + type: string + quickStartGuide: + description: Text with a guide to getting started + type: string + releaseNotes: + description: Text describing this release + type: string + setup: + description: Text describing recipe setup + type: string + versionId: + description: Unique version id. Please use this instead of 'id' + maxLength: 255 + pattern: '[^/]+' + type: string + type: object + RecipeVersionResponse: + description: Response to recipe version request + properties: + recipe: + $ref: '#/components/schemas/Recipe' + description: Recipe object + recipeVersion: + $ref: '#/components/schemas/RecipeVersion' + description: Recipe version object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + RecipeVersionUpdateRequest: + description: Version properties to update + properties: + accuracyReached: + description: Accuracy this recipe reached + format: float + maximum: 100 + minimum: 0 + type: number + batchSize: + description: Batch size this recipe was trained with + format: int64 + minimum: 0 + type: integer + customMetrics: + items: + $ref: '#/components/schemas/CustomMetricGroup' + type: array + description: + description: Description of the recipe version + type: string + gpuModel: + description: GPU model and memory + maxLength: 255 + type: string + memoryFootprint: + description: Recipe size/memory footprint for inference + maxLength: 255 + type: string + numberOfEpochs: + description: Number of epochs this recipe trained + format: int64 + minimum: 0 + type: integer + otherContents: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + performance: + description: Text describing performance of the recipe results + type: string + quickStartGuide: + description: Text with a guide to getting started + type: string + releaseNotes: + description: Text describing this release + type: string + setup: + description: Text describing recipe setup + type: string + status: + description: Version status + enum: + - UPLOAD_PENDING + - UPLOAD_COMPLETE + type: string + type: object + RecipeVersionFileListResponse: + description: Response to list files for recipe version request + properties: + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + recipe: + $ref: '#/components/schemas/Recipe' + description: Recipe object + recipeFiles: + items: + $ref: '#/components/schemas/RecipeFile' + type: array + recipeVersion: + $ref: '#/components/schemas/RecipeVersion' + description: Recipe version object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ArtifactCreateRequest: + description: Properties for the artifact to create + properties: + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + bias: + description: Text describing bias in the model + maxLength: 128000 + type: string + builtBy: + description: organization that built the artifact + maxLength: 255 + type: string + description: + description: Description of the artifact + maxLength: 128000 + type: string + displayName: + description: Display name + maxLength: 128 + minLength: 2 + type: string + explainability: + description: Text describing explainability for this model + maxLength: 128000 + type: string + labels: + items: + maxLength: 255 + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + labelsV2: + items: + type: string + type: array + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + maxLength: 255 + type: string + name: + description: Unique name of the artifact + maxLength: 250 + minLength: 1 + pattern: ^[a-z][a-z\d._-]*$ + type: string + privacy: + description: Text describing the privacy for this model + maxLength: 128000 + type: string + publisher: + description: organization that published the artifact + maxLength: 255 + type: string + safetyAndSecurity: + description: Text for describing the safety and security in the model + maxLength: 128000 + type: string + shortDescription: + description: Short description of the artifact + maxLength: 255 + type: string + required: + - name + - shortDescription + type: object + ArtifactResponse: + description: Response to artifact request + properties: + artifact: + $ref: '#/components/schemas/Artifact' + description: Artifact object + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ArtifactUpdateRequest: + description: Properties for the artifact to update + properties: + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + bias: + description: Text describing bias in the model + type: string + builtBy: + description: organization that built the artifact + maxLength: 255 + type: string + description: + description: Description of the artifact + type: string + displayName: + description: Display name + maxLength: 128 + minLength: 2 + type: string + explainability: + description: Text describing explainability for this model + type: string + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + labelsV2: + items: + type: string + type: array + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + maxLength: 255 + type: string + privacy: + description: Text describing the privacy for this model + type: string + publisher: + description: organization that published the artifact + maxLength: 255 + type: string + safetyAndSecurity: + description: Text for describing the safety and security in the model + type: string + shortDescription: + description: Short description of the artifact + maxLength: 255 + type: string + type: object + ArtifactCatalogFlags: + description: Artifact Catalog Flags object + properties: + canGuestDownload: + description: Indicates if a guest user can download + type: boolean + isListedToPublic: + description: Flag indicating if artifact is listed and searchable + type: boolean + isPublic: + description: Determines if this artifact is publicly accessible + type: boolean + type: object + DeploymentParametersListResponse: + description: Response to list deployment parameters request + properties: + artifact: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + csp: + description: Cloud Service Provider name + type: string + deploymentParameters: + items: + $ref: '#/components/schemas/DeploymentParameters' + type: array + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + DeploymentParameters: + description: Deployment Artifact Parameters object + properties: + container: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + cpu: + $ref: '#/components/schemas/DeploymentCpuParameters' + description: Deployment CPU Parameters object + csp: + description: Cloud Service Provider name + type: string + gpu: + $ref: '#/components/schemas/DeploymentGpuParameters' + description: Deployment GPU Parameters object + memory: + $ref: '#/components/schemas/DeploymentMemoryParameters' + description: Deployment Memory Parameters object + model: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + resource: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + storage: + $ref: '#/components/schemas/DeploymentStorageParameters' + description: Deployment Storage Parameters object + type: object + DeploymentParametersUpdateRequest: + description: Request to update existing deployment parameters + properties: + container: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + cpu: + $ref: '#/components/schemas/DeploymentCpuParameters' + description: Deployment CPU Parameters object + gpu: + $ref: '#/components/schemas/DeploymentGpuParameters' + description: Deployment GPU Parameters object + memory: + $ref: '#/components/schemas/DeploymentMemoryParameters' + description: Deployment Memory Parameters object + model: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + resource: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + storage: + $ref: '#/components/schemas/DeploymentStorageParameters' + description: Deployment Storage Parameters object + type: object + DeploymentParametersCreateRequest: + description: Request to create a new deployment parameters + properties: + container: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + cpu: + $ref: '#/components/schemas/DeploymentCpuParameters' + description: Deployment CPU Parameters object + gpu: + $ref: '#/components/schemas/DeploymentGpuParameters' + description: Deployment GPU Parameters object + memory: + $ref: '#/components/schemas/DeploymentMemoryParameters' + description: Deployment Memory Parameters object + model: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + resource: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + storage: + $ref: '#/components/schemas/DeploymentStorageParameters' + description: Deployment Storage Parameters object + type: object + AcceptArtifactLicenseRequest: + description: Request body to accept an org-scoped artifact license. + properties: + licenseId: + description: License identifier to accept (must match a licenseId from the artifact's published licenseTerms). + example: NVIDIA Proprietary + maxLength: 256 + minLength: 1 + pattern: ^[a-zA-Z0-9][a-zA-Z0-9\s._+()/:'-]*$ + type: string + licenseVersion: + description: License version to accept (must match licenseVersion for that license on the artifact). + example: 1 + maxLength: 128 + minLength: 1 + pattern: ^[a-zA-Z0-9][a-zA-Z0-9\s._+()/:'-]*$ + type: string + required: + - licenseId + - licenseVersion + type: object + UpdateReleaseTypeRequest: + description: Request to update release type of an artifact version + properties: + releaseType: + description: Release type enum for the artifact version in the product lifecycle. + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + type: string + version: + description: Artifact version + type: string + required: + - version + type: object + ArtifactPublishRequest: + description: Request to publish an artifact + properties: + accessType: + enum: + - LISTED + - EXCLUSIVE + - NOT_LISTED + type: string + canGuestPull: + type: boolean + canPublicList: + type: boolean + isPublic: + type: boolean + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + productNames: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + type: object + UpdateArtifactVersionConfigs: + description: Request to publish an artifact + properties: + policy: + items: + enum: + - GOV_READY + - FedRAMP + type: string + type: array + type: object + DeploymentUrlCreateRequest: + description: Request to create a new deployment url + properties: + container: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + cpu: + $ref: '#/components/schemas/DeploymentCpuParameters' + description: Deployment CPU Parameters object + gpu: + $ref: '#/components/schemas/DeploymentGpuParameters' + description: Deployment GPU Parameters object + memory: + $ref: '#/components/schemas/DeploymentMemoryParameters' + description: Deployment Memory Parameters object + model: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + resource: + $ref: '#/components/schemas/DeploymentArtifactParameters' + description: Deployment Artifact Parameters object + storage: + $ref: '#/components/schemas/DeploymentStorageParameters' + description: Deployment Storage Parameters object + type: object + DeploymentUrlResponse: + description: Response to create a new deployment url + properties: + csp: + description: Cloud Service Provider name + type: string + deploymentParameters: + $ref: '#/components/schemas/DeploymentParameters' + description: Deployment Artifact Parameters object + deploymentUrl: + description: Deployment URL + type: string + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ArtifactVersionFileListResponse: + description: Response to list files for artifact version request + properties: + artifact: + $ref: '#/components/schemas/Artifact' + description: Artifact object + artifactFiles: + items: + $ref: '#/components/schemas/File' + type: array + artifactVersion: + $ref: '#/components/schemas/ArtifactVersion' + description: Artifact version object + paginationInfo: + $ref: '#/components/schemas/PaginationInfo' + description: Pagination Information + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + type: object + ArtifactDownloadResponse: + description: Response body to download a single file of an artifact + properties: + filepath: + description: The filepath of the artifact + type: string + requestStatus: + $ref: '#/components/schemas/RequestStatus' + description: Request status information + url: + description: Presigned url for single file download + type: string + required: + - url + type: object + AIPlaygroundCreateRequest: + description: Request to create a new AI Playground config + properties: + artifactName: + description: Unique name of the model + type: string + attributes: + description: Metadata json string + type: string + nvcfFunctionId: + description: NVCF function id for the model playground + type: string + nvcfInferencePath: + description: NVCF inference path (invocation route) for the model playground + type: string + openAPISpec: + description: OpenAPI specification for this model + type: string + required: + - artifactName + - nvcfFunctionId + type: object + AIPlaygroundResponse: + description: Request to fetch an AI Playground config + properties: + artifactName: + description: Unique name of the model + type: string + artifactType: + description: ArtifactTypeEnum of the artifact + type: string + attributes: + description: Metadata json string + type: string + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + namespace: + description: org/team of the model + type: string + nvcfFunctionId: + description: NVCF function id for the model playground + type: string + nvcfInferencePath: + description: NVCF inference path (invocation route) for the model playground + type: string + openAPISpec: + description: OpenAPI specification for this model + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + type: object + AIPlaygroundUpdateRequest: + description: Request to update an AI Playground config + properties: + attributes: + description: Metadata json string + type: string + nvcfFunctionId: + description: NVCF function id for the model playground + type: string + nvcfInferencePath: + description: NVCF inference path (invocation route) for the model playground + type: string + openAPISpec: + description: OpenAPI specification for this model + type: string + type: object + KeyItem: + description: Key item with ID and create timestamp string + properties: + created: + description: 'The creation timestamp of the key item in ISO-8601 format. Format: YYYY-MM-DDTHH:mm:ss.sssZ.' + example: '2025-04-19T22:30:00.123Z' + format: regex + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the encryption key + maxLength: 255 + type: string + encryptionKeyId: + description: The encryption key identifier in UUID format. + example: 196afcf4-d6c8-4116-aa25-34a718a14f43 + format: regex + pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ + type: string + required: + - created + - encryptionKeyId + type: object + RequestStatus: + description: Request status information + properties: + requestId: + description: Request ID + type: string + serverId: + description: Server ID + type: string + statusCode: + description: Describes response status reported by the server. + enum: + - UNKNOWN + - SUCCESS + - UNAUTHORIZED + - PAYMENT_REQUIRED + - FORBIDDEN + - TIMEOUT + - EXISTS + - NOT_FOUND + - INTERNAL_ERROR + - INVALID_REQUEST + - INVALID_REQUEST_VERSION + - INVALID_REQUEST_DATA + - METHOD_NOT_ALLOWED + - CONFLICT + - UNPROCESSABLE_ENTITY + - TOO_MANY_REQUESTS + - INSUFFICIENT_STORAGE + - SERVICE_UNAVAILABLE + type: string + statusDescription: + description: Status description + type: string + type: object + ArtifactItem: + description: Artifact item with name and description + properties: + artifactType: + description: Artifact type + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + type: string + description: + description: Description of the artifact + type: string + displayName: + description: Display name of the artifact + type: string + name: + description: Name of the artifact + type: string + required: + - description + - name + type: object + CloneStatus: + description: Progress of cloning artifact version files + properties: + filesCopied: + description: Number of files copied + format: int64 + type: integer + internalCheckpointStateCleanup: + description: 'Internal-only: When the async clone workflow is completed, this field shows if the internal checkpoint files were successfully cleaned up in the storage - CLEAN if no objects remain (cleanup succeeded or unused), NOT_EMPTY if objects remain, ERROR if verification could not be performed. Omitted when not applicable.' + enum: + - CLEAN + - NOT_EMPTY + - ERROR + type: string + percentageFilesCloned: + description: Percentage of files cloned + format: double + type: number + sizeCopied: + description: Combined file size copied + format: int64 + type: integer + totalFiles: + description: Total files at source + format: int64 + type: integer + totalSize: + description: Combined file size at source + format: int64 + type: integer + type: object + Collection: + description: Collection object + properties: + accessType: + enum: + - LISTED + - EXCLUSIVE + - NOT_LISTED + type: string + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + builtBy: + description: Organization that built the collection + type: string + canGuestDownload: + description: Indicates if a guest user can download + type: boolean + category: + enum: + - HEALTHCARE + - SMART_CITIES + - RETAIL + - MANUFACTURING + - SUPERCOMPUTING + - ROBOTICS + - AUTOMOTIVE + - TELECOMMUNICATIONS + - FINANCE + - OIL_AND_GAS + - NATURAL_LANGUAGE_PROCESSING + - AUTOMATIC_SPEECH_RECOGNITION + - INTELLIGENT_VIDEO_ANALYTICS + - OBJECT_DETECTION + - IMAGE_CLASSIFICATION + - ANNOTATION + - IMAGE_SYNTHESIS + - MACHINE_LEARNING + - DEEP_LEARNING + - INFRASTRUCTURE + - HIGH_PERFORMANCE_COMPUTING + - WINDOWS_RTX_ACCELERATED_MODELS + - BEGINNER + - ADVANCED + type: string + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the collection + type: string + displayName: + description: Display name + type: string + isPublic: + description: Determines if this collection is publicly accessible + type: boolean + isReadOnly: + description: indicate if current user has read only permissions (deprecated) + type: boolean + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + logo: + description: URL for the logo image + type: string + name: + description: Unique name of the collection + type: string + orgName: + description: Name of the org that the collection belongs to + type: string + ownerName: + description: Name of the user who owns this version + type: string + policyLabels: + items: + type: string + type: array + productNames: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + publisher: + description: Organization that published this collection + type: string + shortDescription: + description: Short description of the collection + type: string + size: + description: Total count of collection items + format: int64 + type: integer + teamName: + description: Name of the team that the collection belongs to + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + required: + - category + type: object + PaginationInfo: + description: Pagination Information + properties: + index: + description: Page index of results + format: int32 + type: integer + nextPage: + description: Serialized pointer to the next results page. Should be used for fetching next page. Can be empty + type: string + size: + description: Number of results in page + format: int32 + type: integer + totalPages: + description: Total number of pages available + format: int64 + type: integer + totalResults: + description: Total number of results available + format: int64 + type: integer + type: object + ArtifactAttribute: + description: Attribute on the artifact + properties: + key: + maxLength: 255 + pattern: '[a-zA-Z0-9]+' + type: string + value: + maxLength: 255 + type: string + type: object + CollectionOperation: + description: Collection operation object + properties: + operation: + description: Collection operation + maxLength: 255 + type: string + path: + description: Path to a collection item in a scoped format + maxLength: 255 + pattern: ^(/(?!/)([\w- %\.(?!\.)])+)+$ + type: string + type: object + Artifact: + description: Artifact object + properties: + accessType: + enum: + - LISTED + - EXCLUSIVE + - NOT_LISTED + type: string + artifactType: + description: Artifact type + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + type: string + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + bias: + description: Text describing bias in the artifact + type: string + builtBy: + description: Organization that built the helm chart + type: string + canGuestDownload: + description: Indicates if a guest user can download + type: boolean + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the helm chart + type: string + displayName: + description: Display name + type: string + encryptionKeyId: + description: ID of the customer managed encryption key associated with this artifact + type: string + explainability: + description: Text describing the explainability for this artifact + type: string + hasSignedVersion: + description: Indicates if the artifact has any signed versions + type: boolean + isFavourite: + description: Flag indicating if helm chart is user's favorite + type: boolean + isPublic: + description: Determines if this helm chart is publicly accessible + type: boolean + isReadOnly: + description: indicate if current user has read only permissions (deprecated) + type: boolean + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + latestVersionId: + description: ID of the latest version + type: string + latestVersionSizeInBytes: + description: Size of the latest version in bytes + format: int64 + type: integer + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + type: string + name: + description: Unique name of the helm chart + type: string + orgName: + description: Name of the org that the helm chart belongs to + type: string + ownerName: + description: Name of the user who owns this version + type: string + policyLabels: + items: + type: string + type: array + privacy: + description: Text describing the privacy for this artifact + type: string + productNames: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + publisher: + description: Organization that published this helm chart + type: string + safetyAndSecurity: + description: Text for describing the safety and security in the artifact + type: string + shortDescription: + description: Short description of the helm chart + type: string + teamName: + description: Name of the team that the helm chart belongs to + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + type: object + ArtifactVersion: + description: Artifact version object + properties: + attributes: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + createdByUser: + description: Id of the user who created this version + type: string + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + customMetrics: + items: + $ref: '#/components/schemas/CustomMetricGroup' + type: array + description: + description: Description of the version + type: string + id: + description: Unique ID of the version + type: string + isSigned: + description: Indicates if the version is signed + type: boolean + malwareScanDate: + description: Scan date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + malwareScanStatus: + description: Malware scan status + enum: + - NOT_SCANNED + - IN_PROGRESS + - CLEAN + - SUSPICIOUS + - FAILED + - MALICIOUS + type: string + policy: + items: + type: string + type: array + releaseType: + description: Release type enum for the artifact version in the product lifecycle. + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + type: string + status: + description: Version status + enum: + - UPLOAD_PENDING + - UPLOAD_COMPLETE + type: string + storageVersion: + description: The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. + type: string + totalFileCount: + description: Total file count + format: int64 + type: integer + totalSizeInBytes: + description: Total size of the version in bytes + format: int64 + type: integer + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + type: object + Model: + description: Model object + properties: + accessType: + enum: + - LISTED + - EXCLUSIVE + - NOT_LISTED + type: string + application: + description: Application of the model + type: string + bias: + description: Text describing bias in the model + type: string + builtBy: + description: organization that built the repository + type: string + canGuestDownload: + description: Indicates if a guest user can download + type: boolean + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the model + type: string + displayName: + description: Display name + type: string + encryptionKeyId: + description: ID of the customer managed encryption key associated with this artifact + type: string + explainability: + description: Text describing explainability for this model + type: string + framework: + description: Framework used to train this model + type: string + hasPlayground: + description: indicate if the Model has AI Playground configured + type: boolean + hasSignedVersion: + description: Indicates if the model has any signed versions + type: boolean + isFavourite: + description: Flag indicating if model is user's favorite + type: boolean + isPlaygroundEnabled: + description: indicate if AI Playground is enabled in the catalog + type: boolean + isPublic: + description: Determines if model is publicly accessible + type: boolean + isReadOnly: + description: indicate if current user has read only permissions (deprecated) + type: boolean + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + latestVersionGpuModel: + description: GPU model and memory used for the latest version + type: string + latestVersionId: + description: 'Deprecated: Please use latestVersionIdStr instead. ID of the latest version' + format: int64 + type: integer + latestVersionIdStr: + description: ID of the latest version + type: string + latestVersionSizeInBytes: + description: Size of the latest version in bytes + format: int64 + type: integer + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + type: string + modelFormat: + description: Format of the model + type: string + name: + description: Unique name of the model + type: string + orgName: + description: Name of the org that the model belongs to + type: string + ownerName: + description: Name of model's owner + type: string + policyLabels: + items: + type: string + type: array + precision: + description: Precision this model was trained with + type: string + privacy: + description: Text describing the privacy for this model + type: string + productNames: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + publicDatasetUsed: + $ref: '#/components/schemas/Dataset' + publisher: + description: organization that published the repository + type: string + safetyAndSecurity: + description: Text for describing the safety and security in the model + type: string + shortDescription: + description: Short description of the model + type: string + teamName: + description: Name of the team that the model belongs to + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + versions: + items: + type: string + type: array + type: object + EncryptionKey: + description: Customer Managed Key shard configuration for the model + properties: + description: + description: Description for a new customer key shard + type: string + encryptionKeyId: + description: ID of the existing customer key shard to use + type: string + useExistingKey: + description: Whether to use an existing customer key shard or should a new one be created + type: boolean + required: + - useExistingKey + type: object + LicenseMetadata: + description: License information for the artifact + properties: + configuredLicenseTerms: + $ref: '#/components/schemas/ConfiguredLicenseTerms' + description: License information for the artifact + governingTerms: + description: Comprehensive terms and links related to the license + example: <p><strong>GOVERNING HOSTING TERMS:</strong> Use of the model is governed by the <a href='...'>NVIDIA Open Model Agreement</a>.</p> + maxLength: 1000 + pattern: ^[\s\S]*$ + type: string + licenseId: + description: License ID + example: NVIDIA proprietary + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + licenseVersion: + description: License version ID + example: v1.0 + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + needsAcceptance: + description: Indicator if user needs to accept this license + type: boolean + required: + - governingTerms + - licenseId + - licenseVersion + type: object + Dataset: + properties: + license: + description: License of the dataset + maxLength: 255 + type: string + link: + description: Link to the dataset + maxLength: 255 + type: string + name: + description: Name of the dataset + maxLength: 255 + type: string + type: object + ModelVersion: + description: Model version object + properties: + accuracyReached: + description: Accuracy this model reached + format: float + type: number + batchSize: + description: Batch size this model was trained with + format: int64 + type: integer + createdByUser: + description: Id of the user who created this model + type: string + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + customMetrics: + items: + $ref: '#/components/schemas/CustomMetricGroup' + type: array + description: + description: Description of the model version + type: string + gpuModel: + description: GPU model and memory + type: string + id: + description: 'Deprecated: Please use versionId instead. Unique ID of the version' + format: int64 + type: integer + isSigned: + description: Indicates if the version is signed + type: boolean + malwareScanDate: + description: Scan date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + malwareScanStatus: + description: Malware scan status + enum: + - NOT_SCANNED + - IN_PROGRESS + - CLEAN + - SUSPICIOUS + - FAILED + - MALICIOUS + type: string + memoryFootprint: + description: Model size/memory footprint for inference + type: string + numberOfEpochs: + description: Number of epochs this model trained + format: int64 + type: integer + nvcfContainerConfiguration: + $ref: '#/components/schemas/NvcfContainerConfiguration' + description: NVCF container configuration parameters + nvcfDeploymentSpecification: + $ref: '#/components/schemas/NvcfDeploymentSpecification' + description: NVCF deployment specification + otherContents: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + ownerName: + description: Name of the user who owns this version + type: string + policy: + items: + type: string + type: array + releaseType: + description: Release type enum for the artifact version in the product lifecycle. + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + type: string + status: + description: Version status + enum: + - UPLOAD_PENDING + - UPLOAD_COMPLETE + type: string + storageVersion: + description: The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. + type: string + totalFileCount: + description: Total file count + format: int64 + type: integer + totalSizeInBytes: + description: Total size of the model in bytes + format: int64 + type: integer + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + versionId: + description: Unique version id. Please use this instead of 'id' + maxLength: 255 + type: string + type: object + CustomMetricGroup: + description: Defines the group of custom metrics. + properties: + attributes: + items: + $ref: '#/components/schemas/CustomMetric' + type: array + name: + maxLength: 255 + type: string + type: object + NvcfContainerConfiguration: + description: NVCF container configuration parameters + properties: + apiBodyFormat: + description: API body format + type: string + containerArgs: + description: Container arguments + type: string + containerEnvironment: + items: + $ref: '#/components/schemas/MetaData' + type: array + containerImage: + description: Container Image + type: string + healthUri: + description: Health URI + type: string + inferencePort: + description: Inference port + type: string + inferenceUrl: + description: Inference url + type: string + models: + items: + $ref: '#/components/schemas/NvcfContainerModel' + type: array + type: object + NvcfDeploymentSpecification: + description: NVCF deployment specification + properties: + gpuCount: + description: GPU count + format: int32 + type: integer + gpuType: + description: GPU type + type: string + instanceType: + description: Instance type + type: string + maxConcurrency: + description: Maximum concurrency + format: int32 + type: integer + type: object + ModelFile: + description: Model file object + properties: + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the file + type: string + path: + description: Relative file path from the root of the model + maxLength: 1023 + minLength: 1 + type: string + sha256_base64: + description: Base64 encoded sha256 hash of the artifact file + type: string + sizeInBytes: + description: Size of the file in bytes + format: int64 + minimum: 0 + type: integer + type: object + Recipe: + description: Recipe object + properties: + accessType: + enum: + - LISTED + - EXCLUSIVE + - NOT_LISTED + type: string + advanced: + description: Text for describing advanced information + type: string + application: + enum: + - CLASSIFICATION + - OBJECT_DETECTION + - SEGMENTATION + - TRANSLATION + - TEXT_TO_SPEECH + - RECOMMENDER + - SENTIMENT + - NLP + - KUBEFLOW_PIPELINE + - OTHER + - SPEAKER_VERIFICATION + - PUNCTUATION_AND_CAPITALIZATION + - DIALOG_STATE_TRACKING + - SPEAKER_DIARIZATION + - SPEAKER_RECOGNITION + - SPEECH_SYNTHESIS + - VOICE_ACTIVITY_DETECTION + - SPEECH_RECOGNITION + - LANGUAGE_MODELING + - NAMED_ENTITY_RECOGNITION + - TEXT_CLASSIFICATION + - TEXT_PROCESSING + - QUESTION_ANSWERING + - CONTENT_GENERATION + type: string + builtBy: + description: Organization that built the recipe + type: string + canGuestDownload: + description: Indicates if a guest user can download + type: boolean + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the recipe + type: string + displayName: + description: Display name + type: string + hasSignedVersion: + description: Indicates if the recipe has any signed versions + type: boolean + isFavourite: + description: Flag indicating if recipe is user's favorite + type: boolean + isPublic: + description: Determines if this recipe is publicly accessible + type: boolean + isReadOnly: + description: indicate if current user has read only permissions (deprecated) + type: boolean + labels: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + latestVersionId: + description: 'Deprecated: Please use latestVersionIdStr instead. ID of the latest version' + format: int64 + type: integer + latestVersionIdStr: + description: ID of the latest version + type: string + latestVersionSizeInBytes: + description: Size of the latest version in bytes + format: int64 + type: integer + licenseTerms: + items: + $ref: '#/components/schemas/LicenseMetadata' + type: array + logo: + description: URL for the logo image + type: string + modelFormat: + description: Format of the model this recipe produces + type: string + name: + description: Unique name of the recipe + type: string + orgName: + description: Name of the org that the recipe belongs to + type: string + performance: + description: Text describing performance of the recipe results + type: string + policyLabels: + items: + type: string + type: array + precision: + enum: + - FP16 + - FP32 + - INT8 + - FPBOTH + - OTHER + - ALL + type: string + productNames: + items: + pattern: ^[a-zA-Z]+[a-zA-Z0-9-.+_\s]+ + type: string + type: array + publicDatasetUsed: + $ref: '#/components/schemas/Dataset' + publisher: + description: Organization that published this recipe + type: string + quickStartGuide: + description: Text with a guide to getting started + type: string + relatedModels: + items: + $ref: '#/components/schemas/Model' + type: array + setup: + description: Text describing recipe setup + type: string + shortDescription: + description: Short description of the recipe + type: string + teamName: + description: Name of the team that the recipe belongs to + type: string + trainingFramework: + enum: + - TensorFlow + - Caffe2 + - CNTK + - Torch + - PyTorch + - MXNet + - Keras + - Other + - TransferLearningToolkit + - TensorFlow2 + type: string + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + type: object + ModelSimplified: + description: Model object + properties: + name: + description: Unique name of the model + type: string + orgName: + description: Name of the org that the model belongs to + type: string + teamName: + description: Name of the team that the model belongs to + type: string + required: + - name + - orgName + type: object + RecipeVersion: + description: Recipe version object + properties: + accuracyReached: + description: Accuracy this recipe reached + format: float + type: number + batchSize: + description: Batch size this recipe was trained with + format: int64 + type: integer + createdByUser: + description: Id of the user who created this recipe + type: string + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + customMetrics: + items: + $ref: '#/components/schemas/CustomMetricGroup' + type: array + description: + description: Description of the recipe version + type: string + gpuModel: + description: GPU model and memory + type: string + id: + description: 'Deprecated: Please use versionId instead. Unique ID of the version' + format: int64 + type: integer + isSigned: + description: Indicates if the version is signed + type: boolean + malwareScanDate: + description: Scan date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + malwareScanStatus: + description: Malware scan status + enum: + - NOT_SCANNED + - IN_PROGRESS + - CLEAN + - SUSPICIOUS + - FAILED + - MALICIOUS + type: string + memoryFootprint: + description: recipe size/memory footprint for inference + type: string + numberOfEpochs: + description: Number of epochs this recipe trained + format: int64 + type: integer + otherContents: + items: + $ref: '#/components/schemas/ArtifactAttribute' + type: array + performance: + description: Text describing performance of the recipe results + type: string + policy: + items: + type: string + type: array + quickStartGuide: + description: Text with a guide to getting started + type: string + releaseNotes: + description: Text describing this release + type: string + releaseType: + description: Release type enum for the artifact version in the product lifecycle. + enum: + - BETA + - GA + - EA + - FEATURE + - PRODUCTION + - LTSB + type: string + setup: + description: Text describing recipe setup + type: string + status: + description: Version status + enum: + - UPLOAD_PENDING + - UPLOAD_COMPLETE + type: string + storageVersion: + description: The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. + type: string + totalFileCount: + description: Total file count + format: int64 + type: integer + totalSizeInBytes: + description: Total size of the recipe in bytes + format: int64 + type: integer + versionId: + description: Unique version id. Please use this instead of 'id' + maxLength: 255 + type: string + type: object + RecipeFile: + description: Recipe file object + properties: + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the file + type: string + path: + description: Relative file path from the root of the recipe + maxLength: 1023 + minLength: 1 + type: string + sha256_base64: + description: Base64 encoded sha256 hash of the artifact file + type: string + sizeInBytes: + description: Size of the file in bytes + format: int64 + minimum: 0 + type: integer + type: object + DeploymentArtifactParameters: + description: Deployment Artifact Parameters object + properties: + artifactType: + description: Artifact type + enum: + - MODEL + - MODEL_SCRIPT + - HELM_CHART + - REPOSITORY + - COLLECTION + - ENDPOINT + - BLUEPRINT + - PLAYBOOK + - AGENT + - API + - SKILL + type: string + displayName: + description: Display name of the artifact + type: string + filePath: + description: Path to a file in an artifact version + type: string + name: + description: Unique name of the artifact + type: string + orgName: + description: Name of the org that the artifact belongs to + type: string + teamName: + description: Name of the team that the artifact belongs to + type: string + versionId: + description: ID of the version or tag + type: string + required: + - name + - orgName + type: object + DeploymentCpuParameters: + description: Deployment CPU Parameters object + properties: + count: + description: Total count of CPUs + format: int64 + type: integer + type: object + DeploymentGpuParameters: + description: Deployment GPU Parameters object + properties: + count: + description: Total count of GPUs + format: int64 + type: integer + type: + description: GPU Type + type: string + type: object + DeploymentMemoryParameters: + description: Deployment Memory Parameters object + properties: + capacityInGB: + description: Capacity in GB + format: int64 + type: integer + type: object + DeploymentStorageParameters: + description: Deployment Storage Parameters object + properties: + capacityInGB: + description: Capacity in GB + format: int64 + type: integer + type: object + File: + description: File object + properties: + createdDate: + description: Creation date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + description: + description: Description of the file + type: string + path: + description: Relative file path from the root of the object + maxLength: 1023 + minLength: 1 + type: string + sizeInBytes: + description: Size of the file in bytes + format: int64 + minimum: 0 + type: integer + updatedDate: + description: Updated date in ISO-8601 format + pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z + type: string + type: object + ConfiguredLicenseTerms: + description: License information for the artifact + properties: + download: + $ref: '#/components/schemas/ConfiguredLicenseTerm' + description: License information for the artifact + hosting: + $ref: '#/components/schemas/ConfiguredLicenseTerm' + description: License information for the artifact + type: object + CustomMetric: + description: Custom metrics + properties: + key: + maxLength: 255 + type: string + value: + maxLength: 255 + type: string + type: object + MetaData: + properties: + key: + maxLength: 255 + type: string + value: + maxLength: 255 + type: string + type: object + NvcfContainerModel: + description: Models version object metadata + properties: + name: + description: Model name + type: string + uri: + description: Model URI + type: string + version: + description: Model version + type: string + type: object + ConfiguredLicenseTerm: + description: License information for the artifact + properties: + artifactType: + description: Artifact type + example: model + maxLength: 15 + pattern: ^[\s\S]*$ + type: string + generatedHtml: + description: Generated html + example: <p><strong>GOVERNING HOSTING TERMS:</strong> ...</p> + maxLength: 9999 + pattern: ^[\s\S]*$ + type: string + tags: + items: + $ref: '#/components/schemas/LicenseTag' + type: array + type: object + LicenseTag: + description: License tag information for individual term + properties: + category: + description: Category of the tag + example: terms + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + key: + description: Key identifier for the tag + example: nv-open-model + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + label: + description: License Label + example: NVIDIA Open Model Agreement + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + tag: + description: License tag name + example: Model Agreement + maxLength: 100 + pattern: ^[\s\S]*$ + type: string + url: + description: Link to the hosted license + example: https://www.nvidia.com/.../nvidia-open-model-agreement/ + maxLength: 1000 + pattern: ^[\s\S]*$ + type: string + type: object +servers: + - url: https://api.ngc.nvidia.com diff --git a/tests/fixtures/.gitkeep b/tests/fixtures/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tests/integration/.gitkeep b/tests/integration/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tests/integration/harness.mjs b/tests/integration/harness.mjs new file mode 100644 index 0000000..7f805f9 --- /dev/null +++ b/tests/integration/harness.mjs @@ -0,0 +1,106 @@ +// Shared plumbing for the integration runner and the probe: locate the +// stackql binary, materialise the test registry pointed at the mock, and run +// SQL asynchronously against it. No side effects on import. +// +// The vendor hosts are https-only and cannot address the mock, so the +// generated provider (provider-dev/openapi) is copied to +// tests/integration/.registry-tmp (gitignored, recreated each run) with +// every server URL rewritten to http://localhost:<port>: the two root hosts +// (api.ngc.nvidia.com, api.nvcf.nvidia.com - both land on the one mock, +// which routes by path) and the path-level org templates, whose org_name +// variable and x-stackQL-envVar are preserved. provider-dev/** is never +// modified. + +import { spawn } from 'child_process'; +import { existsSync, rmSync, cpSync, readdirSync, readFileSync, writeFileSync } from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import yaml from 'js-yaml'; +import { PROVIDER_NAME, HOSTS, SCOPE_PARAM, SCOPE_ENV_VAR } from '../../provider-dev/scripts/lib/spec_helpers.mjs'; + +export const here = path.dirname(fileURLToPath(import.meta.url)); +export const repoRoot = path.resolve(here, '..', '..'); + +export function findStackql() { + if (process.env.STACKQL) return process.env.STACKQL; + const local = path.join(repoRoot, process.platform === 'win32' ? 'stackql.exe' : 'stackql'); + if (existsSync(local)) return local; + return 'stackql'; // PATH +} + +// Copy the generated provider docs into tests/integration/.registry-tmp and +// point every server - document-level and path-level - at the mock, +// preserving server variables and x-stackQL-envVar. Returns the registry +// directory; registryArg() turns it into the --registry JSON. +export function buildTestRegistry(port) { + const srcDir = path.join(repoRoot, 'provider-dev', 'openapi'); + const tmpDir = path.join(here, '.registry-tmp'); + rmSync(tmpDir, { recursive: true, force: true }); + cpSync(srcDir, tmpDir, { recursive: true }); + const servicesDir = path.join(tmpDir, 'src', PROVIDER_NAME, 'v00.00.00000', 'services'); + const base = `http://localhost:${port}`; + const rewrite = (url) => HOSTS.reduce((u, host) => u.replace(host, base), url); + let orgTemplates = 0; + for (const f of readdirSync(servicesDir)) { + if (!f.endsWith('.yaml')) continue; + const fp = path.join(servicesDir, f); + const doc = yaml.load(readFileSync(fp, 'utf8')); + if (!doc.servers?.[0]?.url) throw new Error(`no top-level servers block found in ${f}`); + doc.servers = doc.servers.map((s) => ({ ...s, url: rewrite(s.url) })); + for (const [p, item] of Object.entries(doc.paths || {})) { + if (!item.servers) continue; + item.servers = item.servers.map((s) => ({ ...s, url: rewrite(s.url) })); + const v = item.servers[0].variables?.[SCOPE_PARAM]; + if (!v || v['x-stackQL-envVar'] !== SCOPE_ENV_VAR) throw new Error(`${f}: path ${p} lost its ${SCOPE_PARAM} server variable / x-stackQL-envVar in the copy`); + orgTemplates++; + } + writeFileSync(fp, yaml.dump(doc, { lineWidth: -1, noRefs: true })); + } + if (orgTemplates === 0) throw new Error('no path-level org server templates found - was post_process run?'); + return tmpDir; +} + +export function registryArg(tmpDir) { + const regPath = tmpDir.split(path.sep).join('/'); + return JSON.stringify({ url: `file://${regPath}`, localDocRoot: regPath, verifyConfig: { nopVerify: true } }); +} + +// `--output json` renders every scalar as a string; the row-level +// assertions compare typed values, so booleans and numbers are restored. +const typed = (v) => (v === 'true' ? true : v === 'false' ? false : (typeof v === 'string' && /^-?\d+(\.\d+)?$/.test(v)) ? Number(v) : v); + +// IMPORTANT: async (spawn, not spawnSync) - the mock server runs on this +// process's event loop, so a synchronous wait for stackql deadlocks. +// Returns { rows, err, text }: rows is the parsed JSON (an empty array for +// zero rows, [{ _text }] for DML status text), err the stderr when it looks +// like an error. +export function makeRunSql(registry, baseEnv, { verbose = false, bin = findStackql() } = {}) { + return function runSql(sql, envOverrides = {}) { + return new Promise((resolve) => { + const env = { ...process.env, ...baseEnv, ...envOverrides }; + for (const [k, v] of Object.entries(envOverrides)) if (v === undefined) delete env[k]; + const child = spawn(bin, [`--registry=${registry}`, 'exec', sql, '--output', 'json'], { cwd: repoRoot, env }); + let stdout = '', stderr = ''; + child.stdout.on('data', (d) => { stdout += d; }); + child.stderr.on('data', (d) => { stderr += d; }); + const timer = setTimeout(() => child.kill(), 120000); + child.on('error', (e) => { clearTimeout(timer); resolve({ rows: null, err: String(e), text: '', stdout: '', stderr: String(e) }); }); + child.on('close', () => { + clearTimeout(timer); + stdout = stdout.trim(); + stderr = stderr.trim(); + if (verbose) console.log(` sql: ${sql}\n out: ${stdout.slice(0, 400)}${stderr ? `\n err: ${stderr.slice(0, 400)}` : ''}`); + const errish = /http response status code: [45]|error|panic|FindRoute|no matching operation|cannot find matching operation|disallowed|cannot find any viable servers|not supported|required/i; + if (errish.test(stderr)) return resolve({ rows: null, err: stderr, text: stdout, stdout, stderr }); + if (!stdout) return resolve({ rows: [], err: null, text: stdout, stdout, stderr }); + try { + const parsed = JSON.parse(stdout); // literal null for zero rows + const rows = Array.isArray(parsed) ? parsed.map((r) => Object.fromEntries(Object.entries(r).map(([k, v]) => [k, typed(v)]))) : parsed ?? []; + resolve({ rows, err: null, text: stdout, stdout, stderr }); + } catch { + resolve({ rows: [{ _text: stdout }], err: errish.test(stdout) ? stdout : null, text: stdout, stdout, stderr }); // DML status text + } + }); + }); + }; +} diff --git a/tests/integration/mock_nvidia_server.mjs b/tests/integration/mock_nvidia_server.mjs new file mode 100644 index 0000000..9c2ad6a --- /dev/null +++ b/tests/integration/mock_nvidia_server.mjs @@ -0,0 +1,373 @@ +#!/usr/bin/env node + +// Mock NGC + NVCF API for integration-testing the generated nvidia provider +// without an account. One HTTP server plays both hosts (api.ngc.nvidia.com +// and api.nvcf.nvidia.com - the test registry points both at it; routing +// is by path) and serves canned JSON in the wire shapes the definitions and +// the ngcsdk data classes declare: +// +// NGC core {<entities>: [...], paginationInfo: {index, size, totalPages, +// totalResults}, requestStatus} list envelopes with zero-based +// page-number / page-size paging; {<entity>: {...}, +// requestStatus} entity envelopes; {requestStatus} for writes +// without a body; camelCase properties; kebab-case query +// parameters +// catalog the same envelopes without auth for public artifacts; a bare +// JSON array for /v2/gpus (wire-proven 2026-07-14) +// NVCF {functions: [...]} / {function: {...}} envelopes on +// api.ngc.nvidia.com; queues, assets and the HTTP-polling +// invocation (202 + NVCF-REQID, then the function's own +// response body on the status poll) on api.nvcf.nvidia.com +// +// Every request outside the public catalog must carry +// `Authorization: Bearer <EXPECTED_TOKEN>` or it is rejected 401 (the NGC +// error envelope; an empty body on the NVCF host) - this proves the +// provider's bearer wiring (NGC_API_KEY). +// +// Two organizations are served: ORG_A (what NGC_ORG resolves to in the +// tests) and ORG_B (to prove a WHERE org_name value beats the environment); +// any other org is 404. Mutable in-memory stores make the registry model, +// NVCF function/version, authorization and deployment lifecycles +// round-trip realistically. +// +// Exports startMockServer() for the test runner; also runnable standalone: +// node tests/integration/mock_nvidia_server.mjs [port] + +import http from 'http'; +import { URL } from 'url'; + +export const EXPECTED_TOKEN = 'nvapi-mock0123456789abcdefghijklmnopqrstuvwxyz0123456789ABCDEF'; +export const ORG_A = 'mockorg0001'; +export const ORG_B = 'mockorg0002'; +export const TEAM = 'mockteam'; +export const FUNCTION_ID = 'f1a2b3c4-0000-4000-8000-000000000001'; +export const VERSION_ID = 'a1b2c3d4-0000-4000-8000-000000000001'; +export const REQUEST_ID = 'r1a2b3c4-0000-4000-8000-000000000001'; +export const NCA_ID = 'nca-mock-0001'; + +const ts = '2026-08-01T02:03:04.000Z'; +let counter = 0; +const newId = (prefix) => `${prefix}${String(++counter).padStart(4, '0')}-0000-4000-8000-000000000000`.slice(0, 36); + +function requestStatus() { + return { statusCode: 'SUCCESS', statusDescription: 'Request successful', requestId: newId('req'), serverId: 'mock' }; +} + +// --------------------------------------------------------------------------- +// fixtures +// --------------------------------------------------------------------------- + +function orgObj(name, i) { + return { id: 1000 + i, name, displayName: `Mock Org ${i}`, description: 'mock organization', type: 'ENTERPRISE', country: 'AU', isInternal: false, isDatasetServiceEnabled: false, orgOwner: { email: 'owner@example.com', fullName: 'Mock Owner' } }; +} +const ORGS = [ORG_A, ORG_B, 'mockorg0003', 'mockorg0004', 'mockorg0005'].map((n, i) => orgObj(n, i + 1)); + +function userObj(id, email, name, roles = ['REGISTRY_READ']) { + return { id, email, name, isActive: true, createdDate: ts, updatedDate: ts, starfleetId: `sf-${id}`, roles: [{ org: { name: ORG_A }, orgRoles: roles }] }; +} +const USERS = [userObj(1, 'alice@example.com', 'Alice'), userObj(2, 'bob@example.com', 'Bob', ['REGISTRY_READ', 'REGISTRY_USER'])]; + +function teamObj(name, i) { + return { id: 200 + i, name, description: `mock team ${i}`, isDeleted: false }; +} +const TEAMS = [teamObj(TEAM, 1), teamObj('mockteam2', 2)]; + +function modelObj(org, name, extra = {}) { + return { + name, displayName: `Mock ${name}`, orgName: org, application: 'Inference', framework: 'PyTorch', precision: 'FP16', + shortDescription: 'mock model', description: 'a mock model', createdDate: ts, updatedDate: ts, latestVersionIdStr: '1.0', + latestVersionSizeInBytes: 1024, isPublic: false, canGuestDownload: false, labels: ['mock'], ...extra + }; +} +// the wire carries a numeric id and the string versionId ("1.0"); the SDK +// documents versionId as the one to use +function modelVersionObj(versionId, id) { + return { id, versionId, createdDate: ts, updatedDate: ts, status: 'UPLOAD_COMPLETE', totalFileCount: 1, totalSizeInBytes: 1024, description: 'mock version', gpuModel: 'A100', framework: 'PyTorch' }; +} + +function functionObj(id, versionId, name, extra = {}) { + return { + id, ncaId: NCA_ID, versionId, name, status: 'INACTIVE', inferenceUrl: '/v1/infer', inferencePort: 8000, healthUri: '/health', + containerImage: 'nvcr.io/mock/echo:latest', apiBodyFormat: 'CUSTOM', functionType: 'DEFAULT', createdAt: ts, activeInstances: [], + tags: ['mock'], ...extra + }; +} +function clusterGroupObj(id, name, gpus) { + return { + id, name, ncaId: NCA_ID, authorizedNcaIds: [NCA_ID], + gpus: gpus.map((g) => ({ name: g, instanceTypes: [{ name: `GCP.GPU.${g}_1x`, description: `1x ${g}`, default: true }] })), + clusters: [{ id: `${id}-c1`, name: `${name}-cluster-1`, k8sVersion: '1.30' }] + }; +} +const CLUSTER_GROUPS = [clusterGroupObj('cg-0001', 'GFN', ['L40', 'L40S']), clusterGroupObj('cg-0002', 'GCP', ['H100', 'A100'])]; + +function gpuObj(displayName, pciDeviceId, memory) { + return { displayName, pciDeviceId, pciVendorId: '10DE', pciSubsystemDeviceId: '0000', memorySizeGb: memory, formFactor: 'SXM', cudaMajorVersion: '12', cudaMinorVersion: '4', gpuCounts: ['1', '2', '4', '8'], labelName: displayName.toLowerCase(), createdAt: ts, updatedAt: ts }; +} +const GPUS = [gpuObj('A100', '20B2', 80), gpuObj('H100', '2330', 80), gpuObj('L40S', '26B9', 48)]; + +const CATALOG_MODELS = [modelObj('nvidia', 'llama-3.1-8b-instruct', { isPublic: true, canGuestDownload: true }), modelObj('nvidia', 'nemotron-4-340b', { isPublic: true, canGuestDownload: true })]; + +// mutable stores +const state = { + models: new Map([[ORG_A, new Map([['resnet50', modelObj(ORG_A, 'resnet50')], ['bert-base', modelObj(ORG_A, 'bert-base')]])], [ORG_B, new Map([['whisper', modelObj(ORG_B, 'whisper')]])]]), + teamModels: new Map([[`${ORG_A}/${TEAM}`, new Map([['team-model', modelObj(ORG_A, 'team-model', { teamName: TEAM })]])]]), + functions: new Map([[FUNCTION_ID, new Map([[VERSION_ID, functionObj(FUNCTION_ID, VERSION_ID, 'mock-echo', { status: 'ACTIVE' })]])]]), + authorizations: new Map([[FUNCTION_ID, [{ ncaId: 'nca-partner-0001' }]]]), + deployments: new Map(), + pollStatus: new Map() +}; + +// --------------------------------------------------------------------------- +// helpers +// --------------------------------------------------------------------------- + +function send(res, code, body, headers = {}) { + const payload = body === undefined ? '' : (typeof body === 'string' ? body : JSON.stringify(body)); + res.writeHead(code, { 'Content-Type': 'application/json', ...headers }); + res.end(payload); +} +function ngcError(res, code, statusCode, message) { + send(res, code, { requestStatus: { statusCode, statusDescription: message, requestId: newId('req') } }); +} +function readBody(req) { + return new Promise((resolve) => { + let data = ''; + req.on('data', (c) => { data += c; }); + req.on('end', () => { + if (!data) return resolve({}); + try { resolve(JSON.parse(data)); } catch { resolve({ _raw: data }); } + }); + }); +} + +// zero-based page-number / page-size paging with the NGC paginationInfo +// envelope; defaultPageSize simulates the server-side page cap so +// pagination-aware clients must walk index/totalPages +function page(items, url, defaultPageSize = 2) { + const size = parseInt(url.searchParams.get('page-size') || '0', 10) || defaultPageSize; + const index = parseInt(url.searchParams.get('page-number') || '0', 10) || 0; + const totalPages = Math.max(1, Math.ceil(items.length / size)); + return { items: items.slice(index * size, index * size + size), paginationInfo: { index, size, totalPages, totalResults: items.length } }; +} +function listEnvelope(key, items, url) { + const { items: pageItems, paginationInfo } = page(items, url); + return { [key]: pageItems, paginationInfo, requestStatus: requestStatus() }; +} + +function isPublicPath(p) { + return /^\/v2\/(models|resources|recipes|collections|gpus|helm-charts|containers)(\/|$)/.test(p); +} + +// --------------------------------------------------------------------------- +// routes +// --------------------------------------------------------------------------- + +async function handle(req, res, log) { + const url = new URL(req.url, 'http://localhost'); + const p = url.pathname; + const m = req.method; + const body = ['POST', 'PUT', 'PATCH', 'DELETE'].includes(m) ? await readBody(req) : null; + log.push({ method: m, path: p, query: Object.fromEntries(url.searchParams), authorization: req.headers['authorization'] || '', contentType: req.headers['content-type'] || '', body }); + + const auth = req.headers['authorization'] || ''; + const authed = auth === `Bearer ${EXPECTED_TOKEN}`; + if (!authed && !isPublicPath(p)) { + if (p.startsWith('/v2/nvcf/')) return send(res, 401, undefined); + return ngcError(res, 401, 'UNAUTHORIZED', 'Authentication required'); + } + + let x; + + // ----------------------------------------------------------- orgs (kas) + if (m === 'GET' && p === '/v2/orgs') return send(res, 200, listEnvelope('organizations', ORGS, url)); + if ((x = p.match(/^\/v2\/orgs\/([^/]+)$/)) && m === 'GET') { + const org = ORGS.find((o) => o.name === x[1]); + return org ? send(res, 200, { organizations: org, requestStatus: requestStatus() }) : ngcError(res, 404, 'NOT_FOUND', `org ${x[1]} not found`); + } + if (m === 'GET' && p === '/v2/users/me') return send(res, 200, { user: USERS[0], userRoles: [{ org: { name: ORG_A }, orgRoles: ['REGISTRY_READ'] }], ncaRole: 'MEMBER', requestStatus: requestStatus() }); + if ((x = p.match(/^\/v2\/org\/([^/]+)\/users$/)) && m === 'GET') { + if (![ORG_A, ORG_B].includes(x[1])) return ngcError(res, 404, 'NOT_FOUND', `org ${x[1]} not found`); + return send(res, 200, listEnvelope('users', USERS, url)); + } + if ((x = p.match(/^\/v3\/orgs\/([^/]+)\/users\/([^/]+)$/)) && m === 'GET') { + const u = USERS.find((u) => u.email === x[2] || String(u.id) === x[2]); + return u ? send(res, 200, { user: u, requestStatus: requestStatus() }) : ngcError(res, 404, 'NOT_FOUND', 'user not found'); + } + if ((x = p.match(/^\/v2\/org\/([^/]+)\/teams$/)) && m === 'GET') return send(res, 200, listEnvelope('teams', TEAMS, url)); + if ((x = p.match(/^\/v2\/org\/([^/]+)\/teams\/([^/]+)$/)) && m === 'GET') { + const t = TEAMS.find((t) => t.name === x[2]); + return t ? send(res, 200, { team: t, requestStatus: requestStatus() }) : ngcError(res, 404, 'NOT_FOUND', 'team not found'); + } + if ((x = p.match(/^\/v2\/org\/([^/]+)\/team\/([^/]+)\/users$/)) && m === 'GET') return send(res, 200, listEnvelope('users', USERS.slice(0, 1), url)); + + // --------------------------------------------------- private registry + if ((x = p.match(/^\/v2\/org\/([^/]+)\/team\/([^/]+)\/models$/)) && m === 'GET') { + const store = state.teamModels.get(`${x[1]}/${x[2]}`) || new Map(); + return send(res, 200, listEnvelope('models', [...store.values()], url)); + } + if ((x = p.match(/^\/v2\/org\/([^/]+)\/models$/))) { + const store = state.models.get(x[1]); + if (!store) return ngcError(res, 404, 'NOT_FOUND', `org ${x[1]} not found`); + if (m === 'GET') return send(res, 200, listEnvelope('models', [...store.values()], url)); + if (m === 'POST') { + const name = body?.name; + if (!name || !body.framework || !body.precision) return ngcError(res, 400, 'BAD_REQUEST', 'name, framework and precision are required'); + const model = modelObj(x[1], name, { displayName: body.displayName || name, framework: body.framework, precision: body.precision, shortDescription: body.shortDescription || '', application: body.application || '' }); + store.set(name, model); + return send(res, 200, { model, requestStatus: requestStatus() }); + } + } + if ((x = p.match(/^\/v2\/org\/([^/]+)\/models\/([^/]+)$/))) { + const store = state.models.get(x[1]); + const model = store?.get(x[2]); + if (!model) return ngcError(res, 404, 'NOT_FOUND', `model ${x[2]} not found`); + if (m === 'GET') return send(res, 200, { model, requestStatus: requestStatus() }); + if (m === 'PATCH') { + Object.assign(model, body, { updatedDate: '2026-08-02T00:00:00.000Z' }); + return send(res, 200, { model, requestStatus: requestStatus() }); + } + } + if ((x = p.match(/^\/v2\/org\/([^/]+)\/models\/([^/]+)\/versions$/)) && m === 'GET') { + const model = state.models.get(x[1])?.get(x[2]); + if (!model) return ngcError(res, 404, 'NOT_FOUND', 'model not found'); + const { items, paginationInfo } = page([modelVersionObj('1.0', 101), modelVersionObj('1.1', 102)], url); + return send(res, 200, { model, modelVersions: items, paginationInfo, requestStatus: requestStatus() }); + } + if ((x = p.match(/^\/v2\/org\/([^/]+)\/models\/([^/]+)\/versions\/([^/]+)$/)) && m === 'GET') { + const model = state.models.get(x[1])?.get(x[2]); + if (!model) return ngcError(res, 404, 'NOT_FOUND', 'model not found'); + return send(res, 200, { model, modelVersion: modelVersionObj(x[3], x[3] === '1.1' ? 102 : 101), requestStatus: requestStatus() }); + } + // generic artifact delete (typed models have no DELETE - deletion rides + // /v2/org/{org}/{artifact_type}/{artifact_name}) + if ((x = p.match(/^\/v2\/org\/([^/]+)\/([^/]+)\/([^/]+)$/)) && m === 'DELETE' && x[2] === 'models') { + const store = state.models.get(x[1]); + if (!store?.has(x[3])) return ngcError(res, 404, 'NOT_FOUND', `model ${x[3]} not found`); + store.delete(x[3]); + return send(res, 200, { requestStatus: requestStatus() }); + } + + // ------------------------------------------------------------- catalog + if (m === 'GET' && p === '/v2/models') return send(res, 200, listEnvelope('models', CATALOG_MODELS, url)); + if ((x = p.match(/^\/v2\/models\/([^/]+)\/([^/]+)$/)) && m === 'GET') { + const model = CATALOG_MODELS.find((mm) => mm.orgName === x[1] && mm.name === x[2]); + return model ? send(res, 200, { model, requestStatus: requestStatus() }) : ngcError(res, 404, 'NOT_FOUND', 'model not found'); + } + if (m === 'GET' && p === '/v2/gpus') return send(res, 200, GPUS); + if (m === 'GET' && p === '/v2/collections') return send(res, 200, listEnvelope('collections', [{ name: 'nemo', orgName: 'nvidia', displayName: 'NeMo', category: 'Framework', createdDate: ts }], url)); + + // --------------------------------------------- NVCF management (ngc host) + if (m === 'GET' && p === '/v2/nvcf/functions') { + const all = [...state.functions.values()].flatMap((versions) => [...versions.values()]); + return send(res, 200, { functions: all }); + } + if (m === 'GET' && p === '/v2/nvcf/functions/ids') return send(res, 200, { functionIds: [...state.functions.keys()] }); + if (m === 'POST' && p === '/v2/nvcf/functions') { + if (!body?.name || !body?.inferenceUrl) return send(res, 400, { type: 'about:blank', title: 'Bad Request', detail: 'name and inferenceUrl are required' }); + const id = newId('fn'); + const versionId = newId('ver'); + const fn = functionObj(id, versionId, body.name, { inferenceUrl: body.inferenceUrl, containerImage: body.containerImage || null, helmChart: body.helmChart || null, apiBodyFormat: body.apiBodyFormat || 'PREDICT_V2', status: 'INACTIVE' }); + state.functions.set(id, new Map([[versionId, fn]])); + return send(res, 200, { function: fn }); + } + if ((x = p.match(/^\/v2\/nvcf\/functions\/([^/]+)\/versions$/))) { + const versions = state.functions.get(x[1]); + if (!versions) return send(res, 404, { type: 'about:blank', title: 'Not Found', detail: `function ${x[1]} not found` }); + if (m === 'GET') return send(res, 200, { functions: [...versions.values()] }); + if (m === 'POST') { + const versionId = newId('ver'); + const first = [...versions.values()][0]; + const fn = functionObj(x[1], versionId, first.name, { inferenceUrl: body?.inferenceUrl || first.inferenceUrl, containerImage: body?.containerImage || first.containerImage }); + versions.set(versionId, fn); + return send(res, 200, { function: fn }); + } + } + if ((x = p.match(/^\/v2\/nvcf\/functions\/([^/]+)\/versions\/([^/]+)$/))) { + const fn = state.functions.get(x[1])?.get(x[2]); + if (!fn) return send(res, 404, { type: 'about:blank', title: 'Not Found', detail: 'function version not found' }); + if (m === 'GET') return send(res, 200, { function: fn }); + if (m === 'PUT') { Object.assign(fn, body || {}); return send(res, 200, { function: fn }); } + if (m === 'DELETE') { + state.functions.get(x[1]).delete(x[2]); + if (state.functions.get(x[1]).size === 0) state.functions.delete(x[1]); + return send(res, 204, undefined); + } + } + // NVCF 2.261.2: every function with its authorized parties in one read + if (m === 'GET' && p === '/v2/nvcf/authorizations/functions') { + return send(res, 200, { functions: [...state.authorizations.entries()].map(([id, parties]) => ({ id, ncaId: NCA_ID, versionId: VERSION_ID, authorizedParties: parties })) }); + } + if ((x = p.match(/^\/v2\/nvcf\/authorizations\/functions\/([^/]+)(\/versions\/([^/]+))?(\/add|\/remove)?$/))) { + if (!state.functions.has(x[1])) return send(res, 404, { type: 'about:blank', title: 'Not Found', detail: 'function not found' }); + const parties = state.authorizations.get(x[1]) || []; + const dto = () => ({ id: x[1], ncaId: NCA_ID, versionId: x[3] || VERSION_ID, authorizedParties: state.authorizations.get(x[1]) || [] }); + if (m === 'GET' && !x[2]) return send(res, 200, { functions: [dto()] }); + if (m === 'GET') return send(res, 200, { function: dto() }); + if (m === 'PATCH' && x[4] === '/add') { state.authorizations.set(x[1], [...parties, body.authorizedParty]); return send(res, 200, { function: dto() }); } + if (m === 'PATCH' && x[4] === '/remove') { state.authorizations.set(x[1], parties.filter((a) => a.ncaId !== body.authorizedParty?.ncaId)); return send(res, 200, { function: dto() }); } + if (m === 'POST') { state.authorizations.set(x[1], body.authorizedParties || []); return send(res, 200, { function: dto() }); } + if (m === 'DELETE') { state.authorizations.set(x[1], []); return send(res, 200, { function: dto() }); } + } + if (m === 'GET' && p === '/v2/nvcf/clusterGroups') return send(res, 200, { clusterGroups: CLUSTER_GROUPS }); + if ((x = p.match(/^\/v2\/nvcf\/deployments\/functions\/([^/]+)\/versions\/([^/]+)$/))) { + const fn = state.functions.get(x[1])?.get(x[2]); + if (!fn) return send(res, 404, { type: 'about:blank', title: 'Not Found', detail: 'function version not found' }); + const key = `${x[1]}/${x[2]}`; + if (m === 'POST') { + const dep = { deploymentId: newId('dep'), functionId: x[1], functionVersionId: x[2], functionName: fn.name, functionStatus: 'DEPLOYING', ncaId: NCA_ID, deploymentSpecifications: body?.deploymentSpecifications || [], createdAt: ts, lastUpdatedAt: ts }; + state.deployments.set(key, dep); + fn.status = 'DEPLOYING'; + return send(res, 200, { deployment: dep }); + } + const dep = state.deployments.get(key); + if (!dep) return send(res, 404, { type: 'about:blank', title: 'Not Found', detail: 'no deployment for this function version' }); + if (m === 'GET') return send(res, 200, { deployment: dep }); + if (m === 'PUT') { dep.deploymentSpecifications = body?.deploymentSpecifications || dep.deploymentSpecifications; dep.lastUpdatedAt = '2026-08-02T00:00:00.000Z'; return send(res, 200, { deployment: dep }); } + if (m === 'DELETE') { state.deployments.delete(key); fn.status = 'INACTIVE'; return send(res, 200, { function: fn }); } + } + if ((x = p.match(/^\/v2\/nvcf\/deployments\/([^/]+)$/)) && m === 'GET') { + const dep = [...state.deployments.values()].find((d) => d.deploymentId === x[1]); + return dep ? send(res, 200, { deployment: dep }) : send(res, 404, { type: 'about:blank', title: 'Not Found', detail: 'deployment not found' }); + } + + // ------------------------------------------ NVCF queues / invocation (nvcf host) + if ((x = p.match(/^\/v2\/nvcf\/queues\/functions\/([^/]+)$/)) && m === 'GET') { + const versions = state.functions.get(x[1]); + if (!versions) return send(res, 404, undefined); + return send(res, 200, { functionId: x[1], queues: [...versions.values()].map((fn) => ({ functionVersionId: fn.versionId, functionName: fn.name, functionStatus: fn.status, queueDepth: 0 })) }); + } + if ((x = p.match(/^\/v2\/nvcf\/queues\/([^/]+)\/position$/)) && m === 'GET') return send(res, 200, { functionId: FUNCTION_ID, functionVersionId: VERSION_ID, positionInQueue: 0 }); + if ((x = p.match(/^\/v2\/nvcf\/pexec\/functions\/([^/]+)(\/versions\/([^/]+))?$/)) && m === 'POST') { + if (!state.functions.has(x[1])) return send(res, 404, undefined); + const reqId = newId('inv'); + state.pollStatus.set(reqId, { input: body, done: false }); + return send(res, 202, {}, { 'NVCF-REQID': reqId, 'NVCF-STATUS': 'pending-evaluation' }); + } + if ((x = p.match(/^\/v2\/nvcf\/pexec\/status\/([^/]+)$/)) && m === 'GET') { + const st = state.pollStatus.get(x[1]) || (x[1] === REQUEST_ID ? { input: { prompt: 'hi' }, done: true } : null); + if (!st) return send(res, 404, undefined); + return send(res, 200, { echo: st.input, result: 'ok' }, { 'NVCF-REQID': x[1], 'NVCF-STATUS': 'fulfilled' }); + } + if (m === 'GET' && p === '/v2/nvcf/assets') return send(res, 200, { assets: [{ assetId: 'asset-0001', description: 'mock asset', contentType: 'image/png', size: 1024, createdAt: ts }] }); + + if (p.startsWith('/v2/nvcf/')) return send(res, 404, { type: 'about:blank', title: 'Not Found', detail: `no mock route for ${m} ${p}` }); + return ngcError(res, 404, 'NOT_FOUND', `no mock route for ${m} ${p}`); +} + +export function startMockServer(port = 0) { + const log = []; + const server = http.createServer((req, res) => { + handle(req, res, log).catch((err) => send(res, 500, { error: err.message })); + }); + return new Promise((resolve) => { + server.listen(port, '127.0.0.1', () => resolve({ server, port: server.address().port, log, state })); + }); +} + +// standalone mode +if (process.argv[1]?.endsWith('mock_nvidia_server.mjs')) { + const { port } = await startMockServer(parseInt(process.argv[2] || '18081', 10)); + console.log(`mock NGC + NVCF API listening on http://127.0.0.1:${port}`); + console.log(`expects: Authorization: Bearer ${EXPECTED_TOKEN}; orgs ${ORG_A}, ${ORG_B}; team ${TEAM}; function ${FUNCTION_ID} / version ${VERSION_ID}`); +} diff --git a/tests/integration/probe.mjs b/tests/integration/probe.mjs new file mode 100644 index 0000000..2c9ad6c --- /dev/null +++ b/tests/integration/probe.mjs @@ -0,0 +1,45 @@ +#!/usr/bin/env node + +// Developer probe: start the mock NGC + NVCF server, materialise the test +// registry (as run_integration_tests.mjs does) and run the SQL statements +// given on the command line, printing stackql's stdout/stderr and the wire +// calls the mock saw for each. This is how bindings get debugged. +// +// Usage: npm run probe -- "SELECT ..." "EXEC ..." [--env KEY=VALUE ...] [--unset KEY] + +import { startMockServer, EXPECTED_TOKEN, ORG_A } from './mock_nvidia_server.mjs'; +import { buildTestRegistry, registryArg, makeRunSql, findStackql } from './harness.mjs'; + +// The environment the provider reads (as in run_integration_tests.mjs) +const PROVIDER_ENV = { NGC_API_KEY: EXPECTED_TOKEN, NGC_ORG: ORG_A }; + +const args = process.argv.slice(2); +const sqls = []; +const envOverrides = {}; +for (let i = 0; i < args.length; i++) { + if (args[i] === '--env') { const [k, v] = args[++i].split('='); envOverrides[k] = v; } + else if (args[i] === '--unset') { envOverrides[args[++i]] = undefined; } + else sqls.push(args[i]); +} +if (sqls.length === 0) { + console.error('usage: npm run probe -- "SELECT ..." ["EXEC ..."] [--env KEY=VALUE] [--unset KEY]'); + process.exit(2); +} + +const { server, port, log } = await startMockServer(); +const registry = registryArg(buildTestRegistry(port)); +const runSql = makeRunSql(registry, PROVIDER_ENV); +console.log(`mock NGC + NVCF API on localhost:${port}, stackql: ${findStackql()}`); + +try { + for (const sql of sqls) { + const mark = log.length; + const { stdout, stderr } = await runSql(sql, envOverrides); + console.log(`\n=== ${sql}`); + console.log(`stdout: ${stdout.slice(0, 1500)}`); + if (stderr) console.log(`stderr: ${stderr.slice(0, 900)}`); + for (const e of log.slice(mark)) console.log(`wire: ${e.method} ${e.path} query=${JSON.stringify(e.query)} auth=${e.authorization ? 'yes' : 'no'} ct=${e.contentType} body=${JSON.stringify(e.body)}`); + } +} finally { + server.close(); +} diff --git a/tests/integration/run_integration_tests.mjs b/tests/integration/run_integration_tests.mjs new file mode 100644 index 0000000..5214c15 --- /dev/null +++ b/tests/integration/run_integration_tests.mjs @@ -0,0 +1,213 @@ +#!/usr/bin/env node + +// Integration tests: run the generated nvidia provider (local file +// registry, test copy pointed at the mock) against the mock NGC + NVCF API +// and assert row-level results for each operation archetype: +// - the bearer token (the mock 401s anything else) +// - list envelopes unwrapped per resource ($.organizations, $.models, +// $.functions, $.clusterGroups, $.queues), entity envelopes ($.user, +// $.model, $.function, $.deployment), the bare-array GPU catalog +// - page_number pagination over paginationInfo (three pages walked) and +// LIMIT pushed down to page-size +// - org_name resolved from NGC_ORG (x-stackQL-envVar on the path-level +// server template), a WHERE value beating the environment, the +// unset-env failure mode, and the *_by_team twin routing +// - snake_case surface: kebab query parameters (resolve_labels -> +// resolve-labels) and camelCase body properties (display_name -> +// displayName) via request.nativeCasing +// - the registry model INSERT / UPDATE / DELETE lifecycle +// - the NVCF function INSERT (function + first version), version get, +// authorization grants INSERT / SELECT / DELETE, deployment INSERT / +// SELECT / DELETE, queue details on the second host, the polling +// invocation EXEC (opaque JSON body) and the status SELECT +// - a 404 surfaced +// +// Requires a stackql binary: $STACKQL, ./stackql, or `stackql` on PATH. +// +// Usage: node tests/integration/run_integration_tests.mjs [--verbose] + +import { startMockServer, EXPECTED_TOKEN, ORG_A, ORG_B, TEAM, FUNCTION_ID, VERSION_ID, REQUEST_ID } from './mock_nvidia_server.mjs'; +import { buildTestRegistry, registryArg, makeRunSql, findStackql } from './harness.mjs'; + +const verbose = process.argv.includes('--verbose'); +const t0 = Date.now(); + +// The environment the provider reads: the bearer credential and the scoping +// variable behind the org_name server template. +const PROVIDER_ENV = { NGC_API_KEY: EXPECTED_TOKEN, NGC_ORG: ORG_A }; + +const results = []; +function check(name, cond, note = '') { + results.push({ name, pass: !!cond, note }); + console.log(` ${cond ? 'PASS' : 'FAIL'} ${name}${!cond && note ? ` [${String(note).slice(0, 260)}]` : ''}`); +} + +const { server, port, log, state } = await startMockServer(); +const registry = registryArg(buildTestRegistry(port)); +const runSql = makeRunSql(registry, PROVIDER_ENV, { verbose }); +console.log(`mock NGC + NVCF API on localhost:${port}, stackql: ${findStackql()}`); + +const calls = (mark, method, p) => log.slice(mark).filter((e) => e.method === method && e.path === p); +const has = (rows, key, value) => Array.isArray(rows) && rows.some((r) => r[key] === value); + +try { + // --- meta sanity + let r = await runSql('SHOW SERVICES IN nvidia'); + check('show services (7)', r.rows && r.rows.length === 7, r.err || `got ${r.rows?.length}`); + + // --- bearer wiring: the mock 401s anything without the token + r = await runSql('SELECT name FROM nvidia.orgs.orgs', { NGC_API_KEY: 'nvapi-wrong' }); + check('wrong NGC_API_KEY -> 401 surfaced', r.err && /401/.test(r.err), r.err || JSON.stringify(r.rows)); + let mark = log.length; + r = await runSql('SELECT name, display_name FROM nvidia.orgs.orgs'); + check('orgs list unwraps $.organizations (5 rows over 3 pages of 2)', r.rows && r.rows.length === 5 && has(r.rows, 'name', ORG_A), r.err || JSON.stringify(r.rows)); + check('bearer token sent on every call', log.slice(mark).every((e) => e.authorization === `Bearer ${EXPECTED_TOKEN}`), JSON.stringify(log.slice(mark).map((e) => e.authorization))); + const orgCalls = calls(mark, 'GET', '/v2/orgs'); + check('page_number pagination walked page-number 0,1,2 (+ the terminating out-of-range page)', + orgCalls.length >= 3 && orgCalls.slice(1).every((c) => c.query['page-number'] !== undefined) && orgCalls.some((c) => c.query['page-number'] === '2'), + JSON.stringify(orgCalls.map((c) => c.query))); + check('snake_case aliases on the wire camelCase (display_name column)', r.rows && r.rows[0] && 'display_name' in r.rows[0], JSON.stringify(r.rows?.[0])); + + // --- LIMIT pushdown to page-size + mark = log.length; + r = await runSql('SELECT name FROM nvidia.orgs.orgs LIMIT 1'); + check('LIMIT 1 -> one row, page-size=1 on the wire', r.rows && r.rows.length === 1 && calls(mark, 'GET', '/v2/orgs')[0]?.query['page-size'] === '1', r.err || JSON.stringify(calls(mark, 'GET', '/v2/orgs').map((c) => c.query))); + + // --- entity envelope: current user ($.user) + r = await runSql('SELECT email, name FROM nvidia.orgs.current_user'); + check('current_user get unwraps $.user (email column)', r.rows && r.rows.length === 1 && r.rows[0].email === 'alice@example.com', r.err || JSON.stringify(r.rows)); + r = await runSql(`SELECT name FROM nvidia.orgs.orgs WHERE org_name = '${ORG_B}'`); + check('orgs get on the root path ($.organizations object) by org_name', r.rows && r.rows.length === 1 && r.rows[0].name === ORG_B, r.err || JSON.stringify(r.rows)); + + // --- org_name from NGC_ORG via the path-level server template + mark = log.length; + r = await runSql('SELECT name, framework FROM nvidia.private_registry.models'); + check('models list with org_name from NGC_ORG (no WHERE) -> /v2/org/<NGC_ORG>/models, 2 rows via $.models', r.rows && r.rows.length === 2 && calls(mark, 'GET', `/v2/org/${ORG_A}/models`).length > 0, r.err || `rows ${r.rows?.length}; calls ${JSON.stringify(log.slice(mark).map((e) => e.path))}`); + mark = log.length; + r = await runSql(`SELECT name FROM nvidia.private_registry.models WHERE org_name = '${ORG_B}'`); + check('WHERE org_name beats NGC_ORG (-> /v2/org/ORG_B/models, 1 row)', r.rows && r.rows.length === 1 && r.rows[0].name === 'whisper' && calls(mark, 'GET', `/v2/org/${ORG_B}/models`).length > 0, r.err || JSON.stringify(r.rows)); + r = await runSql('SELECT name FROM nvidia.private_registry.models', { NGC_ORG: undefined }); + check('NGC_ORG unset and no WHERE org_name -> error (no viable server: the org_name variable is unresolved)', r.err && /org_name|viable servers/.test(r.err), r.err || JSON.stringify(r.rows)); + mark = log.length; + r = await runSql(`SELECT name, org_name FROM nvidia.private_registry.models WHERE team_name = '${TEAM}'`); + check('team_name routes to the *_by_team twin (/v2/org/ORG_A/team/TEAM/models)', r.rows && r.rows.length === 1 && r.rows[0].name === 'team-model' && calls(mark, 'GET', `/v2/org/${ORG_A}/team/${TEAM}/models`).length > 0, r.err || JSON.stringify(log.slice(mark).map((e) => e.path))); + mark = log.length; + r = await runSql("SELECT name, display_name, latest_version_id_str FROM nvidia.private_registry.models WHERE model_name = 'resnet50'"); + check('models get unwraps $.model (WHERE model_name)', r.rows && r.rows.length === 1 && r.rows[0].display_name === 'Mock resnet50' && calls(mark, 'GET', `/v2/org/${ORG_A}/models/resnet50`).length > 0, r.err || JSON.stringify(r.rows)); + + // --- kebab query parameters via nativeCasing (resolve_labels -> resolve-labels) + mark = log.length; + r = await runSql("SELECT name FROM nvidia.private_registry.models WHERE resolve_labels = 'true'"); + const rl = calls(mark, 'GET', `/v2/org/${ORG_A}/models`); + check('snake WHERE key on a kebab wire param (resolve_labels -> resolve-labels=true)', r.rows && r.rows.length === 2 && rl.length > 0 && rl[0].query['resolve-labels'] === 'true', r.err || JSON.stringify(rl.map((c) => c.query))); + + // --- model versions ($.modelVersions list, $.modelVersion get) + r = await runSql("SELECT id, version_id, status FROM nvidia.private_registry.model_versions WHERE model_name = 'resnet50'"); + check('model_versions list unwraps $.modelVersions (2 rows; numeric id, string version_id)', r.rows && r.rows.length === 2 && /"version_id":"1\.0"/.test(r.text || '') && /"version_id":"1\.1"/.test(r.text || '') && has(r.rows, 'id', 101), r.err || JSON.stringify(r.rows)); + r = await runSql("SELECT id, version_id, gpu_model FROM nvidia.private_registry.model_versions WHERE model_name = 'resnet50' AND version_id = '1.1'"); + check('model_versions get unwraps $.modelVersion (resource-named property wins over $.model)', r.rows && r.rows.length === 1 && /"version_id":"1\.1"/.test(r.text || '') && r.rows[0].id === 102 && r.rows[0].gpu_model === 'A100', r.err || JSON.stringify(r.rows)); + + // --- registry model lifecycle: INSERT (camelCase body via nativeCasing), UPDATE, DELETE via artifacts + mark = log.length; + r = await runSql("INSERT INTO nvidia.private_registry.models (name, display_name, framework, precision, application, short_description) SELECT 'it-model', 'IT Model', 'PyTorch', 'FP16', 'Inference', 'created by the integration test'"); + const post = calls(mark, 'POST', `/v2/org/${ORG_A}/models`); + check('model INSERT -> POST with camelCase body (displayName, shortDescription)', !r.err && post.length === 1 && post[0].body.displayName === 'IT Model' && post[0].body.shortDescription === 'created by the integration test' && post[0].body.framework === 'PyTorch', r.err || JSON.stringify(post.map((c) => c.body))); + r = await runSql("SELECT name, display_name FROM nvidia.private_registry.models WHERE model_name = 'it-model'"); + check('model visible after INSERT', r.rows && r.rows.length === 1 && r.rows[0].display_name === 'IT Model', r.err || JSON.stringify(r.rows)); + mark = log.length; + r = await runSql("UPDATE nvidia.private_registry.models SET display_name = 'IT Model v2' WHERE model_name = 'it-model'"); + const patch = calls(mark, 'PATCH', `/v2/org/${ORG_A}/models/it-model`); + check('model UPDATE -> PATCH with {displayName}', !r.err && patch.length === 1 && patch[0].body.displayName === 'IT Model v2', r.err || JSON.stringify(patch.map((c) => c.body))); + r = await runSql("SELECT display_name FROM nvidia.private_registry.models WHERE model_name = 'it-model'"); + check('model reflects UPDATE', r.rows && r.rows[0]?.display_name === 'IT Model v2', r.err || JSON.stringify(r.rows)); + mark = log.length; + r = await runSql("DELETE FROM nvidia.private_registry.models WHERE model_name = 'it-model'"); + check('model DELETE (SDK-evidenced operation) -> DELETE /v2/org/ORG_A/models/it-model', !r.err && calls(mark, 'DELETE', `/v2/org/${ORG_A}/models/it-model`).length === 1, r.err || JSON.stringify(log.slice(mark).map((e) => `${e.method} ${e.path}`))); + r = await runSql('SELECT name FROM nvidia.private_registry.models'); + check('model gone after DELETE', r.rows && !has(r.rows, 'name', 'it-model'), r.err || JSON.stringify(r.rows)); + + // --- catalog: public reads (envelope + bare array) + r = await runSql('SELECT name, org_name, can_guest_download FROM nvidia.catalog.models'); + check('catalog models list ($.models, no org scope)', r.rows && r.rows.length === 2 && has(r.rows, 'name', 'llama-3.1-8b-instruct'), r.err || JSON.stringify(r.rows)); + r = await runSql("SELECT name, display_name FROM nvidia.catalog.models WHERE org_name = 'nvidia' AND model_name = 'nemotron-4-340b'"); + check('catalog model get ($.model) by org_name + model_name path params', r.rows && r.rows.length === 1 && r.rows[0].display_name === 'Mock nemotron-4-340b', r.err || JSON.stringify(r.rows)); + r = await runSql('SELECT display_name, pci_device_id, memory_size_gb FROM nvidia.catalog.gpus'); + check('catalog gpus (bare array wrapped) -> 3 rows with display_name / memory_size_gb', r.rows && r.rows.length === 3 && has(r.rows, 'display_name', 'H100') && r.rows[0].memory_size_gb === 80, r.err || JSON.stringify(r.rows)); + + // --- NVCF: functions, ids, cluster groups + r = await runSql('SELECT id, name, status, version_id FROM nvidia.nvcf_functions.functions'); + check('nvcf functions list ($.functions)', r.rows && r.rows.length === 1 && r.rows[0].id === FUNCTION_ID && r.rows[0].status === 'ACTIVE', r.err || JSON.stringify(r.rows)); + r = await runSql('SELECT function_id FROM nvidia.nvcf_functions.function_ids'); + check('function_ids (scalar list transform -> function_id column)', r.rows && r.rows.length === 1 && r.rows[0].function_id === FUNCTION_ID, r.err || JSON.stringify(r.rows)); + r = await runSql("SELECT id, name, json_extract(gpus, '$[0].name') AS first_gpu FROM nvidia.nvcf_deployments.cluster_groups"); + check('cluster_groups ($.clusterGroups) with gpus as JSON (the GPU estate query)', r.rows && r.rows.length === 2 && has(r.rows, 'first_gpu', 'L40') && has(r.rows, 'first_gpu', 'H100'), r.err || JSON.stringify(r.rows)); + mark = log.length; + r = await runSql('SELECT cluster_group, gpu, instance_type, is_default, cluster FROM nvidia.nvcf_deployments.vw_gpu_capacity ORDER BY cluster_group, gpu'); + check('vw_gpu_capacity flattens cluster group x GPU x instance type (4 rows from 2 groups)', r.rows && r.rows.length === 4 && has(r.rows, 'instance_type', 'GCP.GPU.L40S_1x') && r.rows.every((x) => x.is_default === true || x.is_default === 1) && has(r.rows, 'cluster', 'GFN-cluster-1'), r.err || JSON.stringify(r.rows)); + check('vw_gpu_capacity issued one cluster groups read', calls(mark, 'GET', '/v2/nvcf/clusterGroups').length === 1, JSON.stringify(log.slice(mark).map((e) => e.path))); + + // --- NVCF function lifecycle: INSERT function, version get, authorization grants, deployment, delete + mark = log.length; + r = await runSql("INSERT INTO nvidia.nvcf_functions.functions (name, inference_url, container_image, api_body_format) SELECT 'it-echo', '/echo', 'nvcr.io/mock/echo:latest', 'CUSTOM'"); + const fnPost = calls(mark, 'POST', '/v2/nvcf/functions'); + check('function INSERT -> POST /v2/nvcf/functions with camelCase body (inferenceUrl, containerImage)', !r.err && fnPost.length === 1 && fnPost[0].body.inferenceUrl === '/echo' && fnPost[0].body.containerImage === 'nvcr.io/mock/echo:latest', r.err || JSON.stringify(fnPost.map((c) => c.body))); + r = await runSql("SELECT id, version_id, name FROM nvidia.nvcf_functions.functions WHERE name = 'it-echo'"); + const created = r.rows?.find((x) => x.name === 'it-echo'); + check('created function visible in the fleet list', !!created, r.err || JSON.stringify(r.rows)); + if (created) { + r = await runSql(`SELECT name, status, inference_url FROM nvidia.nvcf_functions.function_versions WHERE function_id = '${created.id}' AND function_version_id = '${created.version_id}'`); + check('function_versions get ($.function) by function_id + function_version_id', r.rows && r.rows.length === 1 && r.rows[0].inference_url === '/echo', r.err || JSON.stringify(r.rows)); + + // authorizations: grants-as-data + mark = log.length; + r = await runSql(`INSERT INTO nvidia.nvcf_functions.authorizations (function_id, authorized_party) SELECT '${created.id}', '{"ncaId": "nca-partner-0002"}'`); + const addCall = calls(mark, 'PATCH', `/v2/nvcf/authorizations/functions/${created.id}/add`); + check('authorization INSERT -> PATCH .../add with {authorizedParty: {ncaId}}', !r.err && addCall.length === 1 && addCall[0].body.authorizedParty?.ncaId === 'nca-partner-0002', r.err || JSON.stringify(addCall.map((c) => c.body))); + r = await runSql(`SELECT id, json_extract(authorized_parties, '$[0].ncaId') AS party FROM nvidia.nvcf_functions.authorizations WHERE function_id = '${created.id}'`); + check('authorizations list ($.functions) shows the grant', r.rows && r.rows.length === 1 && r.rows[0].party === 'nca-partner-0002', r.err || JSON.stringify(r.rows)); + mark = log.length; + r = await runSql(`SELECT id, json_extract(authorized_parties, '$[0].ncaId') AS party FROM nvidia.nvcf_functions.authorizations`); + check('authorizations list_all (no WHERE -> GET /v2/nvcf/authorizations/functions, the fleet-wide sharing audit)', r.rows && r.rows.length === 2 && has(r.rows, 'id', FUNCTION_ID) && has(r.rows, 'id', created.id) && calls(mark, 'GET', '/v2/nvcf/authorizations/functions').length === 1, r.err || JSON.stringify({ rows: r.rows, paths: log.slice(mark).map((e) => e.path) })); + mark = log.length; + r = await runSql(`DELETE FROM nvidia.nvcf_functions.authorizations WHERE function_id = '${created.id}' AND authorized_party = '{"ncaId": "nca-partner-0002"}'`); + check('authorization DELETE -> PATCH .../remove', !r.err && calls(mark, 'PATCH', `/v2/nvcf/authorizations/functions/${created.id}/remove`).length === 1, r.err || JSON.stringify(log.slice(mark).map((e) => `${e.method} ${e.path}`))); + + // deployment round trip (deployment specifications as a JSON blob) + mark = log.length; + r = await runSql(`INSERT INTO nvidia.nvcf_deployments.deployments (function_id, function_version_id, deployment_specifications) SELECT '${created.id}', '${created.version_id}', '[{"gpu": "L40", "backend": "GFN", "instanceType": "GCP.GPU.L40_1x", "minInstances": 1, "maxInstances": 1}]'`); + const depPost = calls(mark, 'POST', `/v2/nvcf/deployments/functions/${created.id}/versions/${created.version_id}`); + check('deployment INSERT -> POST with deploymentSpecifications array', !r.err && depPost.length === 1 && Array.isArray(depPost[0].body.deploymentSpecifications) && depPost[0].body.deploymentSpecifications[0].gpu === 'L40', r.err || JSON.stringify(depPost.map((c) => c.body))); + r = await runSql(`SELECT deployment_id, function_status, json_extract(deployment_specifications, '$[0].gpu') AS gpu FROM nvidia.nvcf_deployments.deployments WHERE function_id = '${created.id}' AND function_version_id = '${created.version_id}'`); + check('deployment get ($.deployment) with the spec blob', r.rows && r.rows.length === 1 && r.rows[0].gpu === 'L40' && r.rows[0].function_status === 'DEPLOYING', r.err || JSON.stringify(r.rows)); + r = await runSql(`DELETE FROM nvidia.nvcf_deployments.deployments WHERE function_id = '${created.id}' AND function_version_id = '${created.version_id}'`); + check('deployment DELETE', !r.err, r.err); + + // queue details on the second host (api.nvcf.nvidia.com) + mark = log.length; + r = await runSql(`SELECT function_version_id, function_status, queue_depth FROM nvidia.nvcf_queues.queues WHERE function_id = '${created.id}'`); + check('queues list ($.queues) on the nvcf host', r.rows && r.rows.length === 1 && r.rows[0].queue_depth === 0 && calls(mark, 'GET', `/v2/nvcf/queues/functions/${created.id}`).length === 1, r.err || JSON.stringify(r.rows)); + + // polling invocation: EXEC with an opaque JSON body, then the status SELECT + mark = log.length; + r = await runSql(`EXEC nvidia.nvcf_invocation.invocations.invoke @function_id = '${created.id}', @body = '{"prompt": "hello"}'`); + const inv = calls(mark, 'POST', `/v2/nvcf/pexec/functions/${created.id}`); + check('invoke EXEC -> POST /v2/nvcf/pexec/functions/{id} with the body JSON verbatim', !r.err && inv.length === 1 && inv[0].body?.prompt === 'hello', r.err || JSON.stringify(inv.map((c) => c.body))); + + r = await runSql(`DELETE FROM nvidia.nvcf_functions.function_versions WHERE function_id = '${created.id}' AND function_version_id = '${created.version_id}'`); + check('function version DELETE (204)', !r.err, r.err); + r = await runSql('SELECT name FROM nvidia.nvcf_functions.functions'); + check('function gone after DELETE', r.rows && !has(r.rows, 'name', 'it-echo'), r.err || JSON.stringify(r.rows)); + } + r = await runSql(`SELECT response FROM nvidia.nvcf_invocation.invocation_status WHERE request_id = '${REQUEST_ID}'`); + check('invocation_status SELECT wraps the raw response body into a response column', r.rows && r.rows.length === 1 && /"result"/.test(String(r.rows[0].response)), r.err || JSON.stringify(r.rows)); + + // --- 404 surfaced + r = await runSql("SELECT name FROM nvidia.private_registry.models WHERE model_name = 'does-not-exist'"); + check('404 surfaced as an error', r.err && /404/.test(r.err), r.err || JSON.stringify(r.rows)); +} finally { + server.close(); +} + +const failed = results.filter((x) => !x.pass); +console.log(`\n${results.length - failed.length}/${results.length} passed in ${((Date.now() - t0) / 1000).toFixed(1)}s`); +process.exit(failed.length ? 1 : 0); diff --git a/tests/offline_validation.mjs b/tests/offline_validation.mjs new file mode 100644 index 0000000..c140bbb --- /dev/null +++ b/tests/offline_validation.mjs @@ -0,0 +1,147 @@ +#!/usr/bin/env node + +// Quick offline validation of the generated provider against the local file +// registry - no network, no server. Runs SHOW SERVICES / SHOW RESOURCES / +// SHOW METHODS and DESCRIBE EXTENDED over representative resources and +// asserts expected counts and mappings, including the x-stackQL-envVar +// behaviour of the org_name server variable (NGC_ORG). Exit 1 on any +// failure. +// +// Usage: node tests/offline_validation.mjs +// Binary resolution: $STACKQL, ./stackql(.exe), then PATH. + +import { spawn } from 'child_process'; +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; + +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +const regPath = path.join(repoRoot, 'provider-dev', 'openapi').replace(/\\/g, '/'); +const registry = JSON.stringify({ url: `file://${regPath}`, localDocRoot: regPath, verifyConfig: { nopVerify: true } }); + +function findBinary() { + if (process.env.STACKQL && fs.existsSync(process.env.STACKQL)) return process.env.STACKQL; + for (const name of ['stackql', 'stackql.exe']) { + const local = path.join(repoRoot, name); + if (fs.existsSync(local)) return local; + } + return 'stackql'; // PATH +} +const bin = findBinary(); + +function runSql(sql, envOverrides = {}) { + return new Promise((resolve) => { + const env = { ...process.env, ...envOverrides }; + for (const [k, v] of Object.entries(envOverrides)) if (v === undefined) delete env[k]; + const child = spawn(bin, [`--registry=${registry}`, 'exec', sql, '--output', 'json'], { cwd: repoRoot, env }); + let stdout = '', stderr = ''; + child.stdout.on('data', (d) => (stdout += d)); + child.stderr.on('data', (d) => (stderr += d)); + child.on('close', (code) => { + let rows = []; + try { rows = JSON.parse(stdout) ?? []; } catch { rows = []; } + resolve({ code, rows, stdout, stderr }); + }); + child.on('error', (err) => resolve({ code: -1, rows: [], stdout: '', stderr: String(err) })); + }); +} + +const results = []; +function check(name, cond, note = '') { + results.push({ name, pass: !!cond, note }); + console.log(` ${cond ? 'PASS' : 'FAIL'} ${name}${cond ? '' : ` [${String(note).slice(0, 220)}]`}`); +} +const names = (rows) => rows.map((x) => x.name).sort(); +const cols = (rows) => rows.map((c) => c.name); + +const EXPECTED_SERVICES = ['catalog', 'nvcf_deployments', 'nvcf_functions', 'nvcf_invocation', 'nvcf_queues', 'orgs', 'private_registry']; +const EXPECTED_RESOURCES = { + catalog: ['artifact_deployment_params', 'artifact_files', 'artifact_specs', 'artifacts', 'collection_artifacts', 'collections', 'csp_deployment_params', 'csp_deployment_params_meta', 'csps', 'gpus', 'helm_chart_versions', 'model_files', 'model_versions', 'models', 'nim_metadata', 'recipe_files', 'recipe_versions', 'recipes', 'resource_files', 'resource_versions', 'resources'], + nvcf_deployments: ['cluster_groups', 'deployment_gpu_specs', 'deployments', 'recognized_registries', 'registry_credentials', 'telemetries', 'telemetry_secrets', 'vw_gpu_capacity'], + nvcf_functions: ['authorizations', 'function_ids', 'function_metadata', 'function_ratelimits', 'function_secrets', 'function_versions', 'functions'], + nvcf_invocation: ['assets', 'invocation_status', 'invocations', 'tokens'], + nvcf_queues: ['queue_positions', 'queues'], + orgs: ['current_user', 'orgs', 'proto_orgs', 'roles', 'team_invitations', 'team_member_roles', 'team_members', 'teams', 'user_invitations', 'user_roles', 'users'], + private_registry: ['artifact_catalog_flags', 'artifact_collections', 'artifact_deployment_params', 'artifact_deployments', 'artifact_files', 'artifact_product_shares', 'artifact_shares', 'artifact_signatures', 'artifact_specs', 'artifact_version_configs', 'artifact_versions', 'artifacts', 'collection_artifacts', 'collection_product_shares', 'collections', 'encryption_keys', 'helm_chart_versions', 'license_acceptances', 'model_encryption_keys', 'model_files', 'model_versions', 'models', 'recipe_files', 'recipe_versions', 'recipes', 'repository_associated_models', 'resource_files', 'resource_versions', 'resources', 'workflows'] +}; +const NO_ENV = { NGC_ORG: undefined }; +const WITH_ENV = { NGC_ORG: 'mock-org' }; + +console.log(`stackql: ${bin}`); +let r = await runSql('SHOW SERVICES IN nvidia'); +check('SHOW SERVICES (7)', r.rows.length === 7 && JSON.stringify(names(r.rows)) === JSON.stringify(EXPECTED_SERVICES), r.stderr || JSON.stringify(names(r.rows))); + +let resourceTotal = 0; +for (const [svc, expected] of Object.entries(EXPECTED_RESOURCES)) { + r = await runSql(`SHOW RESOURCES IN nvidia.${svc}`); + resourceTotal += r.rows.length; + check(`SHOW RESOURCES IN nvidia.${svc} (${expected.length})`, JSON.stringify(names(r.rows)) === JSON.stringify(expected), r.stderr || JSON.stringify(names(r.rows))); +} +check('83 resources in total (82 API resources + the vw_gpu_capacity view)', resourceTotal === 83, String(resourceTotal)); + +// org_name server variable: required only when NGC_ORG is unset +r = await runSql('SHOW METHODS IN nvidia.private_registry.models', NO_ENV); +let m = Object.fromEntries(r.rows.map((x) => [x.MethodName, x])); +check('private_registry.models methods (10: list/get/create/update/delete + _by_team twins; delete is SDK-evidenced)', r.rows.length === 10 && ['list', 'get', 'create', 'update', 'delete', 'list_by_team', 'get_by_team', 'create_by_team', 'update_by_team', 'delete_by_team'].every((k) => m[k]), JSON.stringify(Object.keys(m))); +check('models.delete is DELETE requiring model_name (+ org_name when NGC_ORG is unset)', m.delete?.SQLVerb === 'DELETE' && /model_name/.test(m.delete?.RequiredParams) && /org_name/.test(m.delete?.RequiredParams), JSON.stringify(m.delete)); +check('models.list requires org_name when NGC_ORG is unset; get requires model_name + org_name; list_by_team adds team_name', + m.list?.RequiredParams === 'org_name' && /model_name/.test(m.get?.RequiredParams) && /org_name/.test(m.get?.RequiredParams) && /team_name/.test(m.list_by_team?.RequiredParams) && /org_name/.test(m.list_by_team?.RequiredParams), JSON.stringify([m.list, m.get, m.list_by_team])); +check('models verbs (list/get SELECT, create INSERT, update UPDATE)', m.list?.SQLVerb === 'SELECT' && m.get?.SQLVerb === 'SELECT' && m.create?.SQLVerb === 'INSERT' && m.update?.SQLVerb === 'UPDATE', JSON.stringify(m)); +check('models.create requires the body fields framework, name, precision (naive body translate)', ['framework', 'name', 'precision'].every((p) => String(m.create?.RequiredParams || '').includes(p)), JSON.stringify(m.create)); +r = await runSql('SHOW METHODS IN nvidia.private_registry.models', WITH_ENV); +m = Object.fromEntries(r.rows.map((x) => [x.MethodName, x])); +check('models: org_name is optional when NGC_ORG is set (x-stackQL-envVar on the path-level server template)', !String(m.list?.RequiredParams || '').trim() && m.get?.RequiredParams === 'model_name' && m.list_by_team?.RequiredParams === 'team_name', JSON.stringify([m.list, m.get, m.list_by_team])); + +// orgs: root paths keep org_name as a path parameter; the current user needs nothing +r = await runSql('SHOW METHODS IN nvidia.orgs.orgs', WITH_ENV); +m = Object.fromEntries(r.rows.map((x) => [x.MethodName, x])); +check('orgs.orgs: list (no params), get (org_name, a root path), create INSERT, update UPDATE', !String(m.list?.RequiredParams || '').trim() && m.get?.RequiredParams === 'org_name' && m.create?.SQLVerb === 'INSERT' && m.update?.SQLVerb === 'UPDATE', JSON.stringify(r.rows)); +r = await runSql('SHOW METHODS IN nvidia.orgs.users', WITH_ENV); +m = Object.fromEntries(r.rows.map((x) => [x.MethodName, x])); +check('orgs.users: list/get/get_by_starfleet_id SELECT, create INSERT (email), delete DELETE (id)', m.list?.SQLVerb === 'SELECT' && m.get?.RequiredParams === 'user_email_or_id' && /email/.test(m.create?.RequiredParams) && m.delete?.RequiredParams === 'id', JSON.stringify(r.rows)); +r = await runSql('SHOW METHODS IN nvidia.orgs.team_members', WITH_ENV); +m = Object.fromEntries(r.rows.map((x) => [x.MethodName, x])); +check('orgs.team_members: list/get by team_name, add INSERT, remove DELETE (Private Registry team scoping, exempt from the 2026-09 schedule)', m.list?.RequiredParams === 'team_name' && m.add?.SQLVerb === 'INSERT' && m.remove?.SQLVerb === 'DELETE', JSON.stringify(r.rows)); + +// NVCF: no org scope (the personal key implies the org); two hosts by service +r = await runSql('SHOW METHODS IN nvidia.nvcf_functions.functions'); +m = Object.fromEntries(r.rows.map((x) => [x.MethodName, x])); +check('nvcf_functions.functions: list (no params) SELECT, create INSERT requiring inference_url + name', !String(m.list?.RequiredParams || '').trim() && /inference_url/.test(m.create?.RequiredParams) && /name/.test(m.create?.RequiredParams), JSON.stringify(r.rows)); +r = await runSql('SHOW METHODS IN nvidia.nvcf_functions.function_versions'); +m = Object.fromEntries(r.rows.map((x) => [x.MethodName, x])); +check('function_versions: list (function_id), get (function_id + function_version_id), create INSERT, update UPDATE, delete DELETE', m.list?.RequiredParams === 'function_id' && /function_version_id/.test(m.get?.RequiredParams) && m.create?.SQLVerb === 'INSERT' && m.update?.SQLVerb === 'UPDATE' && m.delete?.SQLVerb === 'DELETE', JSON.stringify(r.rows)); +r = await runSql('SHOW METHODS IN nvidia.nvcf_functions.authorizations'); +m = Object.fromEntries(r.rows.map((x) => [x.MethodName, x])); +check('authorizations (grants-as-data): list SELECT, add INSERT, remove DELETE, set REPLACE, delete_all EXEC', m.list?.SQLVerb === 'SELECT' && m.add?.SQLVerb === 'INSERT' && m.remove?.SQLVerb === 'DELETE' && m.set?.SQLVerb === 'REPLACE' && m.delete_all?.SQLVerb === 'EXEC', JSON.stringify(r.rows)); +r = await runSql('SHOW METHODS IN nvidia.nvcf_deployments.deployments'); +m = Object.fromEntries(r.rows.map((x) => [x.MethodName, x])); +check('deployments: get/get_by_id SELECT, create INSERT (deployment_specifications), update UPDATE, delete DELETE', m.get?.SQLVerb === 'SELECT' && m.get_by_id?.RequiredParams === 'deployment_id' && /deployment_specifications/.test(m.create?.RequiredParams) && m.update?.SQLVerb === 'UPDATE' && m.delete?.SQLVerb === 'DELETE', JSON.stringify(r.rows)); +r = await runSql('SHOW METHODS IN nvidia.nvcf_invocation.invocations'); +m = Object.fromEntries(r.rows.map((x) => [x.MethodName, x])); +check('invocations: invoke / invoke_version are EXEC taking function_id and body (opaque JSON body wrapper)', m.invoke?.SQLVerb === 'EXEC' && /function_id/.test(m.invoke?.RequiredParams) && /body/.test(m.invoke?.RequiredParams) && m.invoke_version?.SQLVerb === 'EXEC', JSON.stringify(r.rows)); + +// DESCRIBE EXTENDED on the representative resources (snake_case aliases of the camelCase wire) +r = await runSql('DESCRIBE EXTENDED nvidia.private_registry.models'); +check('DESCRIBE private_registry.models projects the Model entity (name, display_name, framework, latest_version_id_str, updated_date)', ['name', 'display_name', 'framework', 'latest_version_id_str', 'updated_date'].every((c) => cols(r.rows).includes(c)) && !cols(r.rows).includes('request_status'), r.stderr || JSON.stringify(cols(r.rows))); +r = await runSql('DESCRIBE EXTENDED nvidia.nvcf_functions.functions'); +check('DESCRIBE nvcf_functions.functions (id, name, status, version_id, container_image, inference_url)', ['id', 'name', 'status', 'version_id', 'container_image', 'inference_url'].every((c) => cols(r.rows).includes(c)), r.stderr || JSON.stringify(cols(r.rows))); +r = await runSql('DESCRIBE EXTENDED nvidia.nvcf_deployments.cluster_groups'); +check('DESCRIBE cluster_groups (id, name, gpus, clusters, nca_id - the GPU estate)', ['id', 'name', 'gpus', 'clusters', 'nca_id'].every((c) => cols(r.rows).includes(c)), r.stderr || JSON.stringify(cols(r.rows))); +r = await runSql('DESCRIBE EXTENDED nvidia.nvcf_deployments.vw_gpu_capacity'); +check('DESCRIBE vw_gpu_capacity (the view: cluster_group, gpu, instance_type, is_default, cluster)', ['cluster_group', 'cluster_group_id', 'gpu', 'instance_type', 'instance_description', 'is_default', 'cluster', 'nca_id'].every((c) => cols(r.rows).includes(c)), r.stderr || JSON.stringify(cols(r.rows))); +r = await runSql('SHOW METHODS IN nvidia.nvcf_deployments.vw_gpu_capacity'); +check('vw_gpu_capacity has no required parameters (an unparameterised view)', r.code === 0 && (r.rows || []).every((m) => !(m.RequiredParams || m.required_params)), r.stderr || JSON.stringify(r.rows)); +r = await runSql('DESCRIBE EXTENDED nvidia.catalog.gpus'); +check('DESCRIBE catalog.gpus projects the GPU catalog rows (display_name, pci_device_id, memory_size_gb)', ['display_name', 'pci_device_id', 'memory_size_gb'].every((c) => cols(r.rows).includes(c)) && !cols(r.rows).includes('column_anon'), r.stderr || JSON.stringify(cols(r.rows))); +r = await runSql('DESCRIBE EXTENDED nvidia.nvcf_functions.function_ids'); +check('DESCRIBE function_ids (scalar list re-shaped to a function_id column)', JSON.stringify(cols(r.rows)) === JSON.stringify(['function_id']), r.stderr || JSON.stringify(cols(r.rows))); +r = await runSql('DESCRIBE EXTENDED nvidia.orgs.users'); +check('DESCRIBE orgs.users (email, name, roles)', ['email', 'name', 'roles'].every((c) => cols(r.rows).includes(c)), r.stderr || JSON.stringify(cols(r.rows))); +r = await runSql('DESCRIBE EXTENDED nvidia.orgs.orgs'); +check('DESCRIBE orgs.orgs (name, display_name, id, type)', ['name', 'display_name', 'id', 'type'].every((c) => cols(r.rows).includes(c)), r.stderr || JSON.stringify(cols(r.rows))); +r = await runSql('DESCRIBE EXTENDED nvidia.nvcf_invocation.invocations'); +check('DESCRIBE invocations is not selectable (EXEC is the surface)', /not supported/i.test(r.stdout + r.stderr), r.stdout); + +const failed = results.filter((x) => !x.pass); +console.log(`\n${results.length - failed.length}/${results.length} passed`); +if (failed.length) process.exit(1); diff --git a/tests/smoke_test.py b/tests/smoke_test.py new file mode 100644 index 0000000..db47c38 --- /dev/null +++ b/tests/smoke_test.py @@ -0,0 +1,370 @@ +#!/usr/bin/env python3 +"""pystackql smoke test for the nvidia (NVIDIA NGC + NVCF) stackql provider. + +Exercises the salient resources against a real NGC organization, tiered by +what the credentials can reach: + + tier 1 public catalog reads (models, GPU catalog) - no org needed + tier 2 organization and private registry reads (orgs, current user, + users, teams, registry models, team-scoped twins when NGC_TEAM is + set) and a cheap, self-cleaning registry model INSERT / UPDATE / + DELETE lifecycle (metadata only - free) + tier 3 NVCF reads (functions, function ids, cluster groups and GPUs) + and a function INSERT / version get / authorization list / DELETE + lifecycle (creating an undeployed function is free). The suite + detects Cloud Functions enablement from the cluster-groups read and + skips tier 3 with a notice when the org is not enabled or the key + lacks the organization-level Cloud Functions scope. + gated --with-nvcf-deploy: deploy the smoke function on the smallest + instance type of the first cluster group, wait for it to become + ACTIVE, then delete the deployment. Billable GPU minutes (well + under $1); needs NVCF_SMOKE_CONTAINER_IMAGE (an image in the org's + private registry, e.g. nvcr.io/<org>/echo:latest). Always torn + down, even on failure. + +Everything created is named `stackql-smoke-<stamp>`; before running, the +script sweeps breadcrumbs with that prefix (registry models, NVCF +functions and their deployments) so each run starts from a clean slate. + +Credentials and target org come from the environment, exactly as the +provider itself reads them (the NVIDIA Terraform provider's variables): + + export NGC_API_KEY=nvapi-... # NGC Personal API Key (bearer) + export NGC_ORG=0123456789ab # the test org (x-stackQL-envVar) + export NGC_TEAM=ml-platform # optional: exercises the *_by_team methods + +Never run this against a production organization. + +Usage: + pip install pystackql + python tests/smoke_test.py # local provider-dev/openapi registry (default) + python tests/smoke_test.py --live # the published provider in the stackql registry + python tests/smoke_test.py --read-only # read smokes only, no writes + python tests/smoke_test.py --with-nvcf-deploy # also the gated NVCF deploy lifecycle + python tests/smoke_test.py --cleanup-only # just sweep breadcrumbs +""" + +from __future__ import annotations + +import argparse +import json +import os +import re +import sys +import time +from pathlib import Path + +BASE_DIR = Path(__file__).resolve().parents[1] +SMOKE_PREFIX = "stackql-smoke-" +INTER_REQUEST_DELAY_S = 0.5 +# x-stackQL-envVar server variable resolution landed in stackql v0.10.601; +# pystackql manages its own stackql binary, so the harness upgrades it when older. +MIN_STACKQL_VERSION = (0, 10, 601) + +ERROR_RE = re.compile( + r"http response status code: [45]|over HTTP error|error assembling|" + r"cannot find matching operation|FindRoute|no matching operation|" + r"cannot find any viable servers|parser error|panic|" + r"no request body for operation|schema unsuitable|Unauthorized|Forbidden|UNAUTHORIZED", + re.I, +) +RATE_LIMIT_RE = re.compile(r"status code: 429|Too Many Requests|rate limit", re.I) +NVCF_DISABLED_RE = re.compile(r"status code: 40[134]|not enabled|not authorized|UNAUTHORIZED|Forbidden", re.I) + + +class Smoke: + def __init__(self, args: argparse.Namespace) -> None: + self.args = args + self.stamp = str(int(time.time()))[-6:] + self.name = f"{SMOKE_PREFIX}{self.stamp}" + self.results: list[tuple[str, str, str]] = [] + self.requests = 0 + self.nvcf_enabled: bool | None = None + + for var in ("NGC_API_KEY", "NGC_ORG"): + if not os.environ.get(var): + sys.exit(f"{var} is not set - see the module docstring") + self.org = os.environ["NGC_ORG"] + self.team = os.environ.get("NGC_TEAM") or "" + + from pystackql import StackQL + + if not args.live: + reg_path = (BASE_DIR / "provider-dev" / "openapi").resolve() + reg_url = "file://" + reg_path.as_posix() + self.sq = StackQL(output="dict", custom_registry=reg_url) + # pystackql only serialises {"url": ...}; a local file registry + # additionally needs localDocRoot + nopVerify - patch the exec + # params in place (compact JSON, shell-quoted). + full = json.dumps( + {"url": reg_url, "localDocRoot": reg_path.as_posix(), "verifyConfig": {"nopVerify": True}}, + separators=(",", ":"), + ) + if sys.platform.startswith("win"): + quoted = '"' + full.replace('"', '\\"') + '"' + else: + import shlex + quoted = shlex.quote(full) + params = getattr(getattr(self.sq, "local_query_executor", None), "params", None) or self.sq.params + for i, p in enumerate(params): + if p == "--registry": + params[i + 1] = quoted + break + else: + self.sq = StackQL(output="dict") + self.sq.executeStmt("REGISTRY PULL nvidia") + self.ensure_stackql_version() + + def ensure_stackql_version(self) -> None: + def parse(v: str) -> tuple[int, ...]: + return tuple(int(x) for x in re.findall(r"\d+", str(v))[:3]) + + current = parse(getattr(self.sq, "version", "") or "") + if current and current >= MIN_STACKQL_VERSION: + return + print(f"stackql {self.sq.version} is older than v{'.'.join(map(str, MIN_STACKQL_VERSION))} - upgrading pystackql's binary") + self.sq.upgrade(showprogress=False) + if parse(self.sq.version) < MIN_STACKQL_VERSION: + sys.exit(f"stackql {self.sq.version} is still too old after upgrade") + + # ------------------------------------------------------------------ core + def q(self, sql: str): + if self.requests: + time.sleep(INTER_REQUEST_DELAY_S) + self.requests += 1 + try: + if sql.lstrip().upper().startswith(("SELECT", "SHOW", "DESCRIBE")) or "RETURNING" in sql.upper(): + out = self.sq.execute(sql) + # pystackql's execute() swallows an HTTP error on a SELECT into + # an empty result set (3.8.4); executeStmt() surfaces it as + # [{"error": ...}] - re-run an empty SELECT that way so a 403 + # can never pass as "no rows" + if not out: + probe = self.sq.executeStmt(sql) + if isinstance(probe, list) and probe and isinstance(probe[0], dict) and "error" in probe[0]: + out = probe + else: + out = self.sq.executeStmt(sql) + except Exception as exc: # noqa: BLE001 + return [], str(exc) + text = json.dumps(out, default=str) + if RATE_LIMIT_RE.search(text): + return out if isinstance(out, list) else [out], "RATE LIMITED (429) - harness pacing bug: " + text + if ERROR_RE.search(text): + return out if isinstance(out, list) else [out], text + if isinstance(out, list) and out and isinstance(out[0], dict) and "error" in out[0]: + return out, text + return out if isinstance(out, list) else [out], None + + def step(self, name: str, sql: str, expect_rows: bool = False, contains: str | None = None): + rows, err = self.q(sql) + if err: + self.results.append((name, "FAIL", err[:200])) + print(f" FAIL {name} [{err[:140]}]") + return None + blob = json.dumps(rows, default=str) + if expect_rows and not rows: + self.results.append((name, "FAIL", "expected rows, got none")) + print(f" FAIL {name} [no rows]") + return None + if contains and contains not in blob: + self.results.append((name, "FAIL", f"'{contains}' not in result")) + print(f" FAIL {name} ['{contains}' not in {blob[:100]}]") + return None + self.results.append((name, "PASS", "")) + print(f" PASS {name}") + return rows + + def note(self, name: str, ok: bool, detail: str = "") -> None: + self.results.append((name, "PASS" if ok else "FAIL", detail)) + print(f" {'PASS' if ok else 'FAIL'} {name}{(' [' + detail[:120] + ']') if detail and not ok else ''}") + + def skip(self, name: str, why: str) -> None: + self.results.append((name, "SKIP", why)) + print(f" SKIP {name} [{why[:120]}]") + + def wait_for(self, name: str, sql: str, pred, timeout: int = 600, interval: int = 15): + start = time.time() + last = None + while time.time() - start < timeout: + rows, err = self.q(sql) + last = err or json.dumps(rows, default=str)[:160] + if not err and pred(rows): + self.results.append((name, "PASS", f"{int(time.time() - start)}s")) + print(f" PASS {name} ({int(time.time() - start)}s)") + return True + time.sleep(interval) + self.results.append((name, "FAIL", f"timeout: {last}")) + print(f" FAIL {name} [timeout: {last}]") + return False + + # ------------------------------------------------------- breadcrumb sweep + def cleanup_breadcrumbs(self) -> None: + print("== breadcrumb sweep ==") + rows, err = self.q("SELECT name FROM nvidia.private_registry.models") + if err: + print(f" WARN registry sweep list failed: {err[:120]}") + else: + for r in rows: + if str(r.get("name", "")).startswith(SMOKE_PREFIX): + print(f" sweeping registry model {r['name']}") + self.q(f"DELETE FROM nvidia.private_registry.models WHERE model_name = '{r['name']}'") + rows, err = self.q("SELECT id, version_id, name, status FROM nvidia.nvcf_functions.functions") + if err: + print(f" WARN nvcf sweep list failed (NVCF may not be enabled): {err[:120]}") + return + for r in rows: + if str(r.get("name", "")).startswith(SMOKE_PREFIX): + print(f" sweeping nvcf function {r['name']} ({r['id']}/{r['version_id']}, {r.get('status')})") + if str(r.get("status")) not in ("INACTIVE", ""): + self.q(f"DELETE FROM nvidia.nvcf_deployments.deployments WHERE function_id = '{r['id']}' AND function_version_id = '{r['version_id']}'") + self.q(f"DELETE FROM nvidia.nvcf_functions.function_versions WHERE function_id = '{r['id']}' AND function_version_id = '{r['version_id']}'") + + # -------------------------------------------------------------- read path + def read_smokes(self) -> None: + print("== tier 1: public catalog ==") + self.step("show services", "SHOW SERVICES IN nvidia", expect_rows=True, contains="nvcf_functions") + models = self.step("catalog models (public, paginated, LIMIT pushdown)", "SELECT name, org_name, team_name, display_name FROM nvidia.catalog.models LIMIT 10", expect_rows=True) + if models: + # a model published under a team (nvidia/nemo/...) is addressed + # by the *_by_team twin; team_name routes the statement there + first = models[0] + scope = f"org_name = '{first['org_name']}'" + (f" AND team_name = '{first['team_name']}'" if first.get("team_name") else "") + twin = " (get_by_team twin)" if first.get("team_name") else "" + self.step(f"catalog model get ($.model, by org_name + model_name{twin})", f"SELECT name, display_name, latest_version_id_str FROM nvidia.catalog.models WHERE {scope} AND model_name = '{first['name']}'", expect_rows=True, contains=str(first["name"])) + self.step(f"catalog model versions ($.modelVersions{twin})", f"SELECT version_id, status FROM nvidia.catalog.model_versions WHERE {scope} AND model_name = '{first['name']}'") + self.step("catalog GPU catalog (bare array)", "SELECT display_name, pci_device_id, memory_size_gb FROM nvidia.catalog.gpus", expect_rows=True) + self.step("catalog collections", "SELECT name, org_name, display_name FROM nvidia.catalog.collections LIMIT 5") + + print(f"== tier 2: organization {self.org} ==") + self.step("current user ($.user)", "SELECT email, name FROM nvidia.orgs.current_user", expect_rows=True) + self.step("orgs the key can see", "SELECT name, display_name, type FROM nvidia.orgs.orgs", expect_rows=True, contains=self.org) + self.step("org get (root path, WHERE org_name)", f"SELECT name, display_name FROM nvidia.orgs.orgs WHERE org_name = '{self.org}'", expect_rows=True) + self.step("org users (NGC_ORG resolved, paginated)", "SELECT email, name, is_active FROM nvidia.orgs.users", expect_rows=True) + self.step("org teams", "SELECT name, description FROM nvidia.orgs.teams") + self.step("registry models (NGC_ORG resolved)", "SELECT name, framework, latest_version_id_str, updated_date FROM nvidia.private_registry.models") + self.step("registry artifacts (helm-charts, generic resource)", "SELECT name, display_name, updated_date FROM nvidia.private_registry.artifacts WHERE artifact_type = 'helm-charts'") + self.step("registry collections", "SELECT name, display_name FROM nvidia.private_registry.collections") + if self.team: + self.step("registry models by team (*_by_team twin)", f"SELECT name FROM nvidia.private_registry.models WHERE team_name = '{self.team}'") + self.step("team members", f"SELECT email, name FROM nvidia.orgs.team_members WHERE team_name = '{self.team}'") + else: + self.skip("registry models by team", "NGC_TEAM not set") + + print("== tier 3: NVCF ==") + rows, err = self.q("SELECT id, name FROM nvidia.nvcf_deployments.cluster_groups") + if err and NVCF_DISABLED_RE.search(err): + self.nvcf_enabled = False + self.skip("cluster groups / GPU inventory", "Cloud Functions not enabled for this org or key lacks the org-level Cloud Functions scope: " + err[:80]) + return + if err: + self.nvcf_enabled = False + self.note("cluster groups / GPU inventory", False, err) + return + self.nvcf_enabled = True + self.note("cluster groups / GPU inventory (the GPU estate)", True) + self.step("GPU types per cluster group (json_each over gpus)", "SELECT cg.name AS cluster_group, json_extract(g.value, '$.name') AS gpu FROM nvidia.nvcf_deployments.cluster_groups cg, json_each(cg.gpus) g") + self.step("nvcf functions (fleet state)", "SELECT id, name, status, version_id FROM nvidia.nvcf_functions.functions") + self.step("nvcf authorizations across the fleet (list_all, the sharing audit)", "SELECT id, version_id, nca_id FROM nvidia.nvcf_functions.authorizations") + self.step("nvcf function ids (scalar list transform)", "SELECT function_id FROM nvidia.nvcf_functions.function_ids") + self.step("nvcf telemetries", "SELECT telemetry_id, name, provider FROM nvidia.nvcf_deployments.telemetries") + self.step("nvcf registry credentials", "SELECT name, registry_credential_id FROM nvidia.nvcf_deployments.registry_credentials") + + # ------------------------------------------------------------- write path + def registry_model_lifecycle(self) -> None: + name = self.name + print(f"== registry model lifecycle ({name}) - metadata only, free ==") + self.step("model INSERT", f"INSERT INTO nvidia.private_registry.models (name, display_name, framework, precision, application, short_description) SELECT '{name}', 'StackQL smoke', 'PyTorch', 'FP16', 'Other', 'created by the stackql smoke suite'") + rows, err = self.q(f"SELECT name, display_name FROM nvidia.private_registry.models WHERE model_name = '{name}'") + self.note("model visible after INSERT", not err and bool(rows) and rows[0].get("name") == name, err or "not found") + self.step("model UPDATE (display_name)", f"UPDATE nvidia.private_registry.models SET display_name = 'StackQL smoke v2' WHERE model_name = '{name}'") + self.step("model reflects UPDATE", f"SELECT display_name FROM nvidia.private_registry.models WHERE model_name = '{name}'", expect_rows=True, contains="v2") + self.step("model versions (empty for a new model)", f"SELECT id, status FROM nvidia.private_registry.model_versions WHERE model_name = '{name}'") + self.step("model DELETE", f"DELETE FROM nvidia.private_registry.models WHERE model_name = '{name}'") + rows, err = self.q("SELECT name FROM nvidia.private_registry.models") + self.note("model gone after DELETE", not err and all(r.get("name") != name for r in rows), err or "") + + def nvcf_function_lifecycle(self) -> None: + name = self.name + image = os.environ.get("NVCF_SMOKE_CONTAINER_IMAGE") or "nvcr.io/nvidia/nvcf/echo:latest" + print(f"== nvcf function lifecycle ({name}) - undeployed function, free ==") + self.step("function INSERT (function + first version)", f"INSERT INTO nvidia.nvcf_functions.functions (name, inference_url, container_image, api_body_format) SELECT '{name}', '/echo', '{image}', 'CUSTOM'") + rows, err = self.q(f"SELECT id, version_id, status FROM nvidia.nvcf_functions.functions WHERE name = '{name}'") + fn = next((r for r in rows or [] if r), None) + self.note("function visible in the fleet list", bool(fn), err or "not found") + if not fn: + return + fid, vid = fn["id"], fn["version_id"] + try: + self.step("function version get ($.function)", f"SELECT name, status, inference_url, container_image FROM nvidia.nvcf_functions.function_versions WHERE function_id = '{fid}' AND function_version_id = '{vid}'", expect_rows=True, contains=name) + self.step("authorizations list (grants-as-data)", f"SELECT id, version_id, authorized_parties FROM nvidia.nvcf_functions.authorizations WHERE function_id = '{fid}'") + self.step("queue details on api.nvcf.nvidia.com", f"SELECT function_version_id, function_status, queue_depth FROM nvidia.nvcf_queues.queues WHERE function_id = '{fid}'") + if self.args.with_nvcf_deploy: + self.nvcf_deploy_lifecycle(fid, vid) + finally: + self.step("function version DELETE", f"DELETE FROM nvidia.nvcf_functions.function_versions WHERE function_id = '{fid}' AND function_version_id = '{vid}'") + rows, err = self.q("SELECT name FROM nvidia.nvcf_functions.functions") + self.note("function gone after DELETE", not err and all(r.get("name") != name for r in rows), err or "") + + def nvcf_deploy_lifecycle(self, fid: str, vid: str) -> None: + print("== gated: NVCF deploy lifecycle (smallest instance type, billable minutes) ==") + if not os.environ.get("NVCF_SMOKE_CONTAINER_IMAGE"): + self.skip("deployment INSERT", "NVCF_SMOKE_CONTAINER_IMAGE not set (an image in the org's private registry is required to deploy)") + return + rows, err = self.q("SELECT name, gpus FROM nvidia.nvcf_deployments.cluster_groups") + if err or not rows: + self.note("cluster group for the deployment", False, err or "no cluster groups") + return + cg = rows[0] + gpus = cg["gpus"] if isinstance(cg["gpus"], list) else json.loads(cg["gpus"] or "[]") + if not gpus or not gpus[0].get("instanceTypes"): + self.note("cluster group has an instance type", False, json.dumps(cg, default=str)[:120]) + return + gpu = gpus[0]["name"] + itype = gpus[0]["instanceTypes"][0]["name"] + spec = json.dumps([{"gpu": gpu, "backend": cg["name"], "instanceType": itype, "minInstances": 1, "maxInstances": 1}]) + try: + self.step(f"deployment INSERT ({cg['name']} / {gpu} / {itype})", f"INSERT INTO nvidia.nvcf_deployments.deployments (function_id, function_version_id, deployment_specifications) SELECT '{fid}', '{vid}', '{spec}'") + self.wait_for("function ACTIVE", f"SELECT function_status FROM nvidia.nvcf_deployments.deployments WHERE function_id = '{fid}' AND function_version_id = '{vid}'", lambda rows: rows and rows[0].get("function_status") == "ACTIVE", timeout=900, interval=20) + finally: + self.step("deployment DELETE (always)", f"DELETE FROM nvidia.nvcf_deployments.deployments WHERE function_id = '{fid}' AND function_version_id = '{vid}'") + self.wait_for("function INACTIVE after undeploy", f"SELECT status FROM nvidia.nvcf_functions.function_versions WHERE function_id = '{fid}' AND function_version_id = '{vid}'", lambda rows: rows and rows[0].get("status") in ("INACTIVE", "ERROR"), timeout=300, interval=15) + + # ---------------------------------------------------------------- summary + def summary(self) -> int: + print("\n== summary ==") + counts = {"PASS": 0, "FAIL": 0, "SKIP": 0} + for name, status, note in self.results: + counts[status] = counts.get(status, 0) + 1 + if status != "PASS": + print(f" {status:5s} {name} [{note[:110]}]") + print(f" {counts['PASS']} passed, {counts['FAIL']} failed, {counts['SKIP']} skipped; {self.requests} statements " + f"(registry: {'public' if self.args.live else 'local'}, org: {self.org}, nvcf: {self.nvcf_enabled})") + return 1 if counts["FAIL"] else 0 + + +def main() -> int: + ap = argparse.ArgumentParser(description="nvidia provider smoke test") + ap.add_argument("--live", action="store_true", help="run against the published provider in the stackql registry (default: the local provider-dev/openapi file registry)") + ap.add_argument("--cleanup-only", action="store_true", help="sweep stackql-smoke-* breadcrumbs and exit") + ap.add_argument("--read-only", action="store_true", help="read smokes only") + ap.add_argument("--with-nvcf-deploy", action="store_true", help="also run the gated NVCF deploy lifecycle (billable GPU minutes; needs NVCF_SMOKE_CONTAINER_IMAGE)") + args = ap.parse_args() + + smoke = Smoke(args) + print(f"nvidia smoke test registry={'public' if args.live else 'local'} org={smoke.org} team={smoke.team or '-'} name={smoke.name} stackql={smoke.sq.version}") + smoke.cleanup_breadcrumbs() + if args.cleanup_only: + return 0 + smoke.read_smokes() + if not args.read_only: + smoke.registry_model_lifecycle() + if smoke.nvcf_enabled: + smoke.nvcf_function_lifecycle() + else: + smoke.skip("nvcf function lifecycle", "Cloud Functions not enabled for this org / key") + return smoke.summary() + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/views/README.md b/views/README.md new file mode 100644 index 0000000..974a50c --- /dev/null +++ b/views/README.md @@ -0,0 +1,11 @@ +# Provider views + +Views are virtual, SELECT-only resources spliced into the generated provider at generate time from `views/<service>/views.yaml` (provider-utils reads `./views` automatically when the directory exists). They are documented like any other resource and tested in the offline layer with `DESCRIBE` / `SELECT * FROM nvidia.<service>.<view>`. + +Good candidates: json_extract-heavy posture queries, multi-resource UNIONs, the provider's estate inventory. API-derived resources win on a name collision, so views are prefixed `vw_`. + +A file is a top-level YAML mapping of view name -> resource body: `docs.fields` is what the doc page renders; `views.select.ddl` is what the engine runs, with the `sqlite3` form first and a `postgres` `fallback` for server mode. The engine learns a view's required parameters only from a `requiredParams == [...]` clause in the predicate; `docs.requiredParams` is docs-only. + +Shipped here: + +- `nvcf_deployments/views.yaml` - `vw_gpu_capacity`: one row per cluster group x GPU type x instance type, flattened from `cluster_groups` (the GPU estate the organization can deploy NVCF functions to). diff --git a/views/nvcf_deployments/views.yaml b/views/nvcf_deployments/views.yaml new file mode 100644 index 0000000..1d94d8d --- /dev/null +++ b/views/nvcf_deployments/views.yaml @@ -0,0 +1,51 @@ +# Views spliced into the generated nvcf_deployments service at generate time +# (provider-utils reads ./views/<service>/views.yaml). See ../README.md. + +vw_gpu_capacity: + name: vw_gpu_capacity + id: nvidia.nvcf_deployments.vw_gpu_capacity + title: GPU Capacity + config: + docs: + description: >- + The GPU estate the organization can deploy NVIDIA Cloud Functions to, + one row per cluster group x GPU type x instance type, flattened from + the cluster_groups resource (clusterGroups[].gpus[].instanceTypes[]). + fields: + - {name: cluster_group, type: string, description: Cluster group name (the backend named in a deployment specification).} + - {name: cluster_group_id, type: string, description: Cluster group id.} + - {name: gpu, type: string, description: GPU type available in the cluster group (for example L40, H100).} + - {name: instance_type, type: string, description: Instance type name for the GPU (the instanceType of a deployment specification).} + - {name: instance_description, type: string, description: Vendor description of the instance type.} + - {name: is_default, type: boolean, description: Whether the instance type is the default for the GPU.} + - {name: cluster, type: string, description: Name of the first cluster in the group.} + - {name: nca_id, type: string, description: NVIDIA Cloud Account that owns the cluster group.} + views: + select: + predicate: sqlDialect == "sqlite3" + ddl: |- + SELECT cg.name AS cluster_group, + cg.id AS cluster_group_id, + json_extract(g.value, '$.name') AS gpu, + json_extract(it.value, '$.name') AS instance_type, + json_extract(it.value, '$.description') AS instance_description, + json_extract(it.value, '$.default') AS is_default, + json_extract(cg.clusters, '$[0].name') AS cluster, + cg.nca_id + FROM nvidia.nvcf_deployments.cluster_groups cg, + json_each(cg.gpus) g, + json_each(json_extract(g.value, '$.instanceTypes')) it + fallback: + predicate: sqlDialect == "postgres" + ddl: |- + SELECT cg.name AS cluster_group, + cg.id AS cluster_group_id, + g.value->>'name' AS gpu, + it.value->>'name' AS instance_type, + it.value->>'description' AS instance_description, + (it.value->>'default')::boolean AS is_default, + cg.clusters::jsonb->0->>'name' AS cluster, + cg.nca_id + FROM nvidia.nvcf_deployments.cluster_groups cg, + jsonb_array_elements(cg.gpus::jsonb) AS g(value), + jsonb_array_elements(g.value->'instanceTypes') AS it(value) diff --git a/website/.gitignore b/website/.gitignore new file mode 100644 index 0000000..f681084 --- /dev/null +++ b/website/.gitignore @@ -0,0 +1,23 @@ +# Dependencies +/node_modules + +# Production +/build + +# Generated files +.docusaurus +.cache-loader + +# The shared stackql/docusaurus-config, vendored at build time +.shared-config + +# Misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/website/docs/index.md b/website/docs/index.md new file mode 100644 index 0000000..06f400e --- /dev/null +++ b/website/docs/index.md @@ -0,0 +1,330 @@ +--- +title: nvidia +hide_title: false +hide_table_of_contents: false +keywords: + - nvidia + - ngc + - nvcf + - nvidia cloud functions + - ngc private registry + - gpu inventory + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, provision and manage the NVIDIA NGC control plane using SQL - NVIDIA Cloud Functions (functions, versions, deployments, cluster groups and GPUs, sharing grants), the NGC private registry and public catalog (models, resources, helm charts, collections), and NGC organizations, teams and users +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +id: 'provider-intro' +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; + +Query, provision and operate the NVIDIA NGC control plane using SQL - NVIDIA Cloud Functions (NVCF: functions and versions, deployments and GPU specifications, cluster groups and GPU inventory, request queues, function sharing grants, HTTP-polling invocation), the NGC private registry (models, resources, recipes, helm charts and other artifacts as metadata, collections, shares, encryption keys), the public NGC catalog (artifact metadata, the GPU and cloud service provider catalogs - readable without an account) and NGC organizations, teams, users, roles and invitations. GPU capacity by cluster group, NVCF function fleet state by deployment specification, function sharing audits and registry estate reports are the queries this provider exists for. + + +:::info[Provider Summary] + +total services: __7__ +total resources: __83__ +source project: __[stackql-provider-nvidia](https://github.com/stackql-registry/stackql-provider-nvidia)__ + +::: + +See also: +[[` SHOW `]](https://stackql.io/docs/language-spec/show) [[` DESCRIBE `]](https://stackql.io/docs/language-spec/describe) [[` REGISTRY `]](https://stackql.io/docs/language-spec/registry) +* * * + +## Installation + +To pull the latest version of the `nvidia` provider, run the following command: + +```bash +REGISTRY PULL nvidia; +``` +> To view previous provider versions or to pull a specific provider version, see [here](https://stackql.io/docs/language-spec/registry). + +## Scope + +This provider covers the NGC control plane served from `https://api.ngc.nvidia.com` and, for queue details and invocation, `https://api.nvcf.nvidia.com`: NVIDIA Cloud Functions management (`nvcf_functions`, `nvcf_deployments`, `nvcf_queues`, `nvcf_invocation`), the NGC private registry (`private_registry`), the public catalog (`catalog`) and organization administration (`orgs`). Registry artifacts are surfaced as metadata; binary push and pull of artifact files is the registry data plane and is not mapped. Streaming and gRPC function invocation are not mapped; the HTTP-polling form is. Container images are served by the separate container registry API, whose definition NVIDIA does not publish, and are not in this provider. NVIDIA's official Terraform provider (`NVIDIA/terraform-provider-ngc`) covers NVCF functions and telemetry endpoints; the surface here is generated mechanically from the published NVCF OpenAPI document and the NGC API definitions behind the NGC API explorer (335 operations across 7 services and 82 resources, plus the `vw_gpu_capacity` view), with response schemas for the registry taken from the `ngcsdk` Python SDK's data classes. + +## Authentication + +The provider authenticates with an NGC Personal API Key as a bearer token. Generate one in the NGC console under Setup -> Generate Personal API Key, granting the service scopes you need (Private Registry for the registry service; Cloud Functions for the `nvcf_*` services - at the organization level, since a key with a team-level Cloud Functions role does not work with NVCF), export it as <CopyableCode code="NGC_API_KEY" /> (the same variable the NVIDIA Terraform provider and the NGC CLI read), and StackQL picks it up with no further configuration: + +```bash +export NGC_API_KEY='nvapi-...' +export NGC_ORG='0123456789ab' # optional, see organization scope +``` + +or using PowerShell: + +```powershell +$env:NGC_API_KEY = 'nvapi-...' +$env:NGC_ORG = '0123456789ab' +``` + +The public catalog (`nvidia.catalog`) serves public artifact metadata and the GPU catalog without any credential; the variable still has to be set for the provider to run, but any value works for those reads. A key that NGC rejects answers `403 Access Denied` on organization and registry reads and `403 Authorization failed` on NVCF reads; the NGC CLI's `ngc config set` validates a key against the same service NVIDIA uses for both. + +<details> + +<summary>Using different environment variables</summary> + +To use different environment variables (instead of the defaults), use the `--auth` flag of the `stackql` program. For example: + +```bash +AUTH='{ "nvidia": { "type": "bearer", "credentialsenvvar": "MY_OTHER_VAR" }}' +stackql shell --auth="${AUTH}" +``` + +or using PowerShell: + +```powershell +$Auth = "{ 'nvidia': { 'type': 'bearer', 'credentialsenvvar': 'MY_OTHER_VAR' }}" +stackql.exe shell --auth=$Auth +``` +</details> + +## Organization scope + +Registry and organization resources are scoped to an NGC organization, addressed by its name (`org_name` - the org id shown under Organization -> Setup, for example `0123456789ab`). `org_name` is a server variable resolved from the <CopyableCode code="NGC_ORG" /> environment variable when it is set, so queries against one organization need no `WHERE org_name` clause: + +```sql +SELECT name, display_name, framework, latest_version_id_str, updated_date +FROM nvidia.private_registry.models; +``` + +A `WHERE org_name = '...'` value always takes precedence over the environment, which is how a single session addresses several organizations. With the variable unset, `org_name` is a required parameter on every org-scoped method (visible in `SHOW METHODS`) and must be supplied per query. To discover the organizations the key can see: + +```sql +SELECT name, display_name, type FROM nvidia.orgs.orgs; +``` + +Team-scoped registry paths are exposed as `*_by_team` methods on the same resources - add `team_name` to the `WHERE` clause and the team-scoped operation is selected: + +```sql +SELECT name, updated_date +FROM nvidia.private_registry.models +WHERE team_name = 'ml-platform'; +``` + +A `JOIN` cannot fan out across organizations on `org_name` (the rows do not echo the server variable); to report across several organizations compose one statement per organization with `UNION ALL`. NVCF resources carry no organization in their paths: the key determines the organization. + +## Pagination and casing + +NGC core collections (organizations, users, teams, registry artifacts and versions) page with `page-number` and `page-size`; StackQL follows `paginationInfo.index` / `totalPages` transparently, so a `SELECT` returns every row, and `SELECT ... LIMIT n` is pushed to the wire as `page-size`. Columns are snake_case aliases of the camelCase wire properties (`displayName` -> `display_name`); query parameters are addressed in snake_case too (`resolve_labels`, `page_size`) and translated to the kebab-case wire names. `UPDATE` marshals every `SET` value as a string; `INSERT` and `EXEC` send typed JSON, and `EXEC` cannot carry a boolean. + +## Rate limit + +NVIDIA publishes no request limit for the NGC and NVCF control-plane APIs. A `429` is surfaced as an error on the statement that received it; wide statements that fan out (a `JOIN` from a list to a per-row `get`, or `UNION ALL` across organizations) issue one request per row and are the ones to pace. + +## Deprecations + +NVIDIA's NGC deprecated API reference ends team-scoped (`/teams/{team}`) paths for NVCF and sibling services on 2026-09-30; those path families are excluded from the provider. Private Registry team scoping is exempt from that schedule and stays mapped (the `*_by_team` methods). Operations NVIDIA marks deprecated inline keep their marker in the method description; those with a published replacement are not mapped. Refreshes of the provider are reviewed spec diffs against content-hash pins. + +## Example Queries + +Try the following queries using `stackql shell`, or run them from a script or CI pipeline with `stackql exec`. + +### GPU capacity by cluster group + +What GPU capacity exists, and where - one row per cluster group, GPU type and instance type the organization can deploy to, through the `vw_gpu_capacity` view: + +```sql +SELECT cluster_group, gpu, instance_type, is_default, cluster +FROM nvidia.nvcf_deployments.vw_gpu_capacity +ORDER BY cluster_group, gpu, instance_type; +``` + +The same estate straight from the `cluster_groups` resource, with `json_each` over the `gpus` column: + +```sql +SELECT cg.name AS cluster_group, + json_extract(g.value, '$.name') AS gpu, + json_extract(g.value, '$.instanceTypes[0].name') AS instance_type, + json_extract(cg.clusters, '$[0].name') AS cluster +FROM nvidia.nvcf_deployments.cluster_groups cg, + json_each(cg.gpus) g +ORDER BY cluster_group, gpu; +``` + +### NVCF function fleet state + +Every function version with its status, the container or helm chart it runs and its GPU deployment specification: + +```sql +SELECT f.name, f.status, f.version_id, + f.container_image, f.helm_chart, + json_extract(d.deployment_specifications, '$[0].gpu') AS gpu, + json_extract(d.deployment_specifications, '$[0].instanceType') AS instance_type, + json_extract(d.deployment_specifications, '$[0].minInstances') AS min_instances, + json_extract(d.deployment_specifications, '$[0].maxInstances') AS max_instances +FROM nvidia.nvcf_functions.functions f +LEFT JOIN nvidia.nvcf_deployments.deployments d + ON d.function_id = f.id AND d.function_version_id = f.version_id +WHERE f.status = 'ACTIVE'; +``` + +### Standing GPU spend + +A deployed function's minimum instance count is the GPU capacity it holds whether or not it is invoked: + +```sql +SELECT function_name, function_status, + json_extract(deployment_specifications, '$[0].gpu') AS gpu, + json_extract(deployment_specifications, '$[0].minInstances') AS min_instances +FROM nvidia.nvcf_deployments.deployments +WHERE function_id = 'fe97aa46-c8ea-4237-ba56-1212036f4d0f' + AND function_version_id = '868d2192-6819-4b53-89f5-3c7fb1df2a72'; +``` + +### Function sharing audit + +Which NVIDIA Cloud Accounts may invoke which function - the authorization grants as data, one row per function across the fleet, or for one function by id: + +```sql +SELECT id AS function_id, version_id, nca_id AS owner, + json_extract(authorized_parties, '$[*].ncaId') AS authorized_accounts +FROM nvidia.nvcf_functions.authorizations; + +SELECT id AS function_id, version_id, nca_id AS owner, + json_extract(authorized_parties, '$[*].ncaId') AS authorized_accounts +FROM nvidia.nvcf_functions.authorizations +WHERE function_id = 'fe97aa46-c8ea-4237-ba56-1212036f4d0f'; +``` + +### Registry estate report + +Models in the private registry by framework, with size and update recency (with `NGC_ORG` set): + +```sql +SELECT name, framework, precision, + latest_version_id_str AS latest_version, + latest_version_size_in_bytes / 1048576 AS latest_version_mb, + updated_date +FROM nvidia.private_registry.models +ORDER BY updated_date DESC; +``` + +### Generic registry artifacts + +Helm charts, endpoints, blueprints, agents, playbooks, APIs and skills through the generic artifacts resource (`artifact_type` takes the plural path segment: `helm-charts`, `endpoints`, `agents`, `blueprints`, `apis`, `playbooks`, `skills`; models, resources and recipes have their own resources): + +```sql +SELECT name, display_name, latest_version_id_str, updated_date +FROM nvidia.private_registry.artifacts +WHERE artifact_type = 'helm-charts'; +``` + +### Public catalog, no account needed + +Public model metadata and the GPU catalog, readable with any value in `NGC_API_KEY`: + +```sql +SELECT name, org_name, display_name, framework +FROM nvidia.catalog.models +LIMIT 20; + +SELECT display_name, pci_device_id, memory_size_gb, form_factor +FROM nvidia.catalog.gpus; +``` + +### Organization membership + +Users in the organization with their roles: + +```sql +SELECT email, name, is_active, last_login_date, + json_extract(roles, '$[0].orgRoles') AS org_roles +FROM nvidia.orgs.users; +``` + +### Provisioning a function + +Mutations use the same SQL grammar - `INSERT` creates, `UPDATE` patches, `DELETE` removes, and lifecycle actions are `EXEC` methods; body columns are the snake_case spellings of the wire properties. A function with a first version, its deployment on the smallest instance, a sharing grant and the teardown: + +```sql +-- create the function (and its first version) +INSERT INTO nvidia.nvcf_functions.functions (name, inference_url, container_image, api_body_format) +SELECT 'echo-demo', '/echo', 'nvcr.io/0123456789ab/echo:latest', 'CUSTOM'; + +-- deploy the version (the specification is a JSON array of {gpu, backend, instanceType, minInstances, maxInstances}) +INSERT INTO nvidia.nvcf_deployments.deployments (function_id, function_version_id, deployment_specifications) +SELECT 'fe97aa46-...', '868d2192-...', + '[{"gpu": "L40", "backend": "GFN", "instanceType": "GCP.GPU.L40_1x", "minInstances": 1, "maxInstances": 1}]'; + +-- share it with another NVIDIA Cloud Account +INSERT INTO nvidia.nvcf_functions.authorizations (function_id, authorized_party) +SELECT 'fe97aa46-...', '{"ncaId": "nca-partner-id"}'; + +-- undeploy, then delete the version +DELETE FROM nvidia.nvcf_deployments.deployments +WHERE function_id = 'fe97aa46-...' AND function_version_id = '868d2192-...'; + +DELETE FROM nvidia.nvcf_functions.function_versions +WHERE function_id = 'fe97aa46-...' AND function_version_id = '868d2192-...'; +``` + +### Invoking a function + +The HTTP-polling invocation form is an `EXEC` whose opaque JSON body is the function's own request, and the result is read back by request id: + +```sql +EXEC nvidia.nvcf_invocation.invocations.invoke + @function_id = 'fe97aa46-...', + @body = '{"prompt": "hello"}'; + +SELECT response +FROM nvidia.nvcf_invocation.invocation_status +WHERE request_id = '<NVCF-REQID from the invoke>'; +``` + +### Provisioning registry metadata + +A private registry model is created, patched and removed with the same verbs (`UPDATE` sends every `SET` value as a string): + +```sql +INSERT INTO nvidia.private_registry.models (name, display_name, framework, precision, application, short_description) +SELECT 'resnet50-finetuned', 'ResNet-50 fine-tuned', 'PyTorch', 'FP16', 'Classification', 'fine-tuned on internal data'; + +UPDATE nvidia.private_registry.models +SET display_name = 'ResNet-50 fine-tuned v2' +WHERE model_name = 'resnet50-finetuned'; + +DELETE FROM nvidia.private_registry.models +WHERE model_name = 'resnet50-finetuned'; +``` + +### The whole GPU estate in one statement + +NVCF cluster-group GPU types alongside the hyperscaler GPU instance inventory, using the `aws` and `google` providers: + +```sql +SELECT 'nvcf' AS platform, cluster_group AS location, gpu +FROM nvidia.nvcf_deployments.vw_gpu_capacity +UNION ALL +SELECT 'aws', region, json_extract(gpu_info, '$.Gpus[0].Name') +FROM aws.ec2.instance_types +WHERE region = 'us-east-1' AND gpu_info IS NOT NULL +UNION ALL +SELECT 'google', json_extract(zone, '$'), json_extract(accelerators, '$[0].guestAcceleratorType') +FROM google.compute.machine_types +WHERE project = 'my-project' AND zone = 'us-central1-a' AND accelerators IS NOT NULL; +``` + + +## Services +<div class="row"> +<div class="providerDocColumn"> +<a href="/services/catalog/">catalog</a><br /> +<a href="/services/nvcf_deployments/">nvcf_deployments</a><br /> +<a href="/services/nvcf_functions/">nvcf_functions</a><br /> +<a href="/services/nvcf_invocation/">nvcf_invocation</a><br /> +</div> +<div class="providerDocColumn"> +<a href="/services/nvcf_queues/">nvcf_queues</a><br /> +<a href="/services/orgs/">orgs</a><br /> +<a href="/services/private_registry/">private_registry</a><br /> +</div> +</div> diff --git a/website/docs/services/catalog/artifact_deployment_params/index.md b/website/docs/services/catalog/artifact_deployment_params/index.md new file mode 100644 index 0000000..2c3b7cf --- /dev/null +++ b/website/docs/services/catalog/artifact_deployment_params/index.md @@ -0,0 +1,457 @@ +--- +title: artifact_deployment_params +hide_title: false +hide_table_of_contents: false +keywords: + - artifact_deployment_params + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>artifact_deployment_params</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="artifact_deployment_params" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.artifact_deployment_params" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="container" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="cpu" /></td> + <td><code>object</code></td> + <td>Deployment CPU Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="csp" /></td> + <td><code>string</code></td> + <td>Cloud Service Provider name</td> +</tr> +<tr> + <td><CopyableCode code="gpu" /></td> + <td><code>object</code></td> + <td>Deployment GPU Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="memory" /></td> + <td><code>object</code></td> + <td>Deployment Memory Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="model" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="resource" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="storage" /></td> + <td><code>object</code></td> + <td>Deployment Storage Parameters object</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="container" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="cpu" /></td> + <td><code>object</code></td> + <td>Deployment CPU Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="csp" /></td> + <td><code>string</code></td> + <td>Cloud Service Provider name</td> +</tr> +<tr> + <td><CopyableCode code="gpu" /></td> + <td><code>object</code></td> + <td>Deployment GPU Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="memory" /></td> + <td><code>object</code></td> + <td>Deployment Memory Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="model" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="resource" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="storage" /></td> + <td><code>object</code></td> + <td>Deployment Storage Parameters object</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="container" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="cpu" /></td> + <td><code>object</code></td> + <td>Deployment CPU Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="csp" /></td> + <td><code>string</code></td> + <td>Cloud Service Provider name</td> +</tr> +<tr> + <td><CopyableCode code="gpu" /></td> + <td><code>object</code></td> + <td>Deployment GPU Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="memory" /></td> + <td><code>object</code></td> + <td>Deployment Memory Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="model" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="resource" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="storage" /></td> + <td><code>object</code></td> + <td>Deployment Storage Parameters object</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="container" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="cpu" /></td> + <td><code>object</code></td> + <td>Deployment CPU Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="csp" /></td> + <td><code>string</code></td> + <td>Cloud Service Provider name</td> +</tr> +<tr> + <td><CopyableCode code="gpu" /></td> + <td><code>object</code></td> + <td>Deployment GPU Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="memory" /></td> + <td><code>object</code></td> + <td>Deployment Memory Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="model" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="resource" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="storage" /></td> + <td><code>object</code></td> + <td>Deployment Storage Parameters object</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td><a href="#parameter-inherit_csp_parameters"><code>inherit_csp_parameters</code></a></td> + <td>Get public artifact deployment parameters details in team</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td><a href="#parameter-inherit_csp_parameters"><code>inherit_csp_parameters</code></a></td> + <td>Get public artifact deployment parameters details in org</td> +</tr> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td><a href="#parameter-inherit_csp_parameters"><code>inherit_csp_parameters</code></a></td> + <td>List public artifact deployment parameters in team</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td><a href="#parameter-inherit_csp_parameters"><code>inherit_csp_parameters</code></a></td> + <td>List public artifact deployment parameters in org</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact name</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type</td> +</tr> +<tr id="parameter-csp_name"> + <td><CopyableCode code="csp_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Cloud service provider name</td> +</tr> +<tr id="parameter-org_name"> + <td><CopyableCode code="org_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Organization name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-inherit_csp_parameters"> + <td><CopyableCode code="inherit_csp_parameters" /></td> + <td><code>boolean</code></td> + <td>Inherit CSP parameters</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +Get public artifact deployment parameters details in team + +```sql +SELECT +container, +cpu, +csp, +gpu, +memory, +model, +resource, +storage +FROM nvidia.catalog.artifact_deployment_params +WHERE org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND artifact_type = '{{ artifact_type }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND csp_name = '{{ csp_name }}' -- required +AND inherit_csp_parameters = '{{ inherit_csp_parameters }}' +; +``` +</TabItem> +<TabItem value="get"> + +Get public artifact deployment parameters details in org + +```sql +SELECT +container, +cpu, +csp, +gpu, +memory, +model, +resource, +storage +FROM nvidia.catalog.artifact_deployment_params +WHERE org_name = '{{ org_name }}' -- required +AND artifact_type = '{{ artifact_type }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND csp_name = '{{ csp_name }}' -- required +AND inherit_csp_parameters = '{{ inherit_csp_parameters }}' +; +``` +</TabItem> +<TabItem value="list_by_team"> + +List public artifact deployment parameters in team + +```sql +SELECT +container, +cpu, +csp, +gpu, +memory, +model, +resource, +storage +FROM nvidia.catalog.artifact_deployment_params +WHERE org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND artifact_type = '{{ artifact_type }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND inherit_csp_parameters = '{{ inherit_csp_parameters }}' +; +``` +</TabItem> +<TabItem value="list"> + +List public artifact deployment parameters in org + +```sql +SELECT +container, +cpu, +csp, +gpu, +memory, +model, +resource, +storage +FROM nvidia.catalog.artifact_deployment_params +WHERE org_name = '{{ org_name }}' -- required +AND artifact_type = '{{ artifact_type }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND inherit_csp_parameters = '{{ inherit_csp_parameters }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/catalog/artifact_files/index.md b/website/docs/services/catalog/artifact_files/index.md new file mode 100644 index 0000000..3af5f4c --- /dev/null +++ b/website/docs/services/catalog/artifact_files/index.md @@ -0,0 +1,263 @@ +--- +title: artifact_files +hide_title: false +hide_table_of_contents: false +keywords: + - artifact_files + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>artifact_files</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="artifact_files" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.artifact_files" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the file</td> +</tr> +<tr> + <td><CopyableCode code="path" /></td> + <td><code>string</code></td> + <td>Relative file path from the root of the object</td> +</tr> +<tr> + <td><CopyableCode code="size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the file in bytes (wire: sizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the file</td> +</tr> +<tr> + <td><CopyableCode code="path" /></td> + <td><code>string</code></td> + <td>Relative file path from the root of the object</td> +</tr> +<tr> + <td><CopyableCode code="size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the file in bytes (wire: sizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>List files of the artifact version in team as guest</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_reference"><code>page_reference</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>List files of the artifact version in org as guest</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact name</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type</td> +</tr> +<tr id="parameter-org_name"> + <td><CopyableCode code="org_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Organization name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_reference"> + <td><CopyableCode code="page_reference" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page reference</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +List files of the artifact version in team as guest + +```sql +SELECT +created_date, +description, +path, +size_in_bytes, +updated_date +FROM nvidia.catalog.artifact_files +WHERE artifact_type = '{{ artifact_type }}' -- required +AND org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND version_id = '{{ version_id }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +<TabItem value="list"> + +List files of the artifact version in org as guest + +```sql +SELECT +created_date, +description, +path, +size_in_bytes, +updated_date +FROM nvidia.catalog.artifact_files +WHERE artifact_type = '{{ artifact_type }}' -- required +AND org_name = '{{ org_name }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND version_id = '{{ version_id }}' -- required +AND page_size = '{{ page_size }}' +AND page_reference = '{{ page_reference }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/catalog/artifact_specs/index.md b/website/docs/services/catalog/artifact_specs/index.md new file mode 100644 index 0000000..4a9bbae --- /dev/null +++ b/website/docs/services/catalog/artifact_specs/index.md @@ -0,0 +1,284 @@ +--- +title: artifact_specs +hide_title: false +hide_table_of_contents: false +keywords: + - artifact_specs + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>artifact_specs</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="artifact_specs" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.artifact_specs" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="nvcf_function_id" /></td> + <td><code>string</code></td> + <td>NVCF function id for the model playground (wire: nvcfFunctionId)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string</code></td> + <td>Unique name of the model (wire: artifactName)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string</code></td> + <td>ArtifactTypeEnum of the artifact (wire: artifactType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>string</code></td> + <td>Metadata json string</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="namespace" /></td> + <td><code>string</code></td> + <td>org/team of the model</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_inference_path" /></td> + <td><code>string</code></td> + <td>NVCF inference path (invocation route) for the model playground (wire: nvcfInferencePath)</td> +</tr> +<tr> + <td><CopyableCode code="open_api_spec" /></td> + <td><code>string</code></td> + <td>OpenAPI specification for this model (wire: openAPISpec)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="nvcf_function_id" /></td> + <td><code>string</code></td> + <td>NVCF function id for the model playground (wire: nvcfFunctionId)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string</code></td> + <td>Unique name of the model (wire: artifactName)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string</code></td> + <td>ArtifactTypeEnum of the artifact (wire: artifactType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>string</code></td> + <td>Metadata json string</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="namespace" /></td> + <td><code>string</code></td> + <td>org/team of the model</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_inference_path" /></td> + <td><code>string</code></td> + <td>NVCF inference path (invocation route) for the model playground (wire: nvcfInferencePath)</td> +</tr> +<tr> + <td><CopyableCode code="open_api_spec" /></td> + <td><code>string</code></td> + <td>OpenAPI specification for this model (wire: openAPISpec)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Get AI Playground for public artifactType</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Get AI Playground for public artifactType</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Model name</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type</td> +</tr> +<tr id="parameter-org_name"> + <td><CopyableCode code="org_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Organization name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' } + ]} +> +<TabItem value="get_by_team"> + +Get AI Playground for public artifactType + +```sql +SELECT +nvcf_function_id, +artifact_name, +artifact_type, +attributes, +created_date, +namespace, +nvcf_inference_path, +open_api_spec, +updated_date +FROM nvidia.catalog.artifact_specs +WHERE org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND artifact_type = '{{ artifact_type }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +; +``` +</TabItem> +<TabItem value="get"> + +Get AI Playground for public artifactType + +```sql +SELECT +nvcf_function_id, +artifact_name, +artifact_type, +attributes, +created_date, +namespace, +nvcf_inference_path, +open_api_spec, +updated_date +FROM nvidia.catalog.artifact_specs +WHERE org_name = '{{ org_name }}' -- required +AND artifact_type = '{{ artifact_type }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/catalog/artifacts/index.md b/website/docs/services/catalog/artifacts/index.md new file mode 100644 index 0000000..8da0a79 --- /dev/null +++ b/website/docs/services/catalog/artifacts/index.md @@ -0,0 +1,794 @@ +--- +title: artifacts +hide_title: false +hide_table_of_contents: false +keywords: + - artifacts + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>artifacts</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="artifacts" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.artifacts" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="encryption_key_id" /></td> + <td><code>string</code></td> + <td>ID of the customer managed encryption key associated with this artifact (wire: encryptionKeyId)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the helm chart belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the helm chart belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string</code></td> + <td>Artifact type (MODEL, MODEL_SCRIPT, HELM_CHART, REPOSITORY, COLLECTION, ENDPOINT, BLUEPRINT, PLAYBOOK, AGENT, API, SKILL) (wire: artifactType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="bias" /></td> + <td><code>string</code></td> + <td>Text describing bias in the artifact</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the helm chart (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="explainability" /></td> + <td><code>string</code></td> + <td>Text describing the explainability for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the artifact has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if helm chart is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this helm chart is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="privacy" /></td> + <td><code>string</code></td> + <td>Text describing the privacy for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this helm chart</td> +</tr> +<tr> + <td><CopyableCode code="safety_and_security" /></td> + <td><code>string</code></td> + <td>Text for describing the safety and security in the artifact (wire: safetyAndSecurity)</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the helm chart (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="encryption_key_id" /></td> + <td><code>string</code></td> + <td>ID of the customer managed encryption key associated with this artifact (wire: encryptionKeyId)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the helm chart belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the helm chart belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string</code></td> + <td>Artifact type (MODEL, MODEL_SCRIPT, HELM_CHART, REPOSITORY, COLLECTION, ENDPOINT, BLUEPRINT, PLAYBOOK, AGENT, API, SKILL) (wire: artifactType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="bias" /></td> + <td><code>string</code></td> + <td>Text describing bias in the artifact</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the helm chart (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="explainability" /></td> + <td><code>string</code></td> + <td>Text describing the explainability for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the artifact has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if helm chart is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this helm chart is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="privacy" /></td> + <td><code>string</code></td> + <td>Text describing the privacy for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this helm chart</td> +</tr> +<tr> + <td><CopyableCode code="safety_and_security" /></td> + <td><code>string</code></td> + <td>Text for describing the safety and security in the artifact (wire: safetyAndSecurity)</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the helm chart (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="encryption_key_id" /></td> + <td><code>string</code></td> + <td>ID of the customer managed encryption key associated with this artifact (wire: encryptionKeyId)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the helm chart belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the helm chart belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string</code></td> + <td>Artifact type (MODEL, MODEL_SCRIPT, HELM_CHART, REPOSITORY, COLLECTION, ENDPOINT, BLUEPRINT, PLAYBOOK, AGENT, API, SKILL) (wire: artifactType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="bias" /></td> + <td><code>string</code></td> + <td>Text describing bias in the artifact</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the helm chart (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="explainability" /></td> + <td><code>string</code></td> + <td>Text describing the explainability for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the artifact has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if helm chart is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this helm chart is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="privacy" /></td> + <td><code>string</code></td> + <td>Text describing the privacy for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this helm chart</td> +</tr> +<tr> + <td><CopyableCode code="safety_and_security" /></td> + <td><code>string</code></td> + <td>Text for describing the safety and security in the artifact (wire: safetyAndSecurity)</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the helm chart (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td><a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>Get artifact details in team as guest</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td><a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>Get artifact details in org as guest</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>List public artifacts</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact name</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type</td> +</tr> +<tr id="parameter-org_name"> + <td><CopyableCode code="org_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Organization name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-remove_unresolved_labels"> + <td><CopyableCode code="remove_unresolved_labels" /></td> + <td><code>boolean</code></td> + <td>Remove unresolved labels</td> +</tr> +<tr id="parameter-resolve_labels"> + <td><CopyableCode code="resolve_labels" /></td> + <td><code>boolean</code></td> + <td>Resolve labels</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +Get artifact details in team as guest + +```sql +SELECT +name, +encryption_key_id, +latest_version_id, +display_name, +org_name, +owner_name, +team_name, +access_type, +artifact_type, +attributes, +bias, +built_by, +can_guest_download, +created_date, +description, +explainability, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_size_in_bytes, +license_terms, +logo, +policy_labels, +privacy, +product_names, +publisher, +safety_and_security, +short_description, +updated_date +FROM nvidia.catalog.artifacts +WHERE artifact_type = '{{ artifact_type }}' -- required +AND org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="get"> + +Get artifact details in org as guest + +```sql +SELECT +name, +encryption_key_id, +latest_version_id, +display_name, +org_name, +owner_name, +team_name, +access_type, +artifact_type, +attributes, +bias, +built_by, +can_guest_download, +created_date, +description, +explainability, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_size_in_bytes, +license_terms, +logo, +policy_labels, +privacy, +product_names, +publisher, +safety_and_security, +short_description, +updated_date +FROM nvidia.catalog.artifacts +WHERE org_name = '{{ org_name }}' -- required +AND artifact_type = '{{ artifact_type }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="list"> + +List public artifacts + +```sql +SELECT +name, +encryption_key_id, +latest_version_id, +display_name, +org_name, +owner_name, +team_name, +access_type, +artifact_type, +attributes, +bias, +built_by, +can_guest_download, +created_date, +description, +explainability, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_size_in_bytes, +license_terms, +logo, +policy_labels, +privacy, +product_names, +publisher, +safety_and_security, +short_description, +updated_date +FROM nvidia.catalog.artifacts +WHERE artifact_type = '{{ artifact_type }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/catalog/collection_artifacts/index.md b/website/docs/services/catalog/collection_artifacts/index.md new file mode 100644 index 0000000..68c3e53 --- /dev/null +++ b/website/docs/services/catalog/collection_artifacts/index.md @@ -0,0 +1,583 @@ +--- +title: collection_artifacts +hide_title: false +hide_table_of_contents: false +keywords: + - collection_artifacts + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>collection_artifacts</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="collection_artifacts" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.collection_artifacts" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="encryption_key_id" /></td> + <td><code>string</code></td> + <td>ID of the customer managed encryption key associated with this artifact (wire: encryptionKeyId)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the helm chart belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the helm chart belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string</code></td> + <td>Artifact type (MODEL, MODEL_SCRIPT, HELM_CHART, REPOSITORY, COLLECTION, ENDPOINT, BLUEPRINT, PLAYBOOK, AGENT, API, SKILL) (wire: artifactType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="bias" /></td> + <td><code>string</code></td> + <td>Text describing bias in the artifact</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the helm chart (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="explainability" /></td> + <td><code>string</code></td> + <td>Text describing the explainability for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the artifact has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if helm chart is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this helm chart is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="privacy" /></td> + <td><code>string</code></td> + <td>Text describing the privacy for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this helm chart</td> +</tr> +<tr> + <td><CopyableCode code="safety_and_security" /></td> + <td><code>string</code></td> + <td>Text for describing the safety and security in the artifact (wire: safetyAndSecurity)</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the helm chart (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="encryption_key_id" /></td> + <td><code>string</code></td> + <td>ID of the customer managed encryption key associated with this artifact (wire: encryptionKeyId)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the helm chart belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the helm chart belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string</code></td> + <td>Artifact type (MODEL, MODEL_SCRIPT, HELM_CHART, REPOSITORY, COLLECTION, ENDPOINT, BLUEPRINT, PLAYBOOK, AGENT, API, SKILL) (wire: artifactType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="bias" /></td> + <td><code>string</code></td> + <td>Text describing bias in the artifact</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the helm chart (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="explainability" /></td> + <td><code>string</code></td> + <td>Text describing the explainability for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the artifact has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if helm chart is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this helm chart is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="privacy" /></td> + <td><code>string</code></td> + <td>Text describing the privacy for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this helm chart</td> +</tr> +<tr> + <td><CopyableCode code="safety_and_security" /></td> + <td><code>string</code></td> + <td>Text for describing the safety and security in the artifact (wire: safetyAndSecurity)</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the helm chart (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-collection_name"><code>collection_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-order_by"><code>order_by</code></a>, <a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>List collection artifacts the user can access in the specified org and team as guest</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-collection_name"><code>collection_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-order_by"><code>order_by</code></a>, <a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>List collection artifacts the user can access in the specified org as guest</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type</td> +</tr> +<tr id="parameter-collection_name"> + <td><CopyableCode code="collection_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Collection name</td> +</tr> +<tr id="parameter-org_name"> + <td><CopyableCode code="org_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Organization name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-order_by"> + <td><CopyableCode code="order_by" /></td> + <td><code>string (UTF-8)</code></td> + <td>Order by</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-remove_unresolved_labels"> + <td><CopyableCode code="remove_unresolved_labels" /></td> + <td><code>boolean</code></td> + <td>Remove unresolved labels</td> +</tr> +<tr id="parameter-resolve_labels"> + <td><CopyableCode code="resolve_labels" /></td> + <td><code>boolean</code></td> + <td>Resolve labels</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +List collection artifacts the user can access in the specified org and team as guest + +```sql +SELECT +name, +encryption_key_id, +latest_version_id, +display_name, +org_name, +owner_name, +team_name, +access_type, +artifact_type, +attributes, +bias, +built_by, +can_guest_download, +created_date, +description, +explainability, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_size_in_bytes, +license_terms, +logo, +policy_labels, +privacy, +product_names, +publisher, +safety_and_security, +short_description, +updated_date +FROM nvidia.catalog.collection_artifacts +WHERE org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND collection_name = '{{ collection_name }}' -- required +AND artifact_type = '{{ artifact_type }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND order_by = '{{ order_by }}' +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="list"> + +List collection artifacts the user can access in the specified org as guest + +```sql +SELECT +name, +encryption_key_id, +latest_version_id, +display_name, +org_name, +owner_name, +team_name, +access_type, +artifact_type, +attributes, +bias, +built_by, +can_guest_download, +created_date, +description, +explainability, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_size_in_bytes, +license_terms, +logo, +policy_labels, +privacy, +product_names, +publisher, +safety_and_security, +short_description, +updated_date +FROM nvidia.catalog.collection_artifacts +WHERE org_name = '{{ org_name }}' -- required +AND collection_name = '{{ collection_name }}' -- required +AND artifact_type = '{{ artifact_type }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND order_by = '{{ order_by }}' +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/catalog/collections/index.md b/website/docs/services/catalog/collections/index.md new file mode 100644 index 0000000..9b86b68 --- /dev/null +++ b/website/docs/services/catalog/collections/index.md @@ -0,0 +1,624 @@ +--- +title: collections +hide_title: false +hide_table_of_contents: false +keywords: + - collections + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>collections</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="collections" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.collections" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the collection</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the collection belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the collection belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the collection (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="category" /></td> + <td><code>string</code></td> + <td> (HEALTHCARE, SMART_CITIES, RETAIL, MANUFACTURING, SUPERCOMPUTING, ROBOTICS, AUTOMOTIVE, TELECOMMUNICATIONS, FINANCE, OIL_AND_GAS, NATURAL_LANGUAGE_PROCESSING, AUTOMATIC_SPEECH_RECOGNITION, INTELLIGENT_VIDEO_ANALYTICS, OBJECT_DETECTION, IMAGE_CLASSIFICATION, ANNOTATION, IMAGE_SYNTHESIS, MACHINE_LEARNING, DEEP_LEARNING, INFRASTRUCTURE, HIGH_PERFORMANCE_COMPUTING, WINDOWS_RTX_ACCELERATED_MODELS, BEGINNER, ADVANCED)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the collection</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this collection is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this collection</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the collection (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="size" /></td> + <td><code>integer (int64)</code></td> + <td>Total count of collection items</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the collection</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the collection belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the collection belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the collection (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="category" /></td> + <td><code>string</code></td> + <td> (HEALTHCARE, SMART_CITIES, RETAIL, MANUFACTURING, SUPERCOMPUTING, ROBOTICS, AUTOMOTIVE, TELECOMMUNICATIONS, FINANCE, OIL_AND_GAS, NATURAL_LANGUAGE_PROCESSING, AUTOMATIC_SPEECH_RECOGNITION, INTELLIGENT_VIDEO_ANALYTICS, OBJECT_DETECTION, IMAGE_CLASSIFICATION, ANNOTATION, IMAGE_SYNTHESIS, MACHINE_LEARNING, DEEP_LEARNING, INFRASTRUCTURE, HIGH_PERFORMANCE_COMPUTING, WINDOWS_RTX_ACCELERATED_MODELS, BEGINNER, ADVANCED)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the collection</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this collection is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this collection</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the collection (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="size" /></td> + <td><code>integer (int64)</code></td> + <td>Total count of collection items</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the collection</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the collection belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the collection belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the collection (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="category" /></td> + <td><code>string</code></td> + <td> (HEALTHCARE, SMART_CITIES, RETAIL, MANUFACTURING, SUPERCOMPUTING, ROBOTICS, AUTOMOTIVE, TELECOMMUNICATIONS, FINANCE, OIL_AND_GAS, NATURAL_LANGUAGE_PROCESSING, AUTOMATIC_SPEECH_RECOGNITION, INTELLIGENT_VIDEO_ANALYTICS, OBJECT_DETECTION, IMAGE_CLASSIFICATION, ANNOTATION, IMAGE_SYNTHESIS, MACHINE_LEARNING, DEEP_LEARNING, INFRASTRUCTURE, HIGH_PERFORMANCE_COMPUTING, WINDOWS_RTX_ACCELERATED_MODELS, BEGINNER, ADVANCED)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the collection</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this collection is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this collection</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the collection (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="size" /></td> + <td><code>integer (int64)</code></td> + <td>Total count of collection items</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-collection_name"><code>collection_name</code></a></td> + <td><a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>Get collection details in team as guest</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-collection_name"><code>collection_name</code></a></td> + <td><a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>Get collection details in org as guest</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>List public collections</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-collection_name"> + <td><CopyableCode code="collection_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Collection name</td> +</tr> +<tr id="parameter-org_name"> + <td><CopyableCode code="org_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Organization name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-remove_unresolved_labels"> + <td><CopyableCode code="remove_unresolved_labels" /></td> + <td><code>boolean</code></td> + <td>Remove unresolved labels</td> +</tr> +<tr id="parameter-resolve_labels"> + <td><CopyableCode code="resolve_labels" /></td> + <td><code>boolean</code></td> + <td>Resolve labels</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +Get collection details in team as guest + +```sql +SELECT +name, +display_name, +org_name, +owner_name, +team_name, +access_type, +attributes, +built_by, +can_guest_download, +category, +created_date, +description, +is_public, +is_read_only, +labels, +logo, +policy_labels, +product_names, +publisher, +short_description, +size, +updated_date +FROM nvidia.catalog.collections +WHERE org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND collection_name = '{{ collection_name }}' -- required +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="get"> + +Get collection details in org as guest + +```sql +SELECT +name, +display_name, +org_name, +owner_name, +team_name, +access_type, +attributes, +built_by, +can_guest_download, +category, +created_date, +description, +is_public, +is_read_only, +labels, +logo, +policy_labels, +product_names, +publisher, +short_description, +size, +updated_date +FROM nvidia.catalog.collections +WHERE org_name = '{{ org_name }}' -- required +AND collection_name = '{{ collection_name }}' -- required +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="list"> + +List public collections + +```sql +SELECT +name, +display_name, +org_name, +owner_name, +team_name, +access_type, +attributes, +built_by, +can_guest_download, +category, +created_date, +description, +is_public, +is_read_only, +labels, +logo, +policy_labels, +product_names, +publisher, +short_description, +size, +updated_date +FROM nvidia.catalog.collections +WHERE page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/catalog/csp_deployment_params/index.md b/website/docs/services/catalog/csp_deployment_params/index.md new file mode 100644 index 0000000..97239df --- /dev/null +++ b/website/docs/services/catalog/csp_deployment_params/index.md @@ -0,0 +1,363 @@ +--- +title: csp_deployment_params +hide_title: false +hide_table_of_contents: false +keywords: + - csp_deployment_params + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>csp_deployment_params</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="csp_deployment_params" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.csp_deployment_params" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' } + ]} +> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="container" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="cpu" /></td> + <td><code>object</code></td> + <td>Deployment CPU Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="csp" /></td> + <td><code>string</code></td> + <td>Cloud Service Provider name</td> +</tr> +<tr> + <td><CopyableCode code="gpu" /></td> + <td><code>object</code></td> + <td>Deployment GPU Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="memory" /></td> + <td><code>object</code></td> + <td>Deployment Memory Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="model" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="resource" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="storage" /></td> + <td><code>object</code></td> + <td>Deployment Storage Parameters object</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td></td> + <td>Get cloud service provider deployment parameters details</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td></td> + <td>Create cloud service provider deployment parameters</td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td></td> + <td>Update cloud service provider deployment parameters</td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td></td> + <td>Delete cloud service provider deployment parameters</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-csp_name"> + <td><CopyableCode code="csp_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Cloud service provider name</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' } + ]} +> +<TabItem value="get"> + +Get cloud service provider deployment parameters details + +```sql +SELECT +container, +cpu, +csp, +gpu, +memory, +model, +resource, +storage +FROM nvidia.catalog.csp_deployment_params +WHERE csp_name = '{{ csp_name }}' -- required +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create" + values={[ + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create"> + +Create cloud service provider deployment parameters + +```sql +INSERT INTO nvidia.catalog.csp_deployment_params ( +container, +cpu, +gpu, +memory, +model, +resource, +storage, +csp_name +) +SELECT +'{{ container }}', +'{{ cpu }}', +'{{ gpu }}', +'{{ memory }}', +'{{ model }}', +'{{ resource }}', +'{{ storage }}', +'{{ csp_name }}' +RETURNING +container, +cpu, +csp, +gpu, +memory, +model, +resource, +storage +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: csp_deployment_params + props: + - name: csp_name + value: "{{ csp_name }}" + description: Required parameter for the csp_deployment_params resource. + - name: container + description: | + Deployment Artifact Parameters object + value: + artifactType: "{{ artifactType }}" + displayName: "{{ displayName }}" + filePath: "{{ filePath }}" + name: "{{ name }}" + orgName: "{{ orgName }}" + teamName: "{{ teamName }}" + versionId: "{{ versionId }}" + - name: cpu + description: | + Deployment CPU Parameters object + value: + count: {{ count }} + - name: gpu + description: | + Deployment GPU Parameters object + value: + count: {{ count }} + type: "{{ type }}" + - name: memory + description: | + Deployment Memory Parameters object + value: + capacityInGB: {{ capacityInGB }} + - name: model + description: | + Deployment Artifact Parameters object + value: + artifactType: "{{ artifactType }}" + displayName: "{{ displayName }}" + filePath: "{{ filePath }}" + name: "{{ name }}" + orgName: "{{ orgName }}" + teamName: "{{ teamName }}" + versionId: "{{ versionId }}" + - name: resource + description: | + Deployment Artifact Parameters object + value: + artifactType: "{{ artifactType }}" + displayName: "{{ displayName }}" + filePath: "{{ filePath }}" + name: "{{ name }}" + orgName: "{{ orgName }}" + teamName: "{{ teamName }}" + versionId: "{{ versionId }}" + - name: storage + description: | + Deployment Storage Parameters object + value: + capacityInGB: {{ capacityInGB }} +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update" + values={[ + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update"> + +Update cloud service provider deployment parameters + +```sql +UPDATE nvidia.catalog.csp_deployment_params +SET +container = '{{ container }}', +cpu = '{{ cpu }}', +gpu = '{{ gpu }}', +memory = '{{ memory }}', +model = '{{ model }}', +resource = '{{ resource }}', +storage = '{{ storage }}' +WHERE +csp_name = '{{ csp_name }}' --required +RETURNING +container, +cpu, +csp, +gpu, +memory, +model, +resource, +storage; +``` +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete" + values={[ + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete"> + +Delete cloud service provider deployment parameters + +```sql +DELETE FROM nvidia.catalog.csp_deployment_params +WHERE csp_name = '{{ csp_name }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/catalog/csp_deployment_params_meta/index.md b/website/docs/services/catalog/csp_deployment_params_meta/index.md new file mode 100644 index 0000000..c16ec24 --- /dev/null +++ b/website/docs/services/catalog/csp_deployment_params_meta/index.md @@ -0,0 +1,314 @@ +--- +title: csp_deployment_params_meta +hide_title: false +hide_table_of_contents: false +keywords: + - csp_deployment_params_meta + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>csp_deployment_params_meta</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="csp_deployment_params_meta" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.csp_deployment_params_meta" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' } + ]} +> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="cpu" /></td> + <td><code>object</code></td> + <td>Cloud Service Provider Deployment CPU Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="csp" /></td> + <td><code>string</code></td> + <td>Cloud Service Provider name</td> +</tr> +<tr> + <td><CopyableCode code="gpu" /></td> + <td><code>object</code></td> + <td>Cloud Service Provider Deployment GPU Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="memory" /></td> + <td><code>object</code></td> + <td>Cloud Service Provider Deployment Memory Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="storage" /></td> + <td><code>object</code></td> + <td>Cloud Service Provider Deployment Storage Parameters object</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td></td> + <td>Get cloud service provider deployment parameters meta details</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-csp_name"><code>csp_name</code></a>, <a href="#parameter-gpu"><code>gpu</code></a>, <a href="#parameter-storage"><code>storage</code></a></td> + <td></td> + <td>Create cloud service provider deployment parameters meta</td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td></td> + <td>Update cloud service provider deployment parameters meta</td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td></td> + <td>Delete cloud service provider deployment parameters meta</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-csp_name"> + <td><CopyableCode code="csp_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Cloud service provider name</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' } + ]} +> +<TabItem value="get"> + +Get cloud service provider deployment parameters meta details + +```sql +SELECT +cpu, +csp, +gpu, +memory, +storage +FROM nvidia.catalog.csp_deployment_params_meta +WHERE csp_name = '{{ csp_name }}' -- required +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create" + values={[ + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create"> + +Create cloud service provider deployment parameters meta + +```sql +INSERT INTO nvidia.catalog.csp_deployment_params_meta ( +cpu, +gpu, +memory, +storage, +csp_name +) +SELECT +'{{ cpu }}', +'{{ gpu }}' /* required */, +'{{ memory }}', +'{{ storage }}' /* required */, +'{{ csp_name }}' +RETURNING +cpu, +csp, +gpu, +memory, +storage +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: csp_deployment_params_meta + props: + - name: csp_name + value: "{{ csp_name }}" + description: Required parameter for the csp_deployment_params_meta resource. + - name: cpu + description: | + Cloud Service Provider Deployment CPU Parameters object + value: + count: + defaultValue: {{ defaultValue }} + maxValue: {{ maxValue }} + minValue: {{ minValue }} + - name: gpu + description: | + Cloud Service Provider Deployment GPU Parameters object + value: + count: + defaultValue: {{ defaultValue }} + maxValue: {{ maxValue }} + minValue: {{ minValue }} + type: + defaultItemName: "{{ defaultItemName }}" + items: + - displayName: "{{ displayName }}" + logo: "{{ logo }}" + name: "{{ name }}" + - name: memory + description: | + Cloud Service Provider Deployment Memory Parameters object + value: + capacityInGB: + defaultValue: {{ defaultValue }} + maxValue: {{ maxValue }} + minValue: {{ minValue }} + - name: storage + description: | + Cloud Service Provider Deployment Storage Parameters object + value: + capacityInGB: + defaultValue: {{ defaultValue }} + maxValue: {{ maxValue }} + minValue: {{ minValue }} +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update" + values={[ + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update"> + +Update cloud service provider deployment parameters meta + +```sql +UPDATE nvidia.catalog.csp_deployment_params_meta +SET +cpu = '{{ cpu }}', +gpu = '{{ gpu }}', +memory = '{{ memory }}', +storage = '{{ storage }}' +WHERE +csp_name = '{{ csp_name }}' --required +RETURNING +cpu, +csp, +gpu, +memory, +storage; +``` +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete" + values={[ + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete"> + +Delete cloud service provider deployment parameters meta + +```sql +DELETE FROM nvidia.catalog.csp_deployment_params_meta +WHERE csp_name = '{{ csp_name }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/catalog/csps/index.md b/website/docs/services/catalog/csps/index.md new file mode 100644 index 0000000..6d21550 --- /dev/null +++ b/website/docs/services/catalog/csps/index.md @@ -0,0 +1,457 @@ +--- +title: csps +hide_title: false +hide_table_of_contents: false +keywords: + - csps + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>csps</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="csps" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.csps" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the Cloud Service Provider</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name of the Cloud Service Provider (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the Cloud Service Provider</td> +</tr> +<tr> + <td><CopyableCode code="is_deployable" /></td> + <td><code>boolean</code></td> + <td>Determines if this Cloud Service Provider can be used to deploy artifacts (wire: isDeployable)</td> +</tr> +<tr> + <td><CopyableCode code="is_enabled" /></td> + <td><code>boolean</code></td> + <td>Determines if this Cloud Service Provider is enabled (wire: isEnabled)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the Cloud Service Provider</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name of the Cloud Service Provider (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the Cloud Service Provider</td> +</tr> +<tr> + <td><CopyableCode code="is_deployable" /></td> + <td><code>boolean</code></td> + <td>Determines if this Cloud Service Provider can be used to deploy artifacts (wire: isDeployable)</td> +</tr> +<tr> + <td><CopyableCode code="is_enabled" /></td> + <td><code>boolean</code></td> + <td>Determines if this Cloud Service Provider is enabled (wire: isEnabled)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td></td> + <td>Get cloud service provider details</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-include_disabled"><code>include_disabled</code></a></td> + <td>List cloud service providers</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-name"><code>name</code></a></td> + <td></td> + <td>Create cloud service provider</td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td></td> + <td>Update cloud service provider</td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td></td> + <td>Delete cloud service provider</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-csp_name"> + <td><CopyableCode code="csp_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Cloud service provider name</td> +</tr> +<tr id="parameter-include_disabled"> + <td><CopyableCode code="include_disabled" /></td> + <td><code>boolean</code></td> + <td>Include disabled</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>integer</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>integer</code></td> + <td>Page size</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get"> + +Get cloud service provider details + +```sql +SELECT +name, +display_name, +attributes, +created_date, +description, +is_deployable, +is_enabled, +labels, +logo, +updated_date +FROM nvidia.catalog.csps +WHERE csp_name = '{{ csp_name }}' -- required +; +``` +</TabItem> +<TabItem value="list"> + +List cloud service providers + +```sql +SELECT +name, +display_name, +attributes, +created_date, +description, +is_deployable, +is_enabled, +labels, +logo, +updated_date +FROM nvidia.catalog.csps +WHERE page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND include_disabled = '{{ include_disabled }}' +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create" + values={[ + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create"> + +Create cloud service provider + +```sql +INSERT INTO nvidia.catalog.csps ( +attributes, +description, +display_name, +is_enabled, +labels, +logo, +name +) +SELECT +'{{ attributes }}', +'{{ description }}', +'{{ display_name }}', +{{ is_enabled }}, +'{{ labels }}', +'{{ logo }}', +'{{ name }}' /* required */ +RETURNING +name, +display_name, +attributes, +created_date, +description, +is_deployable, +is_enabled, +labels, +logo, +updated_date +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: csps + props: + - name: attributes + value: + - key: "{{ key }}" + value: "{{ value }}" + - name: description + value: "{{ description }}" + description: | + Description of the Cloud Service Provider + - name: display_name + value: "{{ display_name }}" + description: | + Display name of the Cloud Service Provider + - name: is_enabled + value: {{ is_enabled }} + description: | + Determines if this Cloud Service Provider is enabled + - name: labels + value: + - "{{ labels }}" + - name: logo + value: "{{ logo }}" + description: | + URL for the logo image + - name: name + value: "{{ name }}" + description: | + Unique name of the Cloud Service Provider +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update" + values={[ + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update"> + +Update cloud service provider + +```sql +UPDATE nvidia.catalog.csps +SET +attributes = '{{ attributes }}', +description = '{{ description }}', +display_name = '{{ display_name }}', +is_enabled = {{ is_enabled }}, +labels = '{{ labels }}', +logo = '{{ logo }}' +WHERE +csp_name = '{{ csp_name }}' --required +RETURNING +name, +display_name, +attributes, +created_date, +description, +is_deployable, +is_enabled, +labels, +logo, +updated_date; +``` +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete" + values={[ + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete"> + +Delete cloud service provider + +```sql +DELETE FROM nvidia.catalog.csps +WHERE csp_name = '{{ csp_name }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/catalog/gpus/index.md b/website/docs/services/catalog/gpus/index.md new file mode 100644 index 0000000..d432ae4 --- /dev/null +++ b/website/docs/services/catalog/gpus/index.md @@ -0,0 +1,875 @@ +--- +title: gpus +hide_title: false +hide_table_of_contents: false +keywords: + - gpus + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>gpus</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="gpus" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.gpus" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_vendor_subsystem" + values={[ + { label: 'get_by_vendor_subsystem', value: 'get_by_vendor_subsystem' }, + { label: 'get_by_vendor', value: 'get_by_vendor' }, + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_vendor_subsystem"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="pci_device_id" /></td> + <td><code>string</code></td> + <td>PCI Device ID (wire: pciDeviceId)</td> +</tr> +<tr> + <td><CopyableCode code="pci_subsystem_device_id" /></td> + <td><code>string</code></td> + <td>PCI Subsystem Device ID (wire: pciSubsystemDeviceId)</td> +</tr> +<tr> + <td><CopyableCode code="pci_vendor_id" /></td> + <td><code>string</code></td> + <td>PCI Vendor ID (wire: pciVendorId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name for the GPU (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="label_name" /></td> + <td><code>string</code></td> + <td>Label name for the GPU (wire: labelName)</td> +</tr> +<tr> + <td><CopyableCode code="created_at" /></td> + <td><code>string (date_time)</code></td> + <td>Creation timestamp (wire: createdAt)</td> +</tr> +<tr> + <td><CopyableCode code="cuda_major_version" /></td> + <td><code>string</code></td> + <td>CUDA major version (wire: cudaMajorVersion)</td> +</tr> +<tr> + <td><CopyableCode code="cuda_minor_version" /></td> + <td><code>string</code></td> + <td>CUDA minor version (wire: cudaMinorVersion)</td> +</tr> +<tr> + <td><CopyableCode code="form_factor" /></td> + <td><code>string</code></td> + <td>GPU form factor (wire: formFactor)</td> +</tr> +<tr> + <td><CopyableCode code="gpu_counts" /></td> + <td><code>array</code></td> + <td> (wire: gpuCounts)</td> +</tr> +<tr> + <td><CopyableCode code="memory_size_gb" /></td> + <td><code>integer (int32)</code></td> + <td>Memory size in GB (smallint range) (wire: memorySizeGb)</td> +</tr> +<tr> + <td><CopyableCode code="request_status" /></td> + <td><code>object</code></td> + <td>Request status information (wire: requestStatus)</td> +</tr> +<tr> + <td><CopyableCode code="updated_at" /></td> + <td><code>string (date_time)</code></td> + <td>Last update timestamp (wire: updatedAt)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get_by_vendor"> + +Response for GPU by PCI ID lookup + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="pci_device_id" /></td> + <td><code>string</code></td> + <td>PCI Device ID (wire: pciDeviceId)</td> +</tr> +<tr> + <td><CopyableCode code="pci_subsystem_device_id" /></td> + <td><code>string</code></td> + <td>PCI Subsystem Device ID (wire: pciSubsystemDeviceId)</td> +</tr> +<tr> + <td><CopyableCode code="pci_vendor_id" /></td> + <td><code>string</code></td> + <td>PCI Vendor ID (wire: pciVendorId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name for the GPU (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="label_name" /></td> + <td><code>string</code></td> + <td>Label name for the GPU (wire: labelName)</td> +</tr> +<tr> + <td><CopyableCode code="created_at" /></td> + <td><code>string (date_time)</code></td> + <td>Creation timestamp (wire: createdAt)</td> +</tr> +<tr> + <td><CopyableCode code="cuda_major_version" /></td> + <td><code>string</code></td> + <td>CUDA major version (wire: cudaMajorVersion)</td> +</tr> +<tr> + <td><CopyableCode code="cuda_minor_version" /></td> + <td><code>string</code></td> + <td>CUDA minor version (wire: cudaMinorVersion)</td> +</tr> +<tr> + <td><CopyableCode code="form_factor" /></td> + <td><code>string</code></td> + <td>GPU form factor (wire: formFactor)</td> +</tr> +<tr> + <td><CopyableCode code="gpu_counts" /></td> + <td><code>array</code></td> + <td> (wire: gpuCounts)</td> +</tr> +<tr> + <td><CopyableCode code="memory_size_gb" /></td> + <td><code>integer (int32)</code></td> + <td>Memory size in GB (smallint range) (wire: memorySizeGb)</td> +</tr> +<tr> + <td><CopyableCode code="request_status" /></td> + <td><code>object</code></td> + <td>Request status information (wire: requestStatus)</td> +</tr> +<tr> + <td><CopyableCode code="updated_at" /></td> + <td><code>string (date_time)</code></td> + <td>Last update timestamp (wire: updatedAt)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +Response for GPU by PCI ID lookup + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="pci_device_id" /></td> + <td><code>string</code></td> + <td>PCI Device ID (wire: pciDeviceId)</td> +</tr> +<tr> + <td><CopyableCode code="pci_subsystem_device_id" /></td> + <td><code>string</code></td> + <td>PCI Subsystem Device ID (wire: pciSubsystemDeviceId)</td> +</tr> +<tr> + <td><CopyableCode code="pci_vendor_id" /></td> + <td><code>string</code></td> + <td>PCI Vendor ID (wire: pciVendorId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name for the GPU (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="label_name" /></td> + <td><code>string</code></td> + <td>Label name for the GPU (wire: labelName)</td> +</tr> +<tr> + <td><CopyableCode code="created_at" /></td> + <td><code>string (date_time)</code></td> + <td>Creation timestamp (wire: createdAt)</td> +</tr> +<tr> + <td><CopyableCode code="cuda_major_version" /></td> + <td><code>string</code></td> + <td>CUDA major version (wire: cudaMajorVersion)</td> +</tr> +<tr> + <td><CopyableCode code="cuda_minor_version" /></td> + <td><code>string</code></td> + <td>CUDA minor version (wire: cudaMinorVersion)</td> +</tr> +<tr> + <td><CopyableCode code="form_factor" /></td> + <td><code>string</code></td> + <td>GPU form factor (wire: formFactor)</td> +</tr> +<tr> + <td><CopyableCode code="gpu_counts" /></td> + <td><code>array</code></td> + <td> (wire: gpuCounts)</td> +</tr> +<tr> + <td><CopyableCode code="memory_size_gb" /></td> + <td><code>integer (int32)</code></td> + <td>Memory size in GB (smallint range) (wire: memorySizeGb)</td> +</tr> +<tr> + <td><CopyableCode code="request_status" /></td> + <td><code>object</code></td> + <td>Request status information (wire: requestStatus)</td> +</tr> +<tr> + <td><CopyableCode code="updated_at" /></td> + <td><code>string (date_time)</code></td> + <td>Last update timestamp (wire: updatedAt)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +Response for GPU by PCI ID lookup + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="pci_device_id" /></td> + <td><code>string</code></td> + <td>PCI Device ID (wire: pciDeviceId)</td> +</tr> +<tr> + <td><CopyableCode code="pci_subsystem_device_id" /></td> + <td><code>string</code></td> + <td>PCI Subsystem Device ID (wire: pciSubsystemDeviceId)</td> +</tr> +<tr> + <td><CopyableCode code="pci_vendor_id" /></td> + <td><code>string</code></td> + <td>PCI Vendor ID (wire: pciVendorId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name for the GPU (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="label_name" /></td> + <td><code>string</code></td> + <td>Label name for the GPU (wire: labelName)</td> +</tr> +<tr> + <td><CopyableCode code="created_at" /></td> + <td><code>string (date_time)</code></td> + <td>Creation timestamp (wire: createdAt)</td> +</tr> +<tr> + <td><CopyableCode code="cuda_major_version" /></td> + <td><code>string</code></td> + <td>CUDA major version (wire: cudaMajorVersion)</td> +</tr> +<tr> + <td><CopyableCode code="cuda_minor_version" /></td> + <td><code>string</code></td> + <td>CUDA minor version (wire: cudaMinorVersion)</td> +</tr> +<tr> + <td><CopyableCode code="form_factor" /></td> + <td><code>string</code></td> + <td>GPU form factor (wire: formFactor)</td> +</tr> +<tr> + <td><CopyableCode code="gpu_counts" /></td> + <td><code>array</code></td> + <td> (wire: gpuCounts)</td> +</tr> +<tr> + <td><CopyableCode code="memory_size_gb" /></td> + <td><code>integer (int32)</code></td> + <td>Memory size in GB (smallint range) (wire: memorySizeGb)</td> +</tr> +<tr> + <td><CopyableCode code="request_status" /></td> + <td><code>object</code></td> + <td>Request status information (wire: requestStatus)</td> +</tr> +<tr> + <td><CopyableCode code="updated_at" /></td> + <td><code>string (date_time)</code></td> + <td>Last update timestamp (wire: updatedAt)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_vendor_subsystem"><CopyableCode code="get_by_vendor_subsystem" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-pci_device_id"><code>pci_device_id</code></a>, <a href="#parameter-pci_vendor_id"><code>pci_vendor_id</code></a>, <a href="#parameter-pci_subsystem_device_id"><code>pci_subsystem_device_id</code></a></td> + <td></td> + <td>Get a single GPU record matching the full PCI composite key</td> +</tr> +<tr> + <td><a href="#get_by_vendor"><CopyableCode code="get_by_vendor" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-pci_device_id"><code>pci_device_id</code></a>, <a href="#parameter-pci_vendor_id"><code>pci_vendor_id</code></a></td> + <td></td> + <td>Get all GPUs by PCI records matching the given PCI Device ID and Vendor ID</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-pci_device_id"><code>pci_device_id</code></a></td> + <td></td> + <td>Get all GPU records matching the given PCI Device ID</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td></td> + <td>Get all GPU by PCI records</td> +</tr> +<tr> + <td><a href="#create_by_vendor_subsystem"><CopyableCode code="create_by_vendor_subsystem" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-pci_device_id"><code>pci_device_id</code></a>, <a href="#parameter-pci_vendor_id"><code>pci_vendor_id</code></a>, <a href="#parameter-pci_subsystem_device_id"><code>pci_subsystem_device_id</code></a>, <a href="#parameter-display_name"><code>display_name</code></a>, <a href="#parameter-pci_device_id"><code>pci_device_id</code></a></td> + <td></td> + <td>Create a new GPU record using the full PCI composite key</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-pci_device_id"><code>pci_device_id</code></a>, <a href="#parameter-display_name"><code>display_name</code></a>, <a href="#parameter-pci_device_id"><code>pci_device_id</code></a></td> + <td></td> + <td>Create a new GPU record using only PCI Device ID (pciVendorId and pciSubsystemDeviceId default to 'unknown')</td> +</tr> +<tr> + <td><a href="#update_by_vendor_subsystem"><CopyableCode code="update_by_vendor_subsystem" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-pci_device_id"><code>pci_device_id</code></a>, <a href="#parameter-pci_vendor_id"><code>pci_vendor_id</code></a>, <a href="#parameter-pci_subsystem_device_id"><code>pci_subsystem_device_id</code></a></td> + <td></td> + <td>Partially update a GPU record matching the full PCI composite key. Only provided fields will be updated.</td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-pci_device_id"><code>pci_device_id</code></a></td> + <td></td> + <td>Partially update a GPU record using only PCI Device ID (pciVendorId and pciSubsystemDeviceId default to 'unknown'). Only provided fields will be updated.</td> +</tr> +<tr> + <td><a href="#delete_by_vendor_subsystem"><CopyableCode code="delete_by_vendor_subsystem" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-pci_device_id"><code>pci_device_id</code></a>, <a href="#parameter-pci_vendor_id"><code>pci_vendor_id</code></a>, <a href="#parameter-pci_subsystem_device_id"><code>pci_subsystem_device_id</code></a></td> + <td></td> + <td>Delete a GPU record matching the full PCI composite key</td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-pci_device_id"><code>pci_device_id</code></a></td> + <td></td> + <td>Delete a GPU record using only PCI Device ID (pciVendorId and pciSubsystemDeviceId default to 'unknown')</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-pci_device_id"> + <td><CopyableCode code="pci_device_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>PCI Device ID</td> +</tr> +<tr id="parameter-pci_subsystem_device_id"> + <td><CopyableCode code="pci_subsystem_device_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>PCI Subsystem Device ID</td> +</tr> +<tr id="parameter-pci_vendor_id"> + <td><CopyableCode code="pci_vendor_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>PCI Vendor ID</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_vendor_subsystem" + values={[ + { label: 'get_by_vendor_subsystem', value: 'get_by_vendor_subsystem' }, + { label: 'get_by_vendor', value: 'get_by_vendor' }, + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_vendor_subsystem"> + +Get a single GPU record matching the full PCI composite key + +```sql +SELECT +pci_device_id, +pci_subsystem_device_id, +pci_vendor_id, +display_name, +label_name, +created_at, +cuda_major_version, +cuda_minor_version, +form_factor, +gpu_counts, +memory_size_gb, +request_status, +updated_at +FROM nvidia.catalog.gpus +WHERE pci_device_id = '{{ pci_device_id }}' -- required +AND pci_vendor_id = '{{ pci_vendor_id }}' -- required +AND pci_subsystem_device_id = '{{ pci_subsystem_device_id }}' -- required +; +``` +</TabItem> +<TabItem value="get_by_vendor"> + +Get all GPUs by PCI records matching the given PCI Device ID and Vendor ID + +```sql +SELECT +pci_device_id, +pci_subsystem_device_id, +pci_vendor_id, +display_name, +label_name, +created_at, +cuda_major_version, +cuda_minor_version, +form_factor, +gpu_counts, +memory_size_gb, +request_status, +updated_at +FROM nvidia.catalog.gpus +WHERE pci_device_id = '{{ pci_device_id }}' -- required +AND pci_vendor_id = '{{ pci_vendor_id }}' -- required +; +``` +</TabItem> +<TabItem value="get"> + +Get all GPU records matching the given PCI Device ID + +```sql +SELECT +pci_device_id, +pci_subsystem_device_id, +pci_vendor_id, +display_name, +label_name, +created_at, +cuda_major_version, +cuda_minor_version, +form_factor, +gpu_counts, +memory_size_gb, +request_status, +updated_at +FROM nvidia.catalog.gpus +WHERE pci_device_id = '{{ pci_device_id }}' -- required +; +``` +</TabItem> +<TabItem value="list"> + +Get all GPU by PCI records + +```sql +SELECT +pci_device_id, +pci_subsystem_device_id, +pci_vendor_id, +display_name, +label_name, +created_at, +cuda_major_version, +cuda_minor_version, +form_factor, +gpu_counts, +memory_size_gb, +request_status, +updated_at +FROM nvidia.catalog.gpus +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create_by_vendor_subsystem" + values={[ + { label: 'create_by_vendor_subsystem', value: 'create_by_vendor_subsystem' }, + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create_by_vendor_subsystem"> + +Create a new GPU record using the full PCI composite key + +```sql +INSERT INTO nvidia.catalog.gpus ( +cuda_major_version, +cuda_minor_version, +display_name, +form_factor, +gpu_counts, +label_name, +memory_size_gb, +pci_device_id, +pci_subsystem_device_id, +pci_vendor_id, +pci_device_id, +pci_vendor_id, +pci_subsystem_device_id +) +SELECT +'{{ cuda_major_version }}', +'{{ cuda_minor_version }}', +'{{ display_name }}' /* required */, +'{{ form_factor }}', +'{{ gpu_counts }}', +'{{ label_name }}', +{{ memory_size_gb }}, +'{{ pci_device_id }}' /* required */, +'{{ pci_subsystem_device_id }}', +'{{ pci_vendor_id }}', +'{{ pci_device_id }}' /* required */, +'{{ pci_vendor_id }}', +'{{ pci_subsystem_device_id }}' +RETURNING +pci_device_id, +pci_subsystem_device_id, +pci_vendor_id, +display_name, +label_name, +created_at, +cuda_major_version, +cuda_minor_version, +form_factor, +gpu_counts, +memory_size_gb, +request_status, +updated_at +; +``` +</TabItem> +<TabItem value="create"> + +Create a new GPU record using only PCI Device ID (pciVendorId and pciSubsystemDeviceId default to 'unknown') + +```sql +INSERT INTO nvidia.catalog.gpus ( +cuda_major_version, +cuda_minor_version, +display_name, +form_factor, +gpu_counts, +label_name, +memory_size_gb, +pci_device_id, +pci_subsystem_device_id, +pci_vendor_id, +pci_device_id +) +SELECT +'{{ cuda_major_version }}', +'{{ cuda_minor_version }}', +'{{ display_name }}' /* required */, +'{{ form_factor }}', +'{{ gpu_counts }}', +'{{ label_name }}', +{{ memory_size_gb }}, +'{{ pci_device_id }}' /* required */, +'{{ pci_subsystem_device_id }}', +'{{ pci_vendor_id }}', +'{{ pci_device_id }}' /* required */ +RETURNING +pci_device_id, +pci_subsystem_device_id, +pci_vendor_id, +display_name, +label_name, +created_at, +cuda_major_version, +cuda_minor_version, +form_factor, +gpu_counts, +memory_size_gb, +request_status, +updated_at +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: gpus + props: + - name: pci_device_id + value: "{{ pci_device_id }}" + description: Required parameter for the gpus resource. + - name: pci_vendor_id + value: "{{ pci_vendor_id }}" + description: Required parameter for the gpus resource. + - name: pci_subsystem_device_id + value: "{{ pci_subsystem_device_id }}" + description: Required parameter for the gpus resource. + - name: cuda_major_version + value: "{{ cuda_major_version }}" + description: | + CUDA major version + - name: cuda_minor_version + value: "{{ cuda_minor_version }}" + description: | + CUDA minor version + - name: display_name + value: "{{ display_name }}" + description: | + Display name for the GPU + - name: form_factor + value: "{{ form_factor }}" + description: | + GPU form factor + - name: gpu_counts + value: + - {{ gpu_counts }} + - name: label_name + value: "{{ label_name }}" + description: | + Label name for the GPU + - name: memory_size_gb + value: {{ memory_size_gb }} + description: | + Memory size in GB (smallint range) + - name: pci_device_id + value: "{{ pci_device_id }}" + description: | + PCI Device ID + - name: pci_subsystem_device_id + value: "{{ pci_subsystem_device_id }}" + description: | + PCI Subsystem Device ID + - name: pci_vendor_id + value: "{{ pci_vendor_id }}" + description: | + PCI Vendor ID +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update_by_vendor_subsystem" + values={[ + { label: 'update_by_vendor_subsystem', value: 'update_by_vendor_subsystem' }, + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update_by_vendor_subsystem"> + +Partially update a GPU record matching the full PCI composite key. Only provided fields will be updated. + +```sql +UPDATE nvidia.catalog.gpus +SET +cuda_major_version = '{{ cuda_major_version }}', +cuda_minor_version = '{{ cuda_minor_version }}', +display_name = '{{ display_name }}', +form_factor = '{{ form_factor }}', +gpu_counts = '{{ gpu_counts }}', +label_name = '{{ label_name }}', +memory_size_gb = {{ memory_size_gb }} +WHERE +pci_device_id = '{{ pci_device_id }}' --required +AND pci_vendor_id = '{{ pci_vendor_id }}' --required +AND pci_subsystem_device_id = '{{ pci_subsystem_device_id }}' --required +RETURNING +pci_device_id, +pci_subsystem_device_id, +pci_vendor_id, +display_name, +label_name, +created_at, +cuda_major_version, +cuda_minor_version, +form_factor, +gpu_counts, +memory_size_gb, +request_status, +updated_at; +``` +</TabItem> +<TabItem value="update"> + +Partially update a GPU record using only PCI Device ID (pciVendorId and pciSubsystemDeviceId default to 'unknown'). Only provided fields will be updated. + +```sql +UPDATE nvidia.catalog.gpus +SET +cuda_major_version = '{{ cuda_major_version }}', +cuda_minor_version = '{{ cuda_minor_version }}', +display_name = '{{ display_name }}', +form_factor = '{{ form_factor }}', +gpu_counts = '{{ gpu_counts }}', +label_name = '{{ label_name }}', +memory_size_gb = {{ memory_size_gb }} +WHERE +pci_device_id = '{{ pci_device_id }}' --required +RETURNING +pci_device_id, +pci_subsystem_device_id, +pci_vendor_id, +display_name, +label_name, +created_at, +cuda_major_version, +cuda_minor_version, +form_factor, +gpu_counts, +memory_size_gb, +request_status, +updated_at; +``` +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete_by_vendor_subsystem" + values={[ + { label: 'delete_by_vendor_subsystem', value: 'delete_by_vendor_subsystem' }, + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete_by_vendor_subsystem"> + +Delete a GPU record matching the full PCI composite key + +```sql +DELETE FROM nvidia.catalog.gpus +WHERE pci_device_id = '{{ pci_device_id }}' --required +AND pci_vendor_id = '{{ pci_vendor_id }}' --required +AND pci_subsystem_device_id = '{{ pci_subsystem_device_id }}' --required +; +``` +</TabItem> +<TabItem value="delete"> + +Delete a GPU record using only PCI Device ID (pciVendorId and pciSubsystemDeviceId default to 'unknown') + +```sql +DELETE FROM nvidia.catalog.gpus +WHERE pci_device_id = '{{ pci_device_id }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/catalog/helm_chart_versions/index.md b/website/docs/services/catalog/helm_chart_versions/index.md new file mode 100644 index 0000000..9c329e5 --- /dev/null +++ b/website/docs/services/catalog/helm_chart_versions/index.md @@ -0,0 +1,659 @@ +--- +title: helm_chart_versions +hide_title: false +hide_table_of_contents: false +keywords: + - helm_chart_versions + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>helm_chart_versions</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="helm_chart_versions" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.helm_chart_versions" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>string</code></td> + <td>Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this version (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the version</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the version in bytes (wire: totalSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>string</code></td> + <td>Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this version (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the version</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the version in bytes (wire: totalSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>string</code></td> + <td>Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this version (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the version</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the version in bytes (wire: totalSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>string</code></td> + <td>Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this version (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the version</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the version in bytes (wire: totalSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Get chart version in team as guest</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Get chart version in org as guest</td> +</tr> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-sort_order"><code>sort_order</code></a>, <a href="#parameter-release_type"><code>release_type</code></a></td> + <td>List chart versions in team as guest</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-sort_order"><code>sort_order</code></a>, <a href="#parameter-release_type"><code>release_type</code></a></td> + <td>List chart versions in org as guest</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact name</td> +</tr> +<tr id="parameter-org_name"> + <td><CopyableCode code="org_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Organization name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-release_type"> + <td><CopyableCode code="release_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Release Type</td> +</tr> +<tr id="parameter-sort_order"> + <td><CopyableCode code="sort_order" /></td> + <td><code>string (UTF-8)</code></td> + <td>Sort order</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +Get chart version in team as guest + +```sql +SELECT +id, +attributes, +created_by_user, +created_date, +custom_metrics, +description, +is_signed, +malware_scan_date, +malware_scan_status, +policy, +release_type, +status, +storage_version, +total_file_count, +total_size_in_bytes, +updated_date +FROM nvidia.catalog.helm_chart_versions +WHERE org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND version_id = '{{ version_id }}' -- required +; +``` +</TabItem> +<TabItem value="get"> + +Get chart version in org as guest + +```sql +SELECT +id, +attributes, +created_by_user, +created_date, +custom_metrics, +description, +is_signed, +malware_scan_date, +malware_scan_status, +policy, +release_type, +status, +storage_version, +total_file_count, +total_size_in_bytes, +updated_date +FROM nvidia.catalog.helm_chart_versions +WHERE org_name = '{{ org_name }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND version_id = '{{ version_id }}' -- required +; +``` +</TabItem> +<TabItem value="list_by_team"> + +List chart versions in team as guest + +```sql +SELECT +id, +attributes, +created_by_user, +created_date, +custom_metrics, +description, +is_signed, +malware_scan_date, +malware_scan_status, +policy, +release_type, +status, +storage_version, +total_file_count, +total_size_in_bytes, +updated_date +FROM nvidia.catalog.helm_chart_versions +WHERE org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND sort_order = '{{ sort_order }}' +AND release_type = '{{ release_type }}' +; +``` +</TabItem> +<TabItem value="list"> + +List chart versions in org as guest + +```sql +SELECT +id, +attributes, +created_by_user, +created_date, +custom_metrics, +description, +is_signed, +malware_scan_date, +malware_scan_status, +policy, +release_type, +status, +storage_version, +total_file_count, +total_size_in_bytes, +updated_date +FROM nvidia.catalog.helm_chart_versions +WHERE org_name = '{{ org_name }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND sort_order = '{{ sort_order }}' +AND release_type = '{{ release_type }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/catalog/index.md b/website/docs/services/catalog/index.md new file mode 100644 index 0000000..8f243ca --- /dev/null +++ b/website/docs/services/catalog/index.md @@ -0,0 +1,52 @@ +--- +title: catalog +hide_title: false +hide_table_of_contents: false +keywords: + - catalog + - nvidia + - stackql + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +catalog service documentation. + +:::info[Service Summary] + +total resources: __21__ + +::: + +## Resources +<div class="row"> +<div class="providerDocColumn"> +<a href="/services/catalog/artifact_deployment_params/">artifact_deployment_params</a><br /> +<a href="/services/catalog/artifact_files/">artifact_files</a><br /> +<a href="/services/catalog/artifact_specs/">artifact_specs</a><br /> +<a href="/services/catalog/artifacts/">artifacts</a><br /> +<a href="/services/catalog/collection_artifacts/">collection_artifacts</a><br /> +<a href="/services/catalog/collections/">collections</a><br /> +<a href="/services/catalog/csp_deployment_params/">csp_deployment_params</a><br /> +<a href="/services/catalog/csp_deployment_params_meta/">csp_deployment_params_meta</a><br /> +<a href="/services/catalog/csps/">csps</a><br /> +<a href="/services/catalog/gpus/">gpus</a><br /> +<a href="/services/catalog/helm_chart_versions/">helm_chart_versions</a> +</div> +<div class="providerDocColumn"> +<a href="/services/catalog/model_files/">model_files</a><br /> +<a href="/services/catalog/model_versions/">model_versions</a><br /> +<a href="/services/catalog/models/">models</a><br /> +<a href="/services/catalog/nim_metadata/">nim_metadata</a><br /> +<a href="/services/catalog/recipe_files/">recipe_files</a><br /> +<a href="/services/catalog/recipe_versions/">recipe_versions</a><br /> +<a href="/services/catalog/recipes/">recipes</a><br /> +<a href="/services/catalog/resource_files/">resource_files</a><br /> +<a href="/services/catalog/resource_versions/">resource_versions</a><br /> +<a href="/services/catalog/resources/">resources</a> +</div> +</div> \ No newline at end of file diff --git a/website/docs/services/catalog/model_files/index.md b/website/docs/services/catalog/model_files/index.md new file mode 100644 index 0000000..39077a9 --- /dev/null +++ b/website/docs/services/catalog/model_files/index.md @@ -0,0 +1,257 @@ +--- +title: model_files +hide_title: false +hide_table_of_contents: false +keywords: + - model_files + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>model_files</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="model_files" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.model_files" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the file</td> +</tr> +<tr> + <td><CopyableCode code="path" /></td> + <td><code>string</code></td> + <td>Relative file path from the root of the model</td> +</tr> +<tr> + <td><CopyableCode code="sha256_base64" /></td> + <td><code>string</code></td> + <td>Base64 encoded sha256 hash of the artifact file</td> +</tr> +<tr> + <td><CopyableCode code="size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the file in bytes (wire: sizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the file</td> +</tr> +<tr> + <td><CopyableCode code="path" /></td> + <td><code>string</code></td> + <td>Relative file path from the root of the model</td> +</tr> +<tr> + <td><CopyableCode code="sha256_base64" /></td> + <td><code>string</code></td> + <td>Base64 encoded sha256 hash of the artifact file</td> +</tr> +<tr> + <td><CopyableCode code="size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the file in bytes (wire: sizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-model_name"><code>model_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_reference"><code>page_reference</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>List files of the model version in team as guest</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-model_name"><code>model_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_reference"><code>page_reference</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>List files of the model version in org as guest</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-model_name"> + <td><CopyableCode code="model_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Model name</td> +</tr> +<tr id="parameter-org_name"> + <td><CopyableCode code="org_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Organization name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_reference"> + <td><CopyableCode code="page_reference" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page reference</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +List files of the model version in team as guest + +```sql +SELECT +created_date, +description, +path, +sha256_base64, +size_in_bytes +FROM nvidia.catalog.model_files +WHERE org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND model_name = '{{ model_name }}' -- required +AND version_id = '{{ version_id }}' -- required +AND page_size = '{{ page_size }}' +AND page_reference = '{{ page_reference }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +<TabItem value="list"> + +List files of the model version in org as guest + +```sql +SELECT +created_date, +description, +path, +sha256_base64, +size_in_bytes +FROM nvidia.catalog.model_files +WHERE org_name = '{{ org_name }}' -- required +AND model_name = '{{ model_name }}' -- required +AND version_id = '{{ version_id }}' -- required +AND page_size = '{{ page_size }}' +AND page_reference = '{{ page_reference }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/catalog/model_versions/index.md b/website/docs/services/catalog/model_versions/index.md new file mode 100644 index 0000000..95eed45 --- /dev/null +++ b/website/docs/services/catalog/model_versions/index.md @@ -0,0 +1,875 @@ +--- +title: model_versions +hide_title: false +hide_table_of_contents: false +keywords: + - model_versions + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>model_versions</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="model_versions" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.model_versions" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this model reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this model was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this model (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the model version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>Model size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this model trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_container_configuration" /></td> + <td><code>object</code></td> + <td>NVCF container configuration parameters (wire: nvcfContainerConfiguration)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_deployment_specification" /></td> + <td><code>object</code></td> + <td>NVCF deployment specification (wire: nvcfDeploymentSpecification)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the model in bytes (wire: totalSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this model reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this model was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this model (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the model version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>Model size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this model trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_container_configuration" /></td> + <td><code>object</code></td> + <td>NVCF container configuration parameters (wire: nvcfContainerConfiguration)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_deployment_specification" /></td> + <td><code>object</code></td> + <td>NVCF deployment specification (wire: nvcfDeploymentSpecification)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the model in bytes (wire: totalSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this model reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this model was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this model (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the model version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>Model size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this model trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_container_configuration" /></td> + <td><code>object</code></td> + <td>NVCF container configuration parameters (wire: nvcfContainerConfiguration)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_deployment_specification" /></td> + <td><code>object</code></td> + <td>NVCF deployment specification (wire: nvcfDeploymentSpecification)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the model in bytes (wire: totalSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this model reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this model was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this model (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the model version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>Model size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this model trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_container_configuration" /></td> + <td><code>object</code></td> + <td>NVCF container configuration parameters (wire: nvcfContainerConfiguration)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_deployment_specification" /></td> + <td><code>object</code></td> + <td>NVCF deployment specification (wire: nvcfDeploymentSpecification)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the model in bytes (wire: totalSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-model_name"><code>model_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Get model version in team as guest</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-model_name"><code>model_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Get model version in org as guest</td> +</tr> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-model_name"><code>model_name</code></a></td> + <td><a href="#parameter-release_type"><code>release_type</code></a>, <a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-sort_order"><code>sort_order</code></a></td> + <td>List model versions in team as guest</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-model_name"><code>model_name</code></a></td> + <td><a href="#parameter-release_type"><code>release_type</code></a>, <a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-sort_order"><code>sort_order</code></a></td> + <td>List model versions in org as guest</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-model_name"> + <td><CopyableCode code="model_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Model name</td> +</tr> +<tr id="parameter-org_name"> + <td><CopyableCode code="org_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Organization name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-release_type"> + <td><CopyableCode code="release_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Release Type</td> +</tr> +<tr id="parameter-sort_order"> + <td><CopyableCode code="sort_order" /></td> + <td><code>string (UTF-8)</code></td> + <td>Sort order</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +Get model version in team as guest + +```sql +SELECT +id, +version_id, +owner_name, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +nvcf_container_configuration, +nvcf_deployment_specification, +other_contents, +policy, +release_type, +status, +storage_version, +total_file_count, +total_size_in_bytes, +updated_date +FROM nvidia.catalog.model_versions +WHERE org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND model_name = '{{ model_name }}' -- required +AND version_id = '{{ version_id }}' -- required +; +``` +</TabItem> +<TabItem value="get"> + +Get model version in org as guest + +```sql +SELECT +id, +version_id, +owner_name, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +nvcf_container_configuration, +nvcf_deployment_specification, +other_contents, +policy, +release_type, +status, +storage_version, +total_file_count, +total_size_in_bytes, +updated_date +FROM nvidia.catalog.model_versions +WHERE org_name = '{{ org_name }}' -- required +AND model_name = '{{ model_name }}' -- required +AND version_id = '{{ version_id }}' -- required +; +``` +</TabItem> +<TabItem value="list_by_team"> + +List model versions in team as guest + +```sql +SELECT +id, +version_id, +owner_name, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +nvcf_container_configuration, +nvcf_deployment_specification, +other_contents, +policy, +release_type, +status, +storage_version, +total_file_count, +total_size_in_bytes, +updated_date +FROM nvidia.catalog.model_versions +WHERE org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND model_name = '{{ model_name }}' -- required +AND release_type = '{{ release_type }}' +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND sort_order = '{{ sort_order }}' +; +``` +</TabItem> +<TabItem value="list"> + +List model versions in org as guest + +```sql +SELECT +id, +version_id, +owner_name, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +nvcf_container_configuration, +nvcf_deployment_specification, +other_contents, +policy, +release_type, +status, +storage_version, +total_file_count, +total_size_in_bytes, +updated_date +FROM nvidia.catalog.model_versions +WHERE org_name = '{{ org_name }}' -- required +AND model_name = '{{ model_name }}' -- required +AND release_type = '{{ release_type }}' +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND sort_order = '{{ sort_order }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/catalog/models/index.md b/website/docs/services/catalog/models/index.md new file mode 100644 index 0000000..f89232f --- /dev/null +++ b/website/docs/services/catalog/models/index.md @@ -0,0 +1,936 @@ +--- +title: models +hide_title: false +hide_table_of_contents: false +keywords: + - models + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>models</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="models" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.models" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the model</td> +</tr> +<tr> + <td><CopyableCode code="encryption_key_id" /></td> + <td><code>string</code></td> + <td>ID of the customer managed encryption key associated with this artifact (wire: encryptionKeyId)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the model belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of model's owner (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the model belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td>Application of the model</td> +</tr> +<tr> + <td><CopyableCode code="bias" /></td> + <td><code>string</code></td> + <td>Text describing bias in the model</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>organization that built the repository (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the model</td> +</tr> +<tr> + <td><CopyableCode code="explainability" /></td> + <td><code>string</code></td> + <td>Text describing explainability for this model</td> +</tr> +<tr> + <td><CopyableCode code="framework" /></td> + <td><code>string</code></td> + <td>Framework used to train this model</td> +</tr> +<tr> + <td><CopyableCode code="has_playground" /></td> + <td><code>boolean</code></td> + <td>indicate if the Model has AI Playground configured (wire: hasPlayground)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the model has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if model is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_playground_enabled" /></td> + <td><code>boolean</code></td> + <td>indicate if AI Playground is enabled in the catalog (wire: isPlaygroundEnabled)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if model is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory used for the latest version (wire: latestVersionGpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td>Precision this model was trained with</td> +</tr> +<tr> + <td><CopyableCode code="privacy" /></td> + <td><code>string</code></td> + <td>Text describing the privacy for this model</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>organization that published the repository</td> +</tr> +<tr> + <td><CopyableCode code="safety_and_security" /></td> + <td><code>string</code></td> + <td>Text for describing the safety and security in the model (wire: safetyAndSecurity)</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the model (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +<tr> + <td><CopyableCode code="versions" /></td> + <td><code>array</code></td> + <td></td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the model</td> +</tr> +<tr> + <td><CopyableCode code="encryption_key_id" /></td> + <td><code>string</code></td> + <td>ID of the customer managed encryption key associated with this artifact (wire: encryptionKeyId)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the model belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of model's owner (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the model belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td>Application of the model</td> +</tr> +<tr> + <td><CopyableCode code="bias" /></td> + <td><code>string</code></td> + <td>Text describing bias in the model</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>organization that built the repository (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the model</td> +</tr> +<tr> + <td><CopyableCode code="explainability" /></td> + <td><code>string</code></td> + <td>Text describing explainability for this model</td> +</tr> +<tr> + <td><CopyableCode code="framework" /></td> + <td><code>string</code></td> + <td>Framework used to train this model</td> +</tr> +<tr> + <td><CopyableCode code="has_playground" /></td> + <td><code>boolean</code></td> + <td>indicate if the Model has AI Playground configured (wire: hasPlayground)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the model has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if model is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_playground_enabled" /></td> + <td><code>boolean</code></td> + <td>indicate if AI Playground is enabled in the catalog (wire: isPlaygroundEnabled)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if model is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory used for the latest version (wire: latestVersionGpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td>Precision this model was trained with</td> +</tr> +<tr> + <td><CopyableCode code="privacy" /></td> + <td><code>string</code></td> + <td>Text describing the privacy for this model</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>organization that published the repository</td> +</tr> +<tr> + <td><CopyableCode code="safety_and_security" /></td> + <td><code>string</code></td> + <td>Text for describing the safety and security in the model (wire: safetyAndSecurity)</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the model (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +<tr> + <td><CopyableCode code="versions" /></td> + <td><code>array</code></td> + <td></td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the model</td> +</tr> +<tr> + <td><CopyableCode code="encryption_key_id" /></td> + <td><code>string</code></td> + <td>ID of the customer managed encryption key associated with this artifact (wire: encryptionKeyId)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the model belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of model's owner (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the model belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td>Application of the model</td> +</tr> +<tr> + <td><CopyableCode code="bias" /></td> + <td><code>string</code></td> + <td>Text describing bias in the model</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>organization that built the repository (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the model</td> +</tr> +<tr> + <td><CopyableCode code="explainability" /></td> + <td><code>string</code></td> + <td>Text describing explainability for this model</td> +</tr> +<tr> + <td><CopyableCode code="framework" /></td> + <td><code>string</code></td> + <td>Framework used to train this model</td> +</tr> +<tr> + <td><CopyableCode code="has_playground" /></td> + <td><code>boolean</code></td> + <td>indicate if the Model has AI Playground configured (wire: hasPlayground)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the model has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if model is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_playground_enabled" /></td> + <td><code>boolean</code></td> + <td>indicate if AI Playground is enabled in the catalog (wire: isPlaygroundEnabled)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if model is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory used for the latest version (wire: latestVersionGpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td>Precision this model was trained with</td> +</tr> +<tr> + <td><CopyableCode code="privacy" /></td> + <td><code>string</code></td> + <td>Text describing the privacy for this model</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>organization that published the repository</td> +</tr> +<tr> + <td><CopyableCode code="safety_and_security" /></td> + <td><code>string</code></td> + <td>Text for describing the safety and security in the model (wire: safetyAndSecurity)</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the model (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +<tr> + <td><CopyableCode code="versions" /></td> + <td><code>array</code></td> + <td></td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-model_name"><code>model_name</code></a></td> + <td><a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>This operation gets info of a model in the org/team as guest.</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-model_name"><code>model_name</code></a></td> + <td><a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>This operation gets info of a model in the org as guest.</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_reference"><code>page_reference</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>This operation lists public models.</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-model_name"> + <td><CopyableCode code="model_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Model name</td> +</tr> +<tr id="parameter-org_name"> + <td><CopyableCode code="org_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Organization name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_reference"> + <td><CopyableCode code="page_reference" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page reference</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-remove_unresolved_labels"> + <td><CopyableCode code="remove_unresolved_labels" /></td> + <td><code>boolean</code></td> + <td>Remove unresolved labels</td> +</tr> +<tr id="parameter-resolve_labels"> + <td><CopyableCode code="resolve_labels" /></td> + <td><code>boolean</code></td> + <td>Resolve labels</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +This operation gets info of a model in the org/team as guest. + +```sql +SELECT +name, +encryption_key_id, +latest_version_id, +display_name, +org_name, +owner_name, +team_name, +access_type, +application, +bias, +built_by, +can_guest_download, +created_date, +description, +explainability, +framework, +has_playground, +has_signed_version, +is_favourite, +is_playground_enabled, +is_public, +is_read_only, +labels, +latest_version_gpu_model, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +policy_labels, +precision, +privacy, +product_names, +public_dataset_used, +publisher, +safety_and_security, +short_description, +updated_date, +versions +FROM nvidia.catalog.models +WHERE org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND model_name = '{{ model_name }}' -- required +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="get"> + +This operation gets info of a model in the org as guest. + +```sql +SELECT +name, +encryption_key_id, +latest_version_id, +display_name, +org_name, +owner_name, +team_name, +access_type, +application, +bias, +built_by, +can_guest_download, +created_date, +description, +explainability, +framework, +has_playground, +has_signed_version, +is_favourite, +is_playground_enabled, +is_public, +is_read_only, +labels, +latest_version_gpu_model, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +policy_labels, +precision, +privacy, +product_names, +public_dataset_used, +publisher, +safety_and_security, +short_description, +updated_date, +versions +FROM nvidia.catalog.models +WHERE org_name = '{{ org_name }}' -- required +AND model_name = '{{ model_name }}' -- required +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="list"> + +This operation lists public models. + +```sql +SELECT +name, +encryption_key_id, +latest_version_id, +display_name, +org_name, +owner_name, +team_name, +access_type, +application, +bias, +built_by, +can_guest_download, +created_date, +description, +explainability, +framework, +has_playground, +has_signed_version, +is_favourite, +is_playground_enabled, +is_public, +is_read_only, +labels, +latest_version_gpu_model, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +policy_labels, +precision, +privacy, +product_names, +public_dataset_used, +publisher, +safety_and_security, +short_description, +updated_date, +versions +FROM nvidia.catalog.models +WHERE page_size = '{{ page_size }}' +AND page_reference = '{{ page_reference }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/catalog/nim_metadata/index.md b/website/docs/services/catalog/nim_metadata/index.md new file mode 100644 index 0000000..57b94f7 --- /dev/null +++ b/website/docs/services/catalog/nim_metadata/index.md @@ -0,0 +1,157 @@ +--- +title: nim_metadata +hide_title: false +hide_table_of_contents: false +keywords: + - nim_metadata + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>nim_metadata</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="nim_metadata" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.nim_metadata" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team"><code>team</code></a>, <a href="#parameter-nim_name"><code>nim_name</code></a>, <a href="#parameter-tag"><code>tag</code></a></td> + <td></td> + <td>Registers NIM profile metadata for the given team, NIM name, and tag. This is a placeholder that validates the supplied profiles and echoes the provided fields back to the caller.<br />SSA: requires the following scope `createNimMetadata`<br /></td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-nim_name"> + <td><CopyableCode code="nim_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>NIM name</td> +</tr> +<tr id="parameter-tag"> + <td><CopyableCode code="tag" /></td> + <td><code>string (UTF-8)</code></td> + <td>NIM tag</td> +</tr> +<tr id="parameter-team"> + <td><CopyableCode code="team" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +</tbody> +</table> + +## `INSERT` examples + +<Tabs + defaultValue="create" + values={[ + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create"> + +Registers NIM profile metadata for the given team, NIM name, and tag. This is a placeholder that validates the supplied profiles and echoes the provided fields back to the caller.<br />SSA: requires the following scope `createNimMetadata`<br /> + +```sql +INSERT INTO nvidia.catalog.nim_metadata ( +profiles, +team, +nim_name, +tag +) +SELECT +'{{ profiles }}', +'{{ team }}', +'{{ nim_name }}', +'{{ tag }}' +RETURNING +profiles +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: nim_metadata + props: + - name: team + value: "{{ team }}" + description: Required parameter for the nim_metadata resource. + - name: nim_name + value: "{{ nim_name }}" + description: Required parameter for the nim_metadata resource. + - name: tag + value: "{{ tag }}" + description: Required parameter for the nim_metadata resource. + - name: profiles + value: + - buildable_profile: {{ buildable_profile }} + checksum: "{{ checksum }}" + feat_lora: {{ feat_lora }} + form_factor: "{{ form_factor }}" + gpu: "{{ gpu }}" + gpu_device: "{{ gpu_device }}" + inference_backend: "{{ inference_backend }}" + latency: "{{ latency }}" + min_vram_per_device_gb: {{ min_vram_per_device_gb }} + pipeline_parallel_size: {{ pipeline_parallel_size }} + precision: "{{ precision }}" + profile_id: "{{ profile_id }}" + tensor_parallel_size: {{ tensor_parallel_size }} + workspace_hash: "{{ workspace_hash }}" +`}</CodeBlock> + +</TabItem> +</Tabs> diff --git a/website/docs/services/catalog/recipe_files/index.md b/website/docs/services/catalog/recipe_files/index.md new file mode 100644 index 0000000..eb1d0db --- /dev/null +++ b/website/docs/services/catalog/recipe_files/index.md @@ -0,0 +1,257 @@ +--- +title: recipe_files +hide_title: false +hide_table_of_contents: false +keywords: + - recipe_files + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>recipe_files</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="recipe_files" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.recipe_files" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the file</td> +</tr> +<tr> + <td><CopyableCode code="path" /></td> + <td><code>string</code></td> + <td>Relative file path from the root of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="sha256_base64" /></td> + <td><code>string</code></td> + <td>Base64 encoded sha256 hash of the artifact file</td> +</tr> +<tr> + <td><CopyableCode code="size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the file in bytes (wire: sizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the file</td> +</tr> +<tr> + <td><CopyableCode code="path" /></td> + <td><code>string</code></td> + <td>Relative file path from the root of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="sha256_base64" /></td> + <td><code>string</code></td> + <td>Base64 encoded sha256 hash of the artifact file</td> +</tr> +<tr> + <td><CopyableCode code="size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the file in bytes (wire: sizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_reference"><code>page_reference</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>List files of the recipe version in team as guest</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_reference"><code>page_reference</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>List files of the recipe version in org as guest</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-org_name"> + <td><CopyableCode code="org_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Organization name</td> +</tr> +<tr id="parameter-recipe_name"> + <td><CopyableCode code="recipe_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Recipe name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_reference"> + <td><CopyableCode code="page_reference" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page reference</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +List files of the recipe version in team as guest + +```sql +SELECT +created_date, +description, +path, +sha256_base64, +size_in_bytes +FROM nvidia.catalog.recipe_files +WHERE org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND version_id = '{{ version_id }}' -- required +AND page_size = '{{ page_size }}' +AND page_reference = '{{ page_reference }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +<TabItem value="list"> + +List files of the recipe version in org as guest + +```sql +SELECT +created_date, +description, +path, +sha256_base64, +size_in_bytes +FROM nvidia.catalog.recipe_files +WHERE org_name = '{{ org_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND version_id = '{{ version_id }}' -- required +AND page_size = '{{ page_size }}' +AND page_reference = '{{ page_reference }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/catalog/recipe_versions/index.md b/website/docs/services/catalog/recipe_versions/index.md new file mode 100644 index 0000000..5a7c106 --- /dev/null +++ b/website/docs/services/catalog/recipe_versions/index.md @@ -0,0 +1,875 @@ +--- +title: recipe_versions +hide_title: false +hide_table_of_contents: false +keywords: + - recipe_versions + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>recipe_versions</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="recipe_versions" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.recipe_versions" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this recipe reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this recipe was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this recipe (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>recipe size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this recipe trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="release_notes" /></td> + <td><code>string</code></td> + <td>Text describing this release (wire: releaseNotes)</td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the recipe in bytes (wire: totalSizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this recipe reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this recipe was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this recipe (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>recipe size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this recipe trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="release_notes" /></td> + <td><code>string</code></td> + <td>Text describing this release (wire: releaseNotes)</td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the recipe in bytes (wire: totalSizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this recipe reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this recipe was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this recipe (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>recipe size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this recipe trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="release_notes" /></td> + <td><code>string</code></td> + <td>Text describing this release (wire: releaseNotes)</td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the recipe in bytes (wire: totalSizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this recipe reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this recipe was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this recipe (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>recipe size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this recipe trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="release_notes" /></td> + <td><code>string</code></td> + <td>Text describing this release (wire: releaseNotes)</td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the recipe in bytes (wire: totalSizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Get recipe version in team as guest</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Get recipe version in org as guest</td> +</tr> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-sort_order"><code>sort_order</code></a>, <a href="#parameter-release_type"><code>release_type</code></a></td> + <td>List recipe versions in team as guest</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-sort_order"><code>sort_order</code></a>, <a href="#parameter-release_type"><code>release_type</code></a></td> + <td>List recipe versions in org as guest</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-org_name"> + <td><CopyableCode code="org_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Organization name</td> +</tr> +<tr id="parameter-recipe_name"> + <td><CopyableCode code="recipe_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Recipe name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-release_type"> + <td><CopyableCode code="release_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Release Type</td> +</tr> +<tr id="parameter-sort_order"> + <td><CopyableCode code="sort_order" /></td> + <td><code>string (UTF-8)</code></td> + <td>Sort order</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +Get recipe version in team as guest + +```sql +SELECT +id, +version_id, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +other_contents, +performance, +policy, +quick_start_guide, +release_notes, +release_type, +setup, +status, +storage_version, +total_file_count, +total_size_in_bytes +FROM nvidia.catalog.recipe_versions +WHERE org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND version_id = '{{ version_id }}' -- required +; +``` +</TabItem> +<TabItem value="get"> + +Get recipe version in org as guest + +```sql +SELECT +id, +version_id, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +other_contents, +performance, +policy, +quick_start_guide, +release_notes, +release_type, +setup, +status, +storage_version, +total_file_count, +total_size_in_bytes +FROM nvidia.catalog.recipe_versions +WHERE org_name = '{{ org_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND version_id = '{{ version_id }}' -- required +; +``` +</TabItem> +<TabItem value="list_by_team"> + +List recipe versions in team as guest + +```sql +SELECT +id, +version_id, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +other_contents, +performance, +policy, +quick_start_guide, +release_notes, +release_type, +setup, +status, +storage_version, +total_file_count, +total_size_in_bytes +FROM nvidia.catalog.recipe_versions +WHERE org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND sort_order = '{{ sort_order }}' +AND release_type = '{{ release_type }}' +; +``` +</TabItem> +<TabItem value="list"> + +List recipe versions in org as guest + +```sql +SELECT +id, +version_id, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +other_contents, +performance, +policy, +quick_start_guide, +release_notes, +release_type, +setup, +status, +storage_version, +total_file_count, +total_size_in_bytes +FROM nvidia.catalog.recipe_versions +WHERE org_name = '{{ org_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND sort_order = '{{ sort_order }}' +AND release_type = '{{ release_type }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/catalog/recipes/index.md b/website/docs/services/catalog/recipes/index.md new file mode 100644 index 0000000..ca4788c --- /dev/null +++ b/website/docs/services/catalog/recipes/index.md @@ -0,0 +1,840 @@ +--- +title: recipes +hide_title: false +hide_table_of_contents: false +keywords: + - recipes + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>recipes</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="recipes" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.recipes" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the recipe belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the recipe belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="advanced" /></td> + <td><code>string</code></td> + <td>Text for describing advanced information</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td> (CLASSIFICATION, OBJECT_DETECTION, SEGMENTATION, TRANSLATION, TEXT_TO_SPEECH, RECOMMENDER, SENTIMENT, NLP, KUBEFLOW_PIPELINE, OTHER, SPEAKER_VERIFICATION, PUNCTUATION_AND_CAPITALIZATION, DIALOG_STATE_TRACKING, SPEAKER_DIARIZATION, SPEAKER_RECOGNITION, SPEECH_SYNTHESIS, VOICE_ACTIVITY_DETECTION, SPEECH_RECOGNITION, LANGUAGE_MODELING, NAMED_ENTITY_RECOGNITION, TEXT_CLASSIFICATION, TEXT_PROCESSING, QUESTION_ANSWERING, CONTENT_GENERATION)</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the recipe (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the recipe has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if recipe is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this recipe is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model this recipe produces (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td> (FP16, FP32, INT8, FPBOTH, OTHER, ALL)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this recipe</td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="related_models" /></td> + <td><code>array</code></td> + <td> (wire: relatedModels)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the recipe (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="training_framework" /></td> + <td><code>string</code></td> + <td> (TensorFlow, Caffe2, CNTK, Torch, PyTorch, MXNet, Keras, Other, TransferLearningToolkit, TensorFlow2) (wire: trainingFramework)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the recipe belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the recipe belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="advanced" /></td> + <td><code>string</code></td> + <td>Text for describing advanced information</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td> (CLASSIFICATION, OBJECT_DETECTION, SEGMENTATION, TRANSLATION, TEXT_TO_SPEECH, RECOMMENDER, SENTIMENT, NLP, KUBEFLOW_PIPELINE, OTHER, SPEAKER_VERIFICATION, PUNCTUATION_AND_CAPITALIZATION, DIALOG_STATE_TRACKING, SPEAKER_DIARIZATION, SPEAKER_RECOGNITION, SPEECH_SYNTHESIS, VOICE_ACTIVITY_DETECTION, SPEECH_RECOGNITION, LANGUAGE_MODELING, NAMED_ENTITY_RECOGNITION, TEXT_CLASSIFICATION, TEXT_PROCESSING, QUESTION_ANSWERING, CONTENT_GENERATION)</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the recipe (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the recipe has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if recipe is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this recipe is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model this recipe produces (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td> (FP16, FP32, INT8, FPBOTH, OTHER, ALL)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this recipe</td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="related_models" /></td> + <td><code>array</code></td> + <td> (wire: relatedModels)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the recipe (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="training_framework" /></td> + <td><code>string</code></td> + <td> (TensorFlow, Caffe2, CNTK, Torch, PyTorch, MXNet, Keras, Other, TransferLearningToolkit, TensorFlow2) (wire: trainingFramework)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the recipe belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the recipe belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="advanced" /></td> + <td><code>string</code></td> + <td>Text for describing advanced information</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td> (CLASSIFICATION, OBJECT_DETECTION, SEGMENTATION, TRANSLATION, TEXT_TO_SPEECH, RECOMMENDER, SENTIMENT, NLP, KUBEFLOW_PIPELINE, OTHER, SPEAKER_VERIFICATION, PUNCTUATION_AND_CAPITALIZATION, DIALOG_STATE_TRACKING, SPEAKER_DIARIZATION, SPEAKER_RECOGNITION, SPEECH_SYNTHESIS, VOICE_ACTIVITY_DETECTION, SPEECH_RECOGNITION, LANGUAGE_MODELING, NAMED_ENTITY_RECOGNITION, TEXT_CLASSIFICATION, TEXT_PROCESSING, QUESTION_ANSWERING, CONTENT_GENERATION)</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the recipe (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the recipe has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if recipe is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this recipe is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model this recipe produces (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td> (FP16, FP32, INT8, FPBOTH, OTHER, ALL)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this recipe</td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="related_models" /></td> + <td><code>array</code></td> + <td> (wire: relatedModels)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the recipe (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="training_framework" /></td> + <td><code>string</code></td> + <td> (TensorFlow, Caffe2, CNTK, Torch, PyTorch, MXNet, Keras, Other, TransferLearningToolkit, TensorFlow2) (wire: trainingFramework)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td><a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>Get recipe details in team as guest</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td><a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>Get recipe details in org as guest</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>List public recipes</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-org_name"> + <td><CopyableCode code="org_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Organization name</td> +</tr> +<tr id="parameter-recipe_name"> + <td><CopyableCode code="recipe_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Recipe name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-remove_unresolved_labels"> + <td><CopyableCode code="remove_unresolved_labels" /></td> + <td><code>boolean</code></td> + <td>Remove unresolved labels</td> +</tr> +<tr id="parameter-resolve_labels"> + <td><CopyableCode code="resolve_labels" /></td> + <td><code>boolean</code></td> + <td>Resolve labels</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +Get recipe details in team as guest + +```sql +SELECT +name, +latest_version_id, +display_name, +org_name, +team_name, +access_type, +advanced, +application, +built_by, +can_guest_download, +created_date, +description, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +performance, +policy_labels, +precision, +product_names, +public_dataset_used, +publisher, +quick_start_guide, +related_models, +setup, +short_description, +training_framework, +updated_date +FROM nvidia.catalog.recipes +WHERE org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="get"> + +Get recipe details in org as guest + +```sql +SELECT +name, +latest_version_id, +display_name, +org_name, +team_name, +access_type, +advanced, +application, +built_by, +can_guest_download, +created_date, +description, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +performance, +policy_labels, +precision, +product_names, +public_dataset_used, +publisher, +quick_start_guide, +related_models, +setup, +short_description, +training_framework, +updated_date +FROM nvidia.catalog.recipes +WHERE org_name = '{{ org_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="list"> + +List public recipes + +```sql +SELECT +name, +latest_version_id, +display_name, +org_name, +team_name, +access_type, +advanced, +application, +built_by, +can_guest_download, +created_date, +description, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +performance, +policy_labels, +precision, +product_names, +public_dataset_used, +publisher, +quick_start_guide, +related_models, +setup, +short_description, +training_framework, +updated_date +FROM nvidia.catalog.recipes +WHERE page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/catalog/resource_files/index.md b/website/docs/services/catalog/resource_files/index.md new file mode 100644 index 0000000..ecae865 --- /dev/null +++ b/website/docs/services/catalog/resource_files/index.md @@ -0,0 +1,257 @@ +--- +title: resource_files +hide_title: false +hide_table_of_contents: false +keywords: + - resource_files + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>resource_files</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="resource_files" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.resource_files" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the file</td> +</tr> +<tr> + <td><CopyableCode code="path" /></td> + <td><code>string</code></td> + <td>Relative file path from the root of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="sha256_base64" /></td> + <td><code>string</code></td> + <td>Base64 encoded sha256 hash of the artifact file</td> +</tr> +<tr> + <td><CopyableCode code="size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the file in bytes (wire: sizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the file</td> +</tr> +<tr> + <td><CopyableCode code="path" /></td> + <td><code>string</code></td> + <td>Relative file path from the root of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="sha256_base64" /></td> + <td><code>string</code></td> + <td>Base64 encoded sha256 hash of the artifact file</td> +</tr> +<tr> + <td><CopyableCode code="size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the file in bytes (wire: sizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_reference"><code>page_reference</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>List files of the recipe version in team as guest</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_reference"><code>page_reference</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>List files of the recipe version in org as guest</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-org_name"> + <td><CopyableCode code="org_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Organization name</td> +</tr> +<tr id="parameter-recipe_name"> + <td><CopyableCode code="recipe_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Recipe name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_reference"> + <td><CopyableCode code="page_reference" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page reference</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +List files of the recipe version in team as guest + +```sql +SELECT +created_date, +description, +path, +sha256_base64, +size_in_bytes +FROM nvidia.catalog.resource_files +WHERE org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND version_id = '{{ version_id }}' -- required +AND page_size = '{{ page_size }}' +AND page_reference = '{{ page_reference }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +<TabItem value="list"> + +List files of the recipe version in org as guest + +```sql +SELECT +created_date, +description, +path, +sha256_base64, +size_in_bytes +FROM nvidia.catalog.resource_files +WHERE org_name = '{{ org_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND version_id = '{{ version_id }}' -- required +AND page_size = '{{ page_size }}' +AND page_reference = '{{ page_reference }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/catalog/resource_versions/index.md b/website/docs/services/catalog/resource_versions/index.md new file mode 100644 index 0000000..1f45076 --- /dev/null +++ b/website/docs/services/catalog/resource_versions/index.md @@ -0,0 +1,875 @@ +--- +title: resource_versions +hide_title: false +hide_table_of_contents: false +keywords: + - resource_versions + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>resource_versions</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="resource_versions" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.resource_versions" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this recipe reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this recipe was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this recipe (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>recipe size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this recipe trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="release_notes" /></td> + <td><code>string</code></td> + <td>Text describing this release (wire: releaseNotes)</td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the recipe in bytes (wire: totalSizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this recipe reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this recipe was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this recipe (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>recipe size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this recipe trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="release_notes" /></td> + <td><code>string</code></td> + <td>Text describing this release (wire: releaseNotes)</td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the recipe in bytes (wire: totalSizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this recipe reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this recipe was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this recipe (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>recipe size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this recipe trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="release_notes" /></td> + <td><code>string</code></td> + <td>Text describing this release (wire: releaseNotes)</td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the recipe in bytes (wire: totalSizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this recipe reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this recipe was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this recipe (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>recipe size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this recipe trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="release_notes" /></td> + <td><code>string</code></td> + <td>Text describing this release (wire: releaseNotes)</td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the recipe in bytes (wire: totalSizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Get recipe version in team as guest</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Get recipe version in org as guest</td> +</tr> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-sort_order"><code>sort_order</code></a>, <a href="#parameter-release_type"><code>release_type</code></a></td> + <td>List recipe versions in team as guest</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-sort_order"><code>sort_order</code></a>, <a href="#parameter-release_type"><code>release_type</code></a></td> + <td>List recipe versions in org as guest</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-org_name"> + <td><CopyableCode code="org_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Organization name</td> +</tr> +<tr id="parameter-recipe_name"> + <td><CopyableCode code="recipe_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Recipe name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-release_type"> + <td><CopyableCode code="release_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Release Type</td> +</tr> +<tr id="parameter-sort_order"> + <td><CopyableCode code="sort_order" /></td> + <td><code>string (UTF-8)</code></td> + <td>Sort order</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +Get recipe version in team as guest + +```sql +SELECT +id, +version_id, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +other_contents, +performance, +policy, +quick_start_guide, +release_notes, +release_type, +setup, +status, +storage_version, +total_file_count, +total_size_in_bytes +FROM nvidia.catalog.resource_versions +WHERE org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND version_id = '{{ version_id }}' -- required +; +``` +</TabItem> +<TabItem value="get"> + +Get recipe version in org as guest + +```sql +SELECT +id, +version_id, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +other_contents, +performance, +policy, +quick_start_guide, +release_notes, +release_type, +setup, +status, +storage_version, +total_file_count, +total_size_in_bytes +FROM nvidia.catalog.resource_versions +WHERE org_name = '{{ org_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND version_id = '{{ version_id }}' -- required +; +``` +</TabItem> +<TabItem value="list_by_team"> + +List recipe versions in team as guest + +```sql +SELECT +id, +version_id, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +other_contents, +performance, +policy, +quick_start_guide, +release_notes, +release_type, +setup, +status, +storage_version, +total_file_count, +total_size_in_bytes +FROM nvidia.catalog.resource_versions +WHERE org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND sort_order = '{{ sort_order }}' +AND release_type = '{{ release_type }}' +; +``` +</TabItem> +<TabItem value="list"> + +List recipe versions in org as guest + +```sql +SELECT +id, +version_id, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +other_contents, +performance, +policy, +quick_start_guide, +release_notes, +release_type, +setup, +status, +storage_version, +total_file_count, +total_size_in_bytes +FROM nvidia.catalog.resource_versions +WHERE org_name = '{{ org_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND sort_order = '{{ sort_order }}' +AND release_type = '{{ release_type }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/catalog/resources/index.md b/website/docs/services/catalog/resources/index.md new file mode 100644 index 0000000..4ca4dde --- /dev/null +++ b/website/docs/services/catalog/resources/index.md @@ -0,0 +1,840 @@ +--- +title: resources +hide_title: false +hide_table_of_contents: false +keywords: + - resources + - catalog + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>resources</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="resources" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.catalog.resources" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the recipe belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the recipe belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="advanced" /></td> + <td><code>string</code></td> + <td>Text for describing advanced information</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td> (CLASSIFICATION, OBJECT_DETECTION, SEGMENTATION, TRANSLATION, TEXT_TO_SPEECH, RECOMMENDER, SENTIMENT, NLP, KUBEFLOW_PIPELINE, OTHER, SPEAKER_VERIFICATION, PUNCTUATION_AND_CAPITALIZATION, DIALOG_STATE_TRACKING, SPEAKER_DIARIZATION, SPEAKER_RECOGNITION, SPEECH_SYNTHESIS, VOICE_ACTIVITY_DETECTION, SPEECH_RECOGNITION, LANGUAGE_MODELING, NAMED_ENTITY_RECOGNITION, TEXT_CLASSIFICATION, TEXT_PROCESSING, QUESTION_ANSWERING, CONTENT_GENERATION)</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the recipe (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the recipe has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if recipe is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this recipe is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model this recipe produces (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td> (FP16, FP32, INT8, FPBOTH, OTHER, ALL)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this recipe</td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="related_models" /></td> + <td><code>array</code></td> + <td> (wire: relatedModels)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the recipe (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="training_framework" /></td> + <td><code>string</code></td> + <td> (TensorFlow, Caffe2, CNTK, Torch, PyTorch, MXNet, Keras, Other, TransferLearningToolkit, TensorFlow2) (wire: trainingFramework)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the recipe belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the recipe belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="advanced" /></td> + <td><code>string</code></td> + <td>Text for describing advanced information</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td> (CLASSIFICATION, OBJECT_DETECTION, SEGMENTATION, TRANSLATION, TEXT_TO_SPEECH, RECOMMENDER, SENTIMENT, NLP, KUBEFLOW_PIPELINE, OTHER, SPEAKER_VERIFICATION, PUNCTUATION_AND_CAPITALIZATION, DIALOG_STATE_TRACKING, SPEAKER_DIARIZATION, SPEAKER_RECOGNITION, SPEECH_SYNTHESIS, VOICE_ACTIVITY_DETECTION, SPEECH_RECOGNITION, LANGUAGE_MODELING, NAMED_ENTITY_RECOGNITION, TEXT_CLASSIFICATION, TEXT_PROCESSING, QUESTION_ANSWERING, CONTENT_GENERATION)</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the recipe (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the recipe has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if recipe is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this recipe is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model this recipe produces (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td> (FP16, FP32, INT8, FPBOTH, OTHER, ALL)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this recipe</td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="related_models" /></td> + <td><code>array</code></td> + <td> (wire: relatedModels)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the recipe (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="training_framework" /></td> + <td><code>string</code></td> + <td> (TensorFlow, Caffe2, CNTK, Torch, PyTorch, MXNet, Keras, Other, TransferLearningToolkit, TensorFlow2) (wire: trainingFramework)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the recipe belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the recipe belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="advanced" /></td> + <td><code>string</code></td> + <td>Text for describing advanced information</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td> (CLASSIFICATION, OBJECT_DETECTION, SEGMENTATION, TRANSLATION, TEXT_TO_SPEECH, RECOMMENDER, SENTIMENT, NLP, KUBEFLOW_PIPELINE, OTHER, SPEAKER_VERIFICATION, PUNCTUATION_AND_CAPITALIZATION, DIALOG_STATE_TRACKING, SPEAKER_DIARIZATION, SPEAKER_RECOGNITION, SPEECH_SYNTHESIS, VOICE_ACTIVITY_DETECTION, SPEECH_RECOGNITION, LANGUAGE_MODELING, NAMED_ENTITY_RECOGNITION, TEXT_CLASSIFICATION, TEXT_PROCESSING, QUESTION_ANSWERING, CONTENT_GENERATION)</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the recipe (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the recipe has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if recipe is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this recipe is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model this recipe produces (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td> (FP16, FP32, INT8, FPBOTH, OTHER, ALL)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this recipe</td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="related_models" /></td> + <td><code>array</code></td> + <td> (wire: relatedModels)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the recipe (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="training_framework" /></td> + <td><code>string</code></td> + <td> (TensorFlow, Caffe2, CNTK, Torch, PyTorch, MXNet, Keras, Other, TransferLearningToolkit, TensorFlow2) (wire: trainingFramework)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td><a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>Get recipe details in team as guest</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td><a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>Get recipe details in org as guest</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>List public recipes</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-org_name"> + <td><CopyableCode code="org_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Organization name</td> +</tr> +<tr id="parameter-recipe_name"> + <td><CopyableCode code="recipe_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Recipe name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-remove_unresolved_labels"> + <td><CopyableCode code="remove_unresolved_labels" /></td> + <td><code>boolean</code></td> + <td>Remove unresolved labels</td> +</tr> +<tr id="parameter-resolve_labels"> + <td><CopyableCode code="resolve_labels" /></td> + <td><code>boolean</code></td> + <td>Resolve labels</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +Get recipe details in team as guest + +```sql +SELECT +name, +latest_version_id, +display_name, +org_name, +team_name, +access_type, +advanced, +application, +built_by, +can_guest_download, +created_date, +description, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +performance, +policy_labels, +precision, +product_names, +public_dataset_used, +publisher, +quick_start_guide, +related_models, +setup, +short_description, +training_framework, +updated_date +FROM nvidia.catalog.resources +WHERE org_name = '{{ org_name }}' -- required +AND team_name = '{{ team_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="get"> + +Get recipe details in org as guest + +```sql +SELECT +name, +latest_version_id, +display_name, +org_name, +team_name, +access_type, +advanced, +application, +built_by, +can_guest_download, +created_date, +description, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +performance, +policy_labels, +precision, +product_names, +public_dataset_used, +publisher, +quick_start_guide, +related_models, +setup, +short_description, +training_framework, +updated_date +FROM nvidia.catalog.resources +WHERE org_name = '{{ org_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="list"> + +List public recipes + +```sql +SELECT +name, +latest_version_id, +display_name, +org_name, +team_name, +access_type, +advanced, +application, +built_by, +can_guest_download, +created_date, +description, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +performance, +policy_labels, +precision, +product_names, +public_dataset_used, +publisher, +quick_start_guide, +related_models, +setup, +short_description, +training_framework, +updated_date +FROM nvidia.catalog.resources +WHERE page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_deployments/cluster_groups/index.md b/website/docs/services/nvcf_deployments/cluster_groups/index.md new file mode 100644 index 0000000..13c5591 --- /dev/null +++ b/website/docs/services/nvcf_deployments/cluster_groups/index.md @@ -0,0 +1,152 @@ +--- +title: cluster_groups +hide_title: false +hide_table_of_contents: false +keywords: + - cluster_groups + - nvcf_deployments + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>cluster_groups</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="cluster_groups" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_deployments.cluster_groups" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list" + values={[ + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>string (uuid)</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string (UTF-8)</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="nca_id" /></td> + <td><code>string (UTF-8)</code></td> + <td> (wire: ncaId)</td> +</tr> +<tr> + <td><CopyableCode code="authorized_nca_ids" /></td> + <td><code>array</code></td> + <td> (wire: authorizedNcaIds)</td> +</tr> +<tr> + <td><CopyableCode code="clusters" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="gpus" /></td> + <td><code>array</code></td> + <td></td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td></td> + <td>Lists Cluster Groups for the current account. The response includes cluster groups defined specifically in the current account and publicly available cluster groups such as GFN, OCI, etc. Requires a bearer token with 'list_cluster_groups' scope in HTTP Authorization header. </td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list" + values={[ + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list"> + +Lists Cluster Groups for the current account. The response includes cluster groups defined specifically in the current account and publicly available cluster groups such as GFN, OCI, etc. Requires a bearer token with 'list_cluster_groups' scope in HTTP Authorization header. + +```sql +SELECT +id, +name, +nca_id, +authorized_nca_ids, +clusters, +gpus +FROM nvidia.nvcf_deployments.cluster_groups +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_deployments/deployment_gpu_specs/index.md b/website/docs/services/nvcf_deployments/deployment_gpu_specs/index.md new file mode 100644 index 0000000..784feef --- /dev/null +++ b/website/docs/services/nvcf_deployments/deployment_gpu_specs/index.md @@ -0,0 +1,115 @@ +--- +title: deployment_gpu_specs +hide_title: false +hide_table_of_contents: false +keywords: + - deployment_gpu_specs + - nvcf_deployments + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>deployment_gpu_specs</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="deployment_gpu_specs" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_deployments.deployment_gpu_specs" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-deployment_id"><code>deployment_id</code></a>, <a href="#parameter-gpu_spec_id"><code>gpu_spec_id</code></a></td> + <td></td> + <td> Updates the GPU specification of the specified function version's deployment. It's important to note that GPU type and backend configurations cannot be modified through this endpoint. If the specified function is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. </td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-deployment_id"> + <td><CopyableCode code="deployment_id" /></td> + <td><code>string (uuid)</code></td> + <td>Deployment id</td> +</tr> +<tr id="parameter-gpu_spec_id"> + <td><CopyableCode code="gpu_spec_id" /></td> + <td><code>string (uuid)</code></td> + <td>GPU Specification id</td> +</tr> +</tbody> +</table> + +## `UPDATE` examples + +<Tabs + defaultValue="update" + values={[ + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update"> + + Updates the GPU specification of the specified function version's deployment. It's important to note that GPU type and backend configurations cannot be modified through this endpoint. If the specified function is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. + +```sql +UPDATE nvidia.nvcf_deployments.deployment_gpu_specs +SET +autoscaling_configuration = '{{ autoscaling_configuration }}', +autoscaling_configuration_policy = '{{ autoscaling_configuration_policy }}', +max_instances = {{ max_instances }}, +min_instances = {{ min_instances }} +WHERE +deployment_id = '{{ deployment_id }}' --required +AND gpu_spec_id = '{{ gpu_spec_id }}' --required +RETURNING +gpu_specification; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_deployments/deployments/index.md b/website/docs/services/nvcf_deployments/deployments/index.md new file mode 100644 index 0000000..2e8937a --- /dev/null +++ b/website/docs/services/nvcf_deployments/deployments/index.md @@ -0,0 +1,451 @@ +--- +title: deployments +hide_title: false +hide_table_of_contents: false +keywords: + - deployments + - nvcf_deployments + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>deployments</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="deployments" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_deployments.deployments" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' }, + { label: 'get_by_id', value: 'get_by_id' } + ]} +> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="deployment_id" /></td> + <td><code>string (uuid)</code></td> + <td>Last deployment id (wire: deploymentId)</td> +</tr> +<tr> + <td><CopyableCode code="function_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function id (wire: functionId)</td> +</tr> +<tr> + <td><CopyableCode code="function_version_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function version id (wire: functionVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="nca_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>NVIDIA Cloud Account Id (wire: ncaId)</td> +</tr> +<tr> + <td><CopyableCode code="function_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Function name (wire: functionName)</td> +</tr> +<tr> + <td><CopyableCode code="created_at" /></td> + <td><code>string (date_time)</code></td> + <td>Function deployment creation timestamp (wire: createdAt)</td> +</tr> +<tr> + <td><CopyableCode code="deployment_specifications" /></td> + <td><code>array</code></td> + <td>Function deployment details (wire: deploymentSpecifications)</td> +</tr> +<tr> + <td><CopyableCode code="function_status" /></td> + <td><code>string (UTF-8)</code></td> + <td>Function status (ACTIVE, DEPLOYING, ERROR, INACTIVE, DELETED, DEGRADED, DEGRADING) (wire: functionStatus)</td> +</tr> +<tr> + <td><CopyableCode code="health_info" /></td> + <td><code>array</code></td> + <td>Health info for a deployment specification is included only if there are any issues/errors. (wire: healthInfo)</td> +</tr> +<tr> + <td><CopyableCode code="last_updated_at" /></td> + <td><code>string (date_time)</code></td> + <td>Function deployment modification timestamp (wire: lastUpdatedAt)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get_by_id"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="deployment_id" /></td> + <td><code>string (uuid)</code></td> + <td>Last deployment id (wire: deploymentId)</td> +</tr> +<tr> + <td><CopyableCode code="function_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function id (wire: functionId)</td> +</tr> +<tr> + <td><CopyableCode code="function_version_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function version id (wire: functionVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="nca_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>NVIDIA Cloud Account Id (wire: ncaId)</td> +</tr> +<tr> + <td><CopyableCode code="function_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Function name (wire: functionName)</td> +</tr> +<tr> + <td><CopyableCode code="created_at" /></td> + <td><code>string (date_time)</code></td> + <td>Function deployment creation timestamp (wire: createdAt)</td> +</tr> +<tr> + <td><CopyableCode code="deployment_specifications" /></td> + <td><code>array</code></td> + <td>Function deployment details (wire: deploymentSpecifications)</td> +</tr> +<tr> + <td><CopyableCode code="function_status" /></td> + <td><code>string (UTF-8)</code></td> + <td>Function status (ACTIVE, DEPLOYING, ERROR, INACTIVE, DELETED, DEGRADED, DEGRADING) (wire: functionStatus)</td> +</tr> +<tr> + <td><CopyableCode code="health_info" /></td> + <td><code>array</code></td> + <td>Health info for a deployment specification is included only if there are any issues/errors. (wire: healthInfo)</td> +</tr> +<tr> + <td><CopyableCode code="last_updated_at" /></td> + <td><code>string (date_time)</code></td> + <td>Function deployment modification timestamp (wire: lastUpdatedAt)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-function_version_id"><code>function_version_id</code></a></td> + <td></td> + <td>Allows Account Admins to retrieve the deployment details of the specified function version. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. </td> +</tr> +<tr> + <td><a href="#get_by_id"><CopyableCode code="get_by_id" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-deployment_id"><code>deployment_id</code></a></td> + <td></td> + <td>Allows Account Admins to retrieve the deployment details of the specified deployment id. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. </td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-function_version_id"><code>function_version_id</code></a>, <a href="#parameter-deployment_specifications"><code>deployment_specifications</code></a></td> + <td></td> + <td>Initiates deployment for the specified function version. Upon invocation of this endpoint, the function's status transitions to 'DEPLOYING'. If the specified function version is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. </td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-function_version_id"><code>function_version_id</code></a>, <a href="#parameter-deployment_specifications"><code>deployment_specifications</code></a></td> + <td></td> + <td> Deprecated and will be removed soon. Use a single GPU specification update method instead. Updates the deployment specs of the specified function version. It's important to note that GPU type and backend configurations cannot be modified through this endpoint. If the specified function is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. </td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-function_version_id"><code>function_version_id</code></a></td> + <td><a href="#parameter-graceful"><code>graceful</code></a></td> + <td>Deletes the deployment associated with the specified function. Upon deletion, any active instances will be terminated, and the function's status will transition to 'INACTIVE'. To undeploy a function version gracefully, specify 'graceful=true' query parameter, allowing current tasks to complete before terminating the instances. If the specified function version is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. </td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-deployment_id"> + <td><CopyableCode code="deployment_id" /></td> + <td><code>string (uuid)</code></td> + <td>Deployment id</td> +</tr> +<tr id="parameter-function_id"> + <td><CopyableCode code="function_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function id</td> +</tr> +<tr id="parameter-function_version_id"> + <td><CopyableCode code="function_version_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function version id</td> +</tr> +<tr id="parameter-graceful"> + <td><CopyableCode code="graceful" /></td> + <td><code>boolean</code></td> + <td>Query param to deactivate function for graceful shutdown</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' }, + { label: 'get_by_id', value: 'get_by_id' } + ]} +> +<TabItem value="get"> + +Allows Account Admins to retrieve the deployment details of the specified function version. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. + +```sql +SELECT +deployment_id, +function_id, +function_version_id, +nca_id, +function_name, +created_at, +deployment_specifications, +function_status, +health_info, +last_updated_at +FROM nvidia.nvcf_deployments.deployments +WHERE function_id = '{{ function_id }}' -- required +AND function_version_id = '{{ function_version_id }}' -- required +; +``` +</TabItem> +<TabItem value="get_by_id"> + +Allows Account Admins to retrieve the deployment details of the specified deployment id. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. + +```sql +SELECT +deployment_id, +function_id, +function_version_id, +nca_id, +function_name, +created_at, +deployment_specifications, +function_status, +health_info, +last_updated_at +FROM nvidia.nvcf_deployments.deployments +WHERE deployment_id = '{{ deployment_id }}' -- required +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create" + values={[ + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create"> + +Initiates deployment for the specified function version. Upon invocation of this endpoint, the function's status transitions to 'DEPLOYING'. If the specified function version is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. + +```sql +INSERT INTO nvidia.nvcf_deployments.deployments ( +deployment_specifications, +function_id, +function_version_id +) +SELECT +'{{ deployment_specifications }}' /* required */, +'{{ function_id }}', +'{{ function_version_id }}' +RETURNING +deployment +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: deployments + props: + - name: function_id + value: "{{ function_id }}" + description: Required parameter for the deployments resource. + - name: function_version_id + value: "{{ function_version_id }}" + description: Required parameter for the deployments resource. + - name: deployment_specifications + description: | + GPU specs with GPU, instance_type, clusters etc. details + value: + - attributes: "{{ attributes }}" + autoscalingConfiguration: + scaleDownDetails: + factor: {{ factor }} + metric: "{{ metric }}" + stickiness: + size: "{{ size }}" + threshold: "{{ threshold }}" + threshold: {{ threshold }} + scaleUpDetails: + factor: {{ factor }} + metric: "{{ metric }}" + stickiness: + size: "{{ size }}" + threshold: "{{ threshold }}" + threshold: {{ threshold }} + availabilityZones: "{{ availabilityZones }}" + backend: "{{ backend }}" + clusters: "{{ clusters }}" + configuration: "{{ configuration }}" + cpuArch: "{{ cpuArch }}" + driverVersion: "{{ driverVersion }}" + gpu: "{{ gpu }}" + gpuMemory: "{{ gpuMemory }}" + gpuSpecificationId: "{{ gpuSpecificationId }}" + helmValidationPolicy: + extraKubernetesTypes: + - group: "{{ group }}" + kind: "{{ kind }}" + version: "{{ version }}" + name: "{{ name }}" + instanceType: "{{ instanceType }}" + maxInstances: {{ maxInstances }} + maxRequestConcurrency: {{ maxRequestConcurrency }} + minInstances: {{ minInstances }} + os: "{{ os }}" + regions: "{{ regions }}" + storage: "{{ storage }}" + systemMemory: "{{ systemMemory }}" +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update" + values={[ + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update"> + + Deprecated and will be removed soon. Use a single GPU specification update method instead. Updates the deployment specs of the specified function version. It's important to note that GPU type and backend configurations cannot be modified through this endpoint. If the specified function is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. + +```sql +UPDATE nvidia.nvcf_deployments.deployments +SET +deployment_specifications = '{{ deployment_specifications }}' +WHERE +function_id = '{{ function_id }}' --required +AND function_version_id = '{{ function_version_id }}' --required +AND deployment_specifications = '{{ deployment_specifications }}' --required +RETURNING +deployment; +``` +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete" + values={[ + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete"> + +Deletes the deployment associated with the specified function. Upon deletion, any active instances will be terminated, and the function's status will transition to 'INACTIVE'. To undeploy a function version gracefully, specify 'graceful=true' query parameter, allowing current tasks to complete before terminating the instances. If the specified function version is public, then Account Admin cannot perform this operation. Access to this endpoint mandates a bearer token with 'deploy_function' scope in the HTTP Authorization header. + +```sql +DELETE FROM nvidia.nvcf_deployments.deployments +WHERE function_id = '{{ function_id }}' --required +AND function_version_id = '{{ function_version_id }}' --required +AND graceful = '{{ graceful }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_deployments/index.md b/website/docs/services/nvcf_deployments/index.md new file mode 100644 index 0000000..17e21ae --- /dev/null +++ b/website/docs/services/nvcf_deployments/index.md @@ -0,0 +1,39 @@ +--- +title: nvcf_deployments +hide_title: false +hide_table_of_contents: false +keywords: + - nvcf_deployments + - nvidia + - stackql + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +nvcf_deployments service documentation. + +:::info[Service Summary] + +total resources: __8__ + +::: + +## Resources +<div class="row"> +<div class="providerDocColumn"> +<a href="/services/nvcf_deployments/cluster_groups/">cluster_groups</a><br /> +<a href="/services/nvcf_deployments/deployment_gpu_specs/">deployment_gpu_specs</a><br /> +<a href="/services/nvcf_deployments/deployments/">deployments</a><br /> +<a href="/services/nvcf_deployments/recognized_registries/">recognized_registries</a> +</div> +<div class="providerDocColumn"> +<a href="/services/nvcf_deployments/registry_credentials/">registry_credentials</a><br /> +<a href="/services/nvcf_deployments/telemetries/">telemetries</a><br /> +<a href="/services/nvcf_deployments/telemetry_secrets/">telemetry_secrets</a><br /> +<a href="/services/nvcf_deployments/vw_gpu_capacity/">vw_gpu_capacity</a> +</div> +</div> \ No newline at end of file diff --git a/website/docs/services/nvcf_deployments/recognized_registries/index.md b/website/docs/services/nvcf_deployments/recognized_registries/index.md new file mode 100644 index 0000000..5e13709 --- /dev/null +++ b/website/docs/services/nvcf_deployments/recognized_registries/index.md @@ -0,0 +1,122 @@ +--- +title: recognized_registries +hide_title: false +hide_table_of_contents: false +keywords: + - recognized_registries + - nvcf_deployments + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>recognized_registries</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="recognized_registries" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_deployments.recognized_registries" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list" + values={[ + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="recognized_registries" /></td> + <td><code>object</code></td> + <td>Recognized registries (wire: recognizedRegistries)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td></td> + <td>Lists all the registries that are recognized by NVCF. Only when a registry is recognized by NVCF that the users can add its credential to their account and then use it to create functions. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. </td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list" + values={[ + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list"> + +Lists all the registries that are recognized by NVCF. Only when a registry is recognized by NVCF that the users can add its credential to their account and then use it to create functions. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. + +```sql +SELECT +recognized_registries +FROM nvidia.nvcf_deployments.recognized_registries +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_deployments/registry_credentials/index.md b/website/docs/services/nvcf_deployments/registry_credentials/index.md new file mode 100644 index 0000000..3ea29ab --- /dev/null +++ b/website/docs/services/nvcf_deployments/registry_credentials/index.md @@ -0,0 +1,446 @@ +--- +title: registry_credentials +hide_title: false +hide_table_of_contents: false +keywords: + - registry_credentials + - nvcf_deployments + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>registry_credentials</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="registry_credentials" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_deployments.registry_credentials" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="nca_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>NVIDIA Cloud Account Id owning the Registry Credential (wire: ncaId)</td> +</tr> +<tr> + <td><CopyableCode code="registry_credential_id" /></td> + <td><code>string (uuid)</code></td> + <td>Registry Credential Id (wire: registryCredentialId)</td> +</tr> +<tr> + <td><CopyableCode code="registry_credential_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Registry Credential name (wire: registryCredentialName)</td> +</tr> +<tr> + <td><CopyableCode code="registry_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Recognized registry name (wire: registryName)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_types" /></td> + <td><code>array</code></td> + <td>Registry type (wire: artifactTypes)</td> +</tr> +<tr> + <td><CopyableCode code="created_at" /></td> + <td><code>string (date_time)</code></td> + <td>Timestamp for registry credential creation (wire: createdAt)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string (UTF-8)</code></td> + <td>Registry credential description</td> +</tr> +<tr> + <td><CopyableCode code="key_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Optional registry credential key type (wire: keyType)</td> +</tr> +<tr> + <td><CopyableCode code="last_updated_at" /></td> + <td><code>string (date_time)</code></td> + <td>Timestamp for last registry credential update (wire: lastUpdatedAt)</td> +</tr> +<tr> + <td><CopyableCode code="provisioned_by" /></td> + <td><code>string (UTF-8)</code></td> + <td>Registry credential provisioned by system or user (SYSTEM, USER) (wire: provisionedBy)</td> +</tr> +<tr> + <td><CopyableCode code="registry_hostname" /></td> + <td><code>string (UTF-8)</code></td> + <td>Registry hostname (wire: registryHostname)</td> +</tr> +<tr> + <td><CopyableCode code="tags" /></td> + <td><code>array</code></td> + <td>Optional set of tags</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="nca_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>NVIDIA Cloud Account Id owning the Registry Credential (wire: ncaId)</td> +</tr> +<tr> + <td><CopyableCode code="registry_credential_id" /></td> + <td><code>string (uuid)</code></td> + <td>Registry Credential Id (wire: registryCredentialId)</td> +</tr> +<tr> + <td><CopyableCode code="registry_credential_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Registry Credential name (wire: registryCredentialName)</td> +</tr> +<tr> + <td><CopyableCode code="registry_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Recognized registry name (wire: registryName)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_types" /></td> + <td><code>array</code></td> + <td>Registry type (wire: artifactTypes)</td> +</tr> +<tr> + <td><CopyableCode code="created_at" /></td> + <td><code>string (date_time)</code></td> + <td>Timestamp for registry credential creation (wire: createdAt)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string (UTF-8)</code></td> + <td>Registry credential description</td> +</tr> +<tr> + <td><CopyableCode code="key_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Optional registry credential key type (wire: keyType)</td> +</tr> +<tr> + <td><CopyableCode code="last_updated_at" /></td> + <td><code>string (date_time)</code></td> + <td>Timestamp for last registry credential update (wire: lastUpdatedAt)</td> +</tr> +<tr> + <td><CopyableCode code="provisioned_by" /></td> + <td><code>string (UTF-8)</code></td> + <td>Registry credential provisioned by system or user (SYSTEM, USER) (wire: provisionedBy)</td> +</tr> +<tr> + <td><CopyableCode code="registry_hostname" /></td> + <td><code>string (UTF-8)</code></td> + <td>Registry hostname (wire: registryHostname)</td> +</tr> +<tr> + <td><CopyableCode code="tags" /></td> + <td><code>array</code></td> + <td>Optional set of tags</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-registry_credential_id"><code>registry_credential_id</code></a></td> + <td></td> + <td>Retrieves detailed information of the specified registry credential associated with the authenticated NVIDIA Cloud Account. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. </td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-provisioned_by"><code>provisioned_by</code></a></td> + <td>Lists all the registry credentials associated with the authenticated NVIDIA Cloud Account. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. </td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-artifact_types"><code>artifact_types</code></a>, <a href="#parameter-registry_hostname"><code>registry_hostname</code></a>, <a href="#parameter-secret"><code>secret</code></a></td> + <td></td> + <td>Adds a new registry credential to the account. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. </td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-registry_credential_id"><code>registry_credential_id</code></a></td> + <td></td> + <td>Updates the secret and/or the artifact types associated with the specified registry credential. Artifact types specified in the request body are added to the set of artifact types that already exist for the specified registry credential. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. </td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-registry_credential_id"><code>registry_credential_id</code></a></td> + <td></td> + <td>Deletes the specified registry credential associated with the authenticated NVIDIA Cloud Account. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. </td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-registry_credential_id"> + <td><CopyableCode code="registry_credential_id" /></td> + <td><code>string (uuid)</code></td> + <td>Registry Credential id</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>array</code></td> + <td>Filters registry credentials using the specified 'artifactType' query param. (wire: artifactType)</td> +</tr> +<tr id="parameter-provisioned_by"> + <td><CopyableCode code="provisioned_by" /></td> + <td><code>array</code></td> + <td>Filters registry credentials using the specified 'provisionedBy' query param. (wire: provisionedBy)</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get"> + +Retrieves detailed information of the specified registry credential associated with the authenticated NVIDIA Cloud Account. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. + +```sql +SELECT +nca_id, +registry_credential_id, +registry_credential_name, +registry_name, +artifact_types, +created_at, +description, +key_type, +last_updated_at, +provisioned_by, +registry_hostname, +tags +FROM nvidia.nvcf_deployments.registry_credentials +WHERE registry_credential_id = '{{ registry_credential_id }}' -- required +; +``` +</TabItem> +<TabItem value="list"> + +Lists all the registry credentials associated with the authenticated NVIDIA Cloud Account. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. + +```sql +SELECT +nca_id, +registry_credential_id, +registry_credential_name, +registry_name, +artifact_types, +created_at, +description, +key_type, +last_updated_at, +provisioned_by, +registry_hostname, +tags +FROM nvidia.nvcf_deployments.registry_credentials +WHERE artifact_type = '{{ artifact_type }}' +AND provisioned_by = '{{ provisioned_by }}' +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create" + values={[ + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create"> + +Adds a new registry credential to the account. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. + +```sql +INSERT INTO nvidia.nvcf_deployments.registry_credentials ( +artifact_types, +description, +registry_hostname, +secret, +tags +) +SELECT +'{{ artifact_types }}' /* required */, +'{{ description }}', +'{{ registry_hostname }}' /* required */, +'{{ secret }}' /* required */, +'{{ tags }}' +RETURNING +registry_credential +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: registry_credentials + props: + - name: artifact_types + value: + - "{{ artifact_types }}" + description: | + Artifact types that can be retrieved using this credential + - name: description + value: "{{ description }}" + description: | + Optional registry credential description + - name: registry_hostname + value: "{{ registry_hostname }}" + description: | + Registry hostname + - name: secret + description: | + Registry credential - secret value must be base64 encoded string in username:password format + value: + name: "{{ name }}" + value: "{{ value }}" + - name: tags + value: + - "{{ tags }}" + description: | + Optional set of tags +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update" + values={[ + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update"> + +Updates the secret and/or the artifact types associated with the specified registry credential. Artifact types specified in the request body are added to the set of artifact types that already exist for the specified registry credential. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. + +```sql +UPDATE nvidia.nvcf_deployments.registry_credentials +SET +artifact_type_enums = '{{ artifact_type_enums }}', +secret = '{{ secret }}' +WHERE +registry_credential_id = '{{ registry_credential_id }}' --required +RETURNING +registry_credential; +``` +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete" + values={[ + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete"> + +Deletes the specified registry credential associated with the authenticated NVIDIA Cloud Account. Requires a bearer token in the HTTP Authorization header with 'manage_registries' scope. + +```sql +DELETE FROM nvidia.nvcf_deployments.registry_credentials +WHERE registry_credential_id = '{{ registry_credential_id }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_deployments/telemetries/index.md b/website/docs/services/nvcf_deployments/telemetries/index.md new file mode 100644 index 0000000..b920a15 --- /dev/null +++ b/website/docs/services/nvcf_deployments/telemetries/index.md @@ -0,0 +1,342 @@ +--- +title: telemetries +hide_title: false +hide_table_of_contents: false +keywords: + - telemetries + - nvcf_deployments + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>telemetries</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="telemetries" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_deployments.telemetries" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Telemetry name</td> +</tr> +<tr> + <td><CopyableCode code="telemetry_id" /></td> + <td><code>string (uuid)</code></td> + <td>Unique telemetry ID (wire: telemetryId)</td> +</tr> +<tr> + <td><CopyableCode code="created_at" /></td> + <td><code>string (date_time)</code></td> + <td>Telemetry creation timestamp (wire: createdAt)</td> +</tr> +<tr> + <td><CopyableCode code="endpoint" /></td> + <td><code>string (UTF-8)</code></td> + <td>URL for the telemetry endpoint</td> +</tr> +<tr> + <td><CopyableCode code="protocol" /></td> + <td><code>string (UTF-8)</code></td> + <td>Protocol used for communication (HTTP, GRPC)</td> +</tr> +<tr> + <td><CopyableCode code="provider" /></td> + <td><code>string (UTF-8)</code></td> + <td>Telemetry provider (PROMETHEUS, GRAFANA_CLOUD, SPLUNK, DATADOG, SERVICENOW, KRATOS, KRATOS_THANOS, TIMESTREAM, VICTORIAMETRICS, AZURE_MONITOR, OTEL_COLLECTOR)</td> +</tr> +<tr> + <td><CopyableCode code="types" /></td> + <td><code>array</code></td> + <td>Set of telemetry data types</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Telemetry name</td> +</tr> +<tr> + <td><CopyableCode code="telemetry_id" /></td> + <td><code>string (uuid)</code></td> + <td>Unique telemetry ID (wire: telemetryId)</td> +</tr> +<tr> + <td><CopyableCode code="created_at" /></td> + <td><code>string (date_time)</code></td> + <td>Telemetry creation timestamp (wire: createdAt)</td> +</tr> +<tr> + <td><CopyableCode code="endpoint" /></td> + <td><code>string (UTF-8)</code></td> + <td>URL for the telemetry endpoint</td> +</tr> +<tr> + <td><CopyableCode code="protocol" /></td> + <td><code>string (UTF-8)</code></td> + <td>Protocol used for communication (HTTP, GRPC)</td> +</tr> +<tr> + <td><CopyableCode code="provider" /></td> + <td><code>string (UTF-8)</code></td> + <td>Telemetry provider (PROMETHEUS, GRAFANA_CLOUD, SPLUNK, DATADOG, SERVICENOW, KRATOS, KRATOS_THANOS, TIMESTREAM, VICTORIAMETRICS, AZURE_MONITOR, OTEL_COLLECTOR)</td> +</tr> +<tr> + <td><CopyableCode code="types" /></td> + <td><code>array</code></td> + <td>Set of telemetry data types</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-telemetry_id"><code>telemetry_id</code></a></td> + <td></td> + <td>Retrieves the details of a specific telemetry configuration by its ID. requires a bearer token with 'manage_telemetries' scope in the HTTP Authorization header. </td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td></td> + <td>Retrieves telemetry configurations for a specific NVIDIA Cloud Account. requires a bearer token with 'manage_telemetries' scope in the HTTP Authorization header. </td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-endpoint"><code>endpoint</code></a>, <a href="#parameter-protocol"><code>protocol</code></a>, <a href="#parameter-provider"><code>provider</code></a>, <a href="#parameter-secret"><code>secret</code></a>, <a href="#parameter-types"><code>types</code></a></td> + <td></td> + <td>Creates telemetry endpoints for NVIDIA Cloud Accounts. requires a bearer token with 'manage_telemetries' scope in the HTTP Authorization header. </td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-telemetry_id"><code>telemetry_id</code></a></td> + <td></td> + <td>Deletes a specific telemetry configuration for a NVIDIA Cloud Account. requires a bearer token with 'manage_telemetries' scope in the HTTP Authorization header. If there any functions that are dependent on the Telemetry that is being deleted, then response with 400 status code will be returned. </td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-telemetry_id"> + <td><CopyableCode code="telemetry_id" /></td> + <td><code>string (uuid)</code></td> + <td></td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get"> + +Retrieves the details of a specific telemetry configuration by its ID. requires a bearer token with 'manage_telemetries' scope in the HTTP Authorization header. + +```sql +SELECT +name, +telemetry_id, +created_at, +endpoint, +protocol, +provider, +types +FROM nvidia.nvcf_deployments.telemetries +WHERE telemetry_id = '{{ telemetry_id }}' -- required +; +``` +</TabItem> +<TabItem value="list"> + +Retrieves telemetry configurations for a specific NVIDIA Cloud Account. requires a bearer token with 'manage_telemetries' scope in the HTTP Authorization header. + +```sql +SELECT +name, +telemetry_id, +created_at, +endpoint, +protocol, +provider, +types +FROM nvidia.nvcf_deployments.telemetries +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create" + values={[ + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create"> + +Creates telemetry endpoints for NVIDIA Cloud Accounts. requires a bearer token with 'manage_telemetries' scope in the HTTP Authorization header. + +```sql +INSERT INTO nvidia.nvcf_deployments.telemetries ( +endpoint, +protocol, +provider, +secret, +types +) +SELECT +'{{ endpoint }}' /* required */, +'{{ protocol }}' /* required */, +'{{ provider }}' /* required */, +'{{ secret }}' /* required */, +'{{ types }}' /* required */ +RETURNING +telemetry +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: telemetries + props: + - name: endpoint + value: "{{ endpoint }}" + description: | + Telemetry endpoint URL + - name: protocol + value: "{{ protocol }}" + description: | + Protocol used for communication + valid_values: ['HTTP', 'GRPC'] + - name: provider + value: "{{ provider }}" + description: | + Telemetry provider + valid_values: ['PROMETHEUS', 'GRAFANA_CLOUD', 'SPLUNK', 'DATADOG', 'SERVICENOW', 'KRATOS', 'KRATOS_THANOS', 'TIMESTREAM', 'VICTORIAMETRICS', 'AZURE_MONITOR', 'OTEL_COLLECTOR'] + - name: secret + description: | + Single secret associated with the telemetry configuration + value: + name: "{{ name }}" + value: "{{ value }}" + - name: types + value: + - "{{ types }}" + description: | + Set of telemetry data types +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete" + values={[ + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete"> + +Deletes a specific telemetry configuration for a NVIDIA Cloud Account. requires a bearer token with 'manage_telemetries' scope in the HTTP Authorization header. If there any functions that are dependent on the Telemetry that is being deleted, then response with 400 status code will be returned. + +```sql +DELETE FROM nvidia.nvcf_deployments.telemetries +WHERE telemetry_id = '{{ telemetry_id }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_deployments/telemetry_secrets/index.md b/website/docs/services/nvcf_deployments/telemetry_secrets/index.md new file mode 100644 index 0000000..0946562 --- /dev/null +++ b/website/docs/services/nvcf_deployments/telemetry_secrets/index.md @@ -0,0 +1,105 @@ +--- +title: telemetry_secrets +hide_title: false +hide_table_of_contents: false +keywords: + - telemetry_secrets + - nvcf_deployments + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>telemetry_secrets</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="telemetry_secrets" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_deployments.telemetry_secrets" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-telemetry_id"><code>telemetry_id</code></a>, <a href="#parameter-secret"><code>secret</code></a></td> + <td></td> + <td>Updates secret for the specific telemetry Id within NVIDIA Cloud Account. This endpoint requires a bearer token with 'update_secrets' scope in the HTTP Authorization header. </td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-telemetry_id"> + <td><CopyableCode code="telemetry_id" /></td> + <td><code>string (uuid)</code></td> + <td>NVIDIA Cloud Account Id</td> +</tr> +</tbody> +</table> + +## `UPDATE` examples + +<Tabs + defaultValue="update" + values={[ + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update"> + +Updates secret for the specific telemetry Id within NVIDIA Cloud Account. This endpoint requires a bearer token with 'update_secrets' scope in the HTTP Authorization header. + +```sql +UPDATE nvidia.nvcf_deployments.telemetry_secrets +SET +secret = '{{ secret }}' +WHERE +telemetry_id = '{{ telemetry_id }}' --required +AND secret = '{{ secret }}' --required; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_deployments/vw_gpu_capacity/index.md b/website/docs/services/nvcf_deployments/vw_gpu_capacity/index.md new file mode 100644 index 0000000..3a033cf --- /dev/null +++ b/website/docs/services/nvcf_deployments/vw_gpu_capacity/index.md @@ -0,0 +1,145 @@ +--- +title: vw_gpu_capacity +hide_title: false +hide_table_of_contents: false +keywords: + - vw_gpu_capacity + - nvcf_deployments + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>vw_gpu_capacity</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="vw_gpu_capacity" /></td></tr> +<tr><td><b>Type</b></td><td>View</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_deployments.vw_gpu_capacity" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by this view: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="cluster_group" /></td> + <td><CopyableCode code="string" /></td> + <td>Cluster group name (the backend named in a deployment specification).</td> +</tr> +<tr> + <td><CopyableCode code="cluster_group_id" /></td> + <td><CopyableCode code="string" /></td> + <td>Cluster group id.</td> +</tr> +<tr> + <td><CopyableCode code="gpu" /></td> + <td><CopyableCode code="string" /></td> + <td>GPU type available in the cluster group (for example L40</td> +</tr> +<tr> + <td><CopyableCode code="instance_type" /></td> + <td><CopyableCode code="string" /></td> + <td>Instance type name for the GPU (the instanceType of a deployment specification).</td> +</tr> +<tr> + <td><CopyableCode code="instance_description" /></td> + <td><CopyableCode code="string" /></td> + <td>Vendor description of the instance type.</td> +</tr> +<tr> + <td><CopyableCode code="is_default" /></td> + <td><CopyableCode code="boolean" /></td> + <td>Whether the instance type is the default for the GPU.</td> +</tr> +<tr> + <td><CopyableCode code="cluster" /></td> + <td><CopyableCode code="string" /></td> + <td>Name of the first cluster in the group.</td> +</tr> +<tr> + <td><CopyableCode code="nca_id" /></td> + <td><CopyableCode code="string" /></td> + <td>NVIDIA Cloud Account that owns the cluster group.</td> +</tr> +</tbody> +</table> + +## `SELECT` Examples + +```sql +SELECT + cluster_group, + cluster_group_id, + gpu, + instance_type, + instance_description, + is_default, + cluster, + nca_id +FROM nvidia.nvcf_deployments.vw_gpu_capacity; +``` + +## SQL Definition + +<Tabs +defaultValue="Sqlite3" +values={[ +{ label: 'Sqlite3', value: 'Sqlite3' }, +{ label: 'Postgres', value: 'Postgres' } +]} +> +<TabItem value="Sqlite3"> + +```sql +SELECT cg.name AS cluster_group, + cg.id AS cluster_group_id, + json_extract(g.value, '$.name') AS gpu, + json_extract(it.value, '$.name') AS instance_type, + json_extract(it.value, '$.description') AS instance_description, + json_extract(it.value, '$.default') AS is_default, + json_extract(cg.clusters, '$[0].name') AS cluster, + cg.nca_id +FROM nvidia.nvcf_deployments.cluster_groups cg, + json_each(cg.gpus) g, + json_each(json_extract(g.value, '$.instanceTypes')) it +``` + +</TabItem> +<TabItem value="Postgres"> + +```sql +SELECT cg.name AS cluster_group, + cg.id AS cluster_group_id, + g.value->>'name' AS gpu, + it.value->>'name' AS instance_type, + it.value->>'description' AS instance_description, + (it.value->>'default')::boolean AS is_default, + cg.clusters::jsonb->0->>'name' AS cluster, + cg.nca_id +FROM nvidia.nvcf_deployments.cluster_groups cg, + jsonb_array_elements(cg.gpus::jsonb) AS g(value), + jsonb_array_elements(g.value->'instanceTypes') AS it(value) +``` + +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_functions/authorizations/index.md b/website/docs/services/nvcf_functions/authorizations/index.md new file mode 100644 index 0000000..0d15cfb --- /dev/null +++ b/website/docs/services/nvcf_functions/authorizations/index.md @@ -0,0 +1,503 @@ +--- +title: authorizations +hide_title: false +hide_table_of_contents: false +keywords: + - authorizations + - nvcf_functions + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>authorizations</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="authorizations" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_functions.authorizations" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list_version" + values={[ + { label: 'list_version', value: 'list_version' }, + { label: 'list', value: 'list' }, + { label: 'list_all', value: 'list_all' } + ]} +> +<TabItem value="list_version"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>string (uuid)</code></td> + <td>Function id</td> +</tr> +<tr> + <td><CopyableCode code="nca_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>NVIDIA Cloud Account Id (wire: ncaId)</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function version id (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="authorized_parties" /></td> + <td><code>array</code></td> + <td>Authorized parties allowed to invoke the function (wire: authorizedParties)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>string (uuid)</code></td> + <td>Function id</td> +</tr> +<tr> + <td><CopyableCode code="nca_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>NVIDIA Cloud Account Id (wire: ncaId)</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function version id (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="authorized_parties" /></td> + <td><code>array</code></td> + <td>Authorized parties allowed to invoke the function (wire: authorizedParties)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list_all"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>string (uuid)</code></td> + <td>Function id</td> +</tr> +<tr> + <td><CopyableCode code="nca_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>NVIDIA Cloud Account Id (wire: ncaId)</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function version id (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="authorized_parties" /></td> + <td><code>array</code></td> + <td>Authorized parties allowed to invoke the function (wire: authorizedParties)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list_version"><CopyableCode code="list_version" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-function_version_id"><code>function_version_id</code></a></td> + <td></td> + <td>Gets NVIDIA Cloud Account IDs that are authorized to invoke specified function version. Response includes authorized accounts that were added specifically at the version level and the authorized accounts that were inherited from function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header </td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a></td> + <td></td> + <td>Lists function versions of the specified function and their corresponding authorized accounts allowed to invoke the function version. Individual versions of a function can have their own authorized accounts. So, each object in the array can have different authorized accounts listed. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header </td> +</tr> +<tr> + <td><a href="#list_all"><CopyableCode code="list_all" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td></td> + <td>Lists all the function versions in an account that have been shared/authorized with/to other accounts. Response includes the nca-ids of the authorized accounts. If a function version is not shared/authorized, then it is not included in the response. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header </td> +</tr> +<tr> + <td><a href="#add_version"><CopyableCode code="add_version" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-function_version_id"><code>function_version_id</code></a>, <a href="#parameter-authorized_party"><code>authorized_party</code></a></td> + <td></td> + <td>Adds the specified NVIDIA Cloud Account to the set of authorized accounts that can invoke the specified function version. If the specified function version does not have any existing inheritable authorized accounts, it results in a response with status 404. If the specified account is already in the set of existing authorized accounts that are directly associated with the function version, it results in a response wit status code 409. If a function is public, then Account Admin cannot perform this operation. Note that the response does not include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header </td> +</tr> +<tr> + <td><a href="#add"><CopyableCode code="add" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-authorized_party"><code>authorized_party</code></a></td> + <td></td> + <td>Adds the specified NVIDIA Cloud Account to the set of authorized accounts that are can invoke all the versions of the specified function. If the specified function does not have any existing inheritable authorized accounts, it results in a response with status 404. If the specified account is already in the set of existing inheritable authorized accounts, it results in a response with status code 409. If a function is public, then Account Admin cannot perform this operation. Note that response only includes authz accounts at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header </td> +</tr> +<tr> + <td><a href="#set_version"><CopyableCode code="set_version" /></a></td> + <td><CopyableCode code="replace" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-function_version_id"><code>function_version_id</code></a>, <a href="#parameter-authorized_parties"><code>authorized_parties</code></a></td> + <td></td> + <td>Authorizes additional NVIDIA Cloud Accounts to invoke a specific function version. By default, a function belongs to the NVIDIA Cloud Account that created it, and the credentials used for function invocation must reference the same NVIDIA Cloud Account. Upon invocation of this endpoint, any existing authorized accounts will be overwritten by the newly specified authorized accounts. Note that the response does NOT include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header </td> +</tr> +<tr> + <td><a href="#set"><CopyableCode code="set" /></a></td> + <td><CopyableCode code="replace" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-authorized_parties"><code>authorized_parties</code></a></td> + <td></td> + <td>Authorizes additional NVIDIA Cloud Accounts to invoke any version of the specified function. By default, a function belongs to the NVIDIA Cloud Account that created it, and the credentials used for function invocation must reference the same NVIDIA Cloud Account. Upon invocation of this endpoint, any existing authorized accounts will be overwritten by the newly specified authorized accounts. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header </td> +</tr> +<tr> + <td><a href="#remove_version"><CopyableCode code="remove_version" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-function_version_id"><code>function_version_id</code></a></td> + <td></td> + <td>Removes the specified NVIDIA Cloud Account from the set of authorized accounts that are directly associated with specified function version. If the specified function version does not have any of its own(not inherited) authorized accounts, it results in a response with status 404. Also, if the specified authorized account is not in the set of existing authorized parties that are directly associated with the specified function version, it results in a response with status code 404. If the specified function version is public, then Account Admin cannot perform this operation. Note that the response does not include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header </td> +</tr> +<tr> + <td><a href="#remove"><CopyableCode code="remove" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a></td> + <td></td> + <td>Removes the specified NVIDIA Cloud Account from the set of authorized accounts that can invoke all the versions of the specified function. If the specified function does not have any existing inheritable authorized parties, it results in a response with status 404. Also, if the specified account is not in the existing set of inheritable authorized accounts, it results in a response with status 404. If the specified function is public, then Account Admin cannot perform this operation. Note that response only includes the remaining authorized accounts at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header </td> +</tr> +<tr> + <td><a href="#delete_all"><CopyableCode code="delete_all" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a></td> + <td></td> + <td>Deletes authorizations at the function level. This impacts all versions of the function. If a function versions has its own set of authorizations, those are not deleted. If the specified function is public, then Account Admin cannot perform this operation. Note that the response does not include any authz accounts at version level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header </td> +</tr> +<tr> + <td><a href="#delete_all_version"><CopyableCode code="delete_all_version" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-function_version_id"><code>function_version_id</code></a></td> + <td></td> + <td>Deletes all the authorized accounts that are directly associated with the specified function version. Authorized parties that are inherited by the function version are not deleted. If the specified function version is public, then Account Admin cannot perform this operation. Note that the response does not include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header </td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-function_id"> + <td><CopyableCode code="function_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function id</td> +</tr> +<tr id="parameter-function_version_id"> + <td><CopyableCode code="function_version_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function version</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list_version" + values={[ + { label: 'list_version', value: 'list_version' }, + { label: 'list', value: 'list' }, + { label: 'list_all', value: 'list_all' } + ]} +> +<TabItem value="list_version"> + +Gets NVIDIA Cloud Account IDs that are authorized to invoke specified function version. Response includes authorized accounts that were added specifically at the version level and the authorized accounts that were inherited from function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header + +```sql +SELECT +id, +nca_id, +version_id, +authorized_parties +FROM nvidia.nvcf_functions.authorizations +WHERE function_id = '{{ function_id }}' -- required +AND function_version_id = '{{ function_version_id }}' -- required +; +``` +</TabItem> +<TabItem value="list"> + +Lists function versions of the specified function and their corresponding authorized accounts allowed to invoke the function version. Individual versions of a function can have their own authorized accounts. So, each object in the array can have different authorized accounts listed. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header + +```sql +SELECT +id, +nca_id, +version_id, +authorized_parties +FROM nvidia.nvcf_functions.authorizations +WHERE function_id = '{{ function_id }}' -- required +; +``` +</TabItem> +<TabItem value="list_all"> + +Lists all the function versions in an account that have been shared/authorized with/to other accounts. Response includes the nca-ids of the authorized accounts. If a function version is not shared/authorized, then it is not included in the response. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header + +```sql +SELECT +id, +nca_id, +version_id, +authorized_parties +FROM nvidia.nvcf_functions.authorizations +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="add_version" + values={[ + { label: 'add_version', value: 'add_version' }, + { label: 'add', value: 'add' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="add_version"> + +Adds the specified NVIDIA Cloud Account to the set of authorized accounts that can invoke the specified function version. If the specified function version does not have any existing inheritable authorized accounts, it results in a response with status 404. If the specified account is already in the set of existing authorized accounts that are directly associated with the function version, it results in a response wit status code 409. If a function is public, then Account Admin cannot perform this operation. Note that the response does not include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header + +```sql +INSERT INTO nvidia.nvcf_functions.authorizations ( +authorized_party, +function_id, +function_version_id +) +SELECT +'{{ authorized_party }}' /* required */, +'{{ function_id }}', +'{{ function_version_id }}' +RETURNING +function +; +``` +</TabItem> +<TabItem value="add"> + +Adds the specified NVIDIA Cloud Account to the set of authorized accounts that are can invoke all the versions of the specified function. If the specified function does not have any existing inheritable authorized accounts, it results in a response with status 404. If the specified account is already in the set of existing inheritable authorized accounts, it results in a response with status code 409. If a function is public, then Account Admin cannot perform this operation. Note that response only includes authz accounts at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header + +```sql +INSERT INTO nvidia.nvcf_functions.authorizations ( +authorized_party, +function_id +) +SELECT +'{{ authorized_party }}' /* required */, +'{{ function_id }}' +RETURNING +function +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: authorizations + props: + - name: function_id + value: "{{ function_id }}" + description: Required parameter for the authorizations resource. + - name: function_version_id + value: "{{ function_version_id }}" + description: Required parameter for the authorizations resource. + - name: authorized_party + description: | + Data Transfer Object(DTO) representing an authorized party. + value: + clientId: "{{ clientId }}" + ncaId: "{{ ncaId }}" +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `REPLACE` examples + +<Tabs + defaultValue="set_version" + values={[ + { label: 'set_version', value: 'set_version' }, + { label: 'set', value: 'set' } + ]} +> +<TabItem value="set_version"> + +Authorizes additional NVIDIA Cloud Accounts to invoke a specific function version. By default, a function belongs to the NVIDIA Cloud Account that created it, and the credentials used for function invocation must reference the same NVIDIA Cloud Account. Upon invocation of this endpoint, any existing authorized accounts will be overwritten by the newly specified authorized accounts. Note that the response does NOT include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header + +```sql +REPLACE nvidia.nvcf_functions.authorizations +SET +authorized_parties = '{{ authorized_parties }}' +WHERE +function_id = '{{ function_id }}' --required +AND function_version_id = '{{ function_version_id }}' --required +AND authorized_parties = '{{ authorized_parties }}' --required +RETURNING +function; +``` +</TabItem> +<TabItem value="set"> + +Authorizes additional NVIDIA Cloud Accounts to invoke any version of the specified function. By default, a function belongs to the NVIDIA Cloud Account that created it, and the credentials used for function invocation must reference the same NVIDIA Cloud Account. Upon invocation of this endpoint, any existing authorized accounts will be overwritten by the newly specified authorized accounts. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header + +```sql +REPLACE nvidia.nvcf_functions.authorizations +SET +authorized_parties = '{{ authorized_parties }}' +WHERE +function_id = '{{ function_id }}' --required +AND authorized_parties = '{{ authorized_parties }}' --required +RETURNING +function; +``` +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="remove_version" + values={[ + { label: 'remove_version', value: 'remove_version' }, + { label: 'remove', value: 'remove' } + ]} +> +<TabItem value="remove_version"> + +Removes the specified NVIDIA Cloud Account from the set of authorized accounts that are directly associated with specified function version. If the specified function version does not have any of its own(not inherited) authorized accounts, it results in a response with status 404. Also, if the specified authorized account is not in the set of existing authorized parties that are directly associated with the specified function version, it results in a response with status code 404. If the specified function version is public, then Account Admin cannot perform this operation. Note that the response does not include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header + +```sql +DELETE FROM nvidia.nvcf_functions.authorizations +WHERE function_id = '{{ function_id }}' --required +AND function_version_id = '{{ function_version_id }}' --required +; +``` +</TabItem> +<TabItem value="remove"> + +Removes the specified NVIDIA Cloud Account from the set of authorized accounts that can invoke all the versions of the specified function. If the specified function does not have any existing inheritable authorized parties, it results in a response with status 404. Also, if the specified account is not in the existing set of inheritable authorized accounts, it results in a response with status 404. If the specified function is public, then Account Admin cannot perform this operation. Note that response only includes the remaining authorized accounts at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header + +```sql +DELETE FROM nvidia.nvcf_functions.authorizations +WHERE function_id = '{{ function_id }}' --required +; +``` +</TabItem> +</Tabs> + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + +<Tabs + defaultValue="delete_all" + values={[ + { label: 'delete_all', value: 'delete_all' }, + { label: 'delete_all_version', value: 'delete_all_version' } + ]} +> +<TabItem value="delete_all"> + +Deletes authorizations at the function level. This impacts all versions of the function. If a function versions has its own set of authorizations, those are not deleted. If the specified function is public, then Account Admin cannot perform this operation. Note that the response does not include any authz accounts at version level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header + +```sql +EXEC nvidia.nvcf_functions.authorizations.delete_all +@function_id='{{ function_id }}' --required +; +``` +</TabItem> +<TabItem value="delete_all_version"> + +Deletes all the authorized accounts that are directly associated with the specified function version. Authorized parties that are inherited by the function version are not deleted. If the specified function version is public, then Account Admin cannot perform this operation. Note that the response does not include inherited authorized accounts that were added at the function level. Access to this functionality mandates the inclusion of a bearer token with the 'authorize_clients' scope in the HTTP Authorization header + +```sql +EXEC nvidia.nvcf_functions.authorizations.delete_all_version +@function_id='{{ function_id }}' --required, +@function_version_id='{{ function_version_id }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_functions/function_ids/index.md b/website/docs/services/nvcf_functions/function_ids/index.md new file mode 100644 index 0000000..5fc7b94 --- /dev/null +++ b/website/docs/services/nvcf_functions/function_ids/index.md @@ -0,0 +1,128 @@ +--- +title: function_ids +hide_title: false +hide_table_of_contents: false +keywords: + - function_ids + - nvcf_functions + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>function_ids</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="function_ids" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_functions.function_ids" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list" + values={[ + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="function_id" /></td> + <td><code>string</code></td> + <td>List of function ids</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td><a href="#parameter-visibility"><code>visibility</code></a></td> + <td>Lists ids of all the functions in the authenticated NVIDIA Cloud Account. Requires a bearer token with 'list_functions' or 'list_functions_details' scopes in the HTTP Authorization header. </td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-visibility"> + <td><CopyableCode code="visibility" /></td> + <td><code>array</code></td> + <td>Query param 'visibility' indicates the kind of functions to be included in the response. </td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list" + values={[ + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list"> + +Lists ids of all the functions in the authenticated NVIDIA Cloud Account. Requires a bearer token with 'list_functions' or 'list_functions_details' scopes in the HTTP Authorization header. + +```sql +SELECT +function_id +FROM nvidia.nvcf_functions.function_ids +WHERE visibility = '{{ visibility }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_functions/function_metadata/index.md b/website/docs/services/nvcf_functions/function_metadata/index.md new file mode 100644 index 0000000..18150e5 --- /dev/null +++ b/website/docs/services/nvcf_functions/function_metadata/index.md @@ -0,0 +1,115 @@ +--- +title: function_metadata +hide_title: false +hide_table_of_contents: false +keywords: + - function_metadata + - nvcf_functions + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>function_metadata</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="function_metadata" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_functions.function_metadata" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-function_version_id"><code>function_version_id</code></a></td> + <td></td> + <td>Deprecated: use PUT /v2/nvcf/functions/{functionId}/versions/{functionVersionId} to update tags, rate limit, model-specific LLM config, and other mutable function fields. This legacy endpoint updates the same mutable function version fields for the authenticated NVIDIA Cloud Account and requires a bearer token with 'update_function' scope in the HTTP Authorization header. </td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-function_id"> + <td><CopyableCode code="function_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function id</td> +</tr> +<tr id="parameter-function_version_id"> + <td><CopyableCode code="function_version_id" /></td> + <td><code>string (uuid)</code></td> + <td>Version id</td> +</tr> +</tbody> +</table> + +## `UPDATE` examples + +<Tabs + defaultValue="update" + values={[ + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update"> + +Deprecated: use PUT /v2/nvcf/functions/{functionId}/versions/{functionVersionId} to update tags, rate limit, model-specific LLM config, and other mutable function fields. This legacy endpoint updates the same mutable function version fields for the authenticated NVIDIA Cloud Account and requires a bearer token with 'update_function' scope in the HTTP Authorization header. + +```sql +UPDATE nvidia.nvcf_functions.function_metadata +SET +llm_invocation_config = '{{ llm_invocation_config }}', +model_updates = '{{ model_updates }}', +rate_limit = '{{ rate_limit }}', +tags = '{{ tags }}' +WHERE +function_id = '{{ function_id }}' --required +AND function_version_id = '{{ function_version_id }}' --required +RETURNING +function; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_functions/function_ratelimits/index.md b/website/docs/services/nvcf_functions/function_ratelimits/index.md new file mode 100644 index 0000000..ec7e6cb --- /dev/null +++ b/website/docs/services/nvcf_functions/function_ratelimits/index.md @@ -0,0 +1,142 @@ +--- +title: function_ratelimits +hide_title: false +hide_table_of_contents: false +keywords: + - function_ratelimits + - nvcf_functions + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>function_ratelimits</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="function_ratelimits" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_functions.function_ratelimits" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Deprecated: use PUT /v2/nvcf/functions/{functionId}/versions/{versionId} to update ratelimit and other mutable function fields. This legacy endpoint only updates ratelimit for the specified function version and requires a bearer token with 'update_function' scope in the HTTP Authorization header. </td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Delete ratelimit for the specified function version. This endpoint requires a bearer token with 'update_function' scope in the HTTP Authorization header. </td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-function_id"> + <td><CopyableCode code="function_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function id</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function version id</td> +</tr> +</tbody> +</table> + +## `UPDATE` examples + +<Tabs + defaultValue="update" + values={[ + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update"> + +Deprecated: use PUT /v2/nvcf/functions/{functionId}/versions/{versionId} to update ratelimit and other mutable function fields. This legacy endpoint only updates ratelimit for the specified function version and requires a bearer token with 'update_function' scope in the HTTP Authorization header. + +```sql +UPDATE nvidia.nvcf_functions.function_ratelimits +SET +llm_invocation_config = '{{ llm_invocation_config }}', +model_updates = '{{ model_updates }}', +rate_limit = '{{ rate_limit }}', +tags = '{{ tags }}' +WHERE +function_id = '{{ function_id }}' --required +AND version_id = '{{ version_id }}' --required; +``` +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete" + values={[ + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete"> + +Delete ratelimit for the specified function version. This endpoint requires a bearer token with 'update_function' scope in the HTTP Authorization header. + +```sql +DELETE FROM nvidia.nvcf_functions.function_ratelimits +WHERE function_id = '{{ function_id }}' --required +AND version_id = '{{ version_id }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_functions/function_secrets/index.md b/website/docs/services/nvcf_functions/function_secrets/index.md new file mode 100644 index 0000000..7865a2d --- /dev/null +++ b/website/docs/services/nvcf_functions/function_secrets/index.md @@ -0,0 +1,111 @@ +--- +title: function_secrets +hide_title: false +hide_table_of_contents: false +keywords: + - function_secrets + - nvcf_functions + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>function_secrets</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="function_secrets" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_functions.function_secrets" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-version_id"><code>version_id</code></a>, <a href="#parameter-secrets"><code>secrets</code></a></td> + <td></td> + <td>Updates secrets for the specified function version. This endpoint requires a bearer token with 'update_secrets' scope in the HTTP Authorization header. </td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-function_id"> + <td><CopyableCode code="function_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function Id</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function Version Id</td> +</tr> +</tbody> +</table> + +## `UPDATE` examples + +<Tabs + defaultValue="update" + values={[ + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update"> + +Updates secrets for the specified function version. This endpoint requires a bearer token with 'update_secrets' scope in the HTTP Authorization header. + +```sql +UPDATE nvidia.nvcf_functions.function_secrets +SET +secrets = '{{ secrets }}' +WHERE +function_id = '{{ function_id }}' --required +AND version_id = '{{ version_id }}' --required +AND secrets = '{{ secrets }}' --required; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_functions/function_versions/index.md b/website/docs/services/nvcf_functions/function_versions/index.md new file mode 100644 index 0000000..ce4347b --- /dev/null +++ b/website/docs/services/nvcf_functions/function_versions/index.md @@ -0,0 +1,759 @@ +--- +title: function_versions +hide_title: false +hide_table_of_contents: false +keywords: + - function_versions + - nvcf_functions + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>function_versions</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="function_versions" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_functions.function_versions" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>string (uuid)</code></td> + <td>Unique function id</td> +</tr> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Function name</td> +</tr> +<tr> + <td><CopyableCode code="nca_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>NVIDIA Cloud Account Id (wire: ncaId)</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string (uuid)</code></td> + <td>Unique function version id (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="helm_chart_service_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Helm Chart Service Name specified only when helmChart property is specified (wire: helmChartServiceName)</td> +</tr> +<tr> + <td><CopyableCode code="active_instances" /></td> + <td><code>array</code></td> + <td>List of active instances for this function. (wire: activeInstances)</td> +</tr> +<tr> + <td><CopyableCode code="api_body_format" /></td> + <td><code>string (UTF-8)</code></td> + <td>Invocation request body format (PREDICT_V2, CUSTOM) (wire: apiBodyFormat)</td> +</tr> +<tr> + <td><CopyableCode code="container_args" /></td> + <td><code>string (UTF-8)</code></td> + <td>Args used to launch the container (wire: containerArgs)</td> +</tr> +<tr> + <td><CopyableCode code="container_environment" /></td> + <td><code>array</code></td> + <td>Environment settings used to launch the container (wire: containerEnvironment)</td> +</tr> +<tr> + <td><CopyableCode code="container_image" /></td> + <td><code>string (uri)</code></td> + <td>Optional custom container (wire: containerImage)</td> +</tr> +<tr> + <td><CopyableCode code="created_at" /></td> + <td><code>string (date_time)</code></td> + <td>Function creation timestamp (wire: createdAt)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string (UTF-8)</code></td> + <td>Function/version description</td> +</tr> +<tr> + <td><CopyableCode code="function_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Used to indicate a STREAMING function. Defaults to DEFAULT. (DEFAULT, STREAMING, LLM) (wire: functionType)</td> +</tr> +<tr> + <td><CopyableCode code="health" /></td> + <td><code>object</code></td> + <td>Function health configuration</td> +</tr> +<tr> + <td><CopyableCode code="health_uri" /></td> + <td><code>string (uri)</code></td> + <td>Health endpoint for the container or helmChart. Deprecated, use health.uri instead. (wire: healthUri)</td> +</tr> +<tr> + <td><CopyableCode code="helm_chart" /></td> + <td><code>string (uri)</code></td> + <td>Optional Helm Chart (wire: helmChart)</td> +</tr> +<tr> + <td><CopyableCode code="inference_port" /></td> + <td><code>integer (int32)</code></td> + <td>Optional port number where the inference listener is running - defaults to 8000 for Triton (wire: inferencePort)</td> +</tr> +<tr> + <td><CopyableCode code="inference_url" /></td> + <td><code>string (uri)</code></td> + <td>Entrypoint for invoking the container to process requests (wire: inferenceUrl)</td> +</tr> +<tr> + <td><CopyableCode code="llm_invocation_config" /></td> + <td><code>object</code></td> + <td>Optional function-level LLM invocation configuration. (wire: llmInvocationConfig)</td> +</tr> +<tr> + <td><CopyableCode code="models" /></td> + <td><code>array</code></td> + <td>Optional list of models</td> +</tr> +<tr> + <td><CopyableCode code="owned_by_different_account" /></td> + <td><code>boolean</code></td> + <td>Indicates whether the function is owned by another account. If the account that is being used to lookup functions happens to be authorized to invoke/list this function which is owned by a different account, then this field is set to true and ncaId will contain the id of the account that owns the function. Otherwise, this field is not set as it defaults to false. (wire: ownedByDifferentAccount)</td> +</tr> +<tr> + <td><CopyableCode code="rate_limit" /></td> + <td><code>object</code></td> + <td>Optional rate limit policy (wire: rateLimit)</td> +</tr> +<tr> + <td><CopyableCode code="resources" /></td> + <td><code>array</code></td> + <td>Optional set of resources.</td> +</tr> +<tr> + <td><CopyableCode code="secrets" /></td> + <td><code>array</code></td> + <td>Optional secret names</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string (UTF-8)</code></td> + <td>Function status (ACTIVE, DEPLOYING, ERROR, INACTIVE, DELETED, DEGRADED, DEGRADING)</td> +</tr> +<tr> + <td><CopyableCode code="tags" /></td> + <td><code>array</code></td> + <td>Optional set of tags. Maximum allowed number of tags per function is 64. Maximum length of each tag is 128 chars.</td> +</tr> +<tr> + <td><CopyableCode code="telemetries" /></td> + <td><code>object</code></td> + <td>Optional telemetry configuration for the function</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>string (uuid)</code></td> + <td>Unique function id</td> +</tr> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Function name</td> +</tr> +<tr> + <td><CopyableCode code="nca_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>NVIDIA Cloud Account Id (wire: ncaId)</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string (uuid)</code></td> + <td>Unique function version id (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="helm_chart_service_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Helm Chart Service Name specified only when helmChart property is specified (wire: helmChartServiceName)</td> +</tr> +<tr> + <td><CopyableCode code="active_instances" /></td> + <td><code>array</code></td> + <td>List of active instances for this function. (wire: activeInstances)</td> +</tr> +<tr> + <td><CopyableCode code="api_body_format" /></td> + <td><code>string (UTF-8)</code></td> + <td>Invocation request body format (PREDICT_V2, CUSTOM) (wire: apiBodyFormat)</td> +</tr> +<tr> + <td><CopyableCode code="container_args" /></td> + <td><code>string (UTF-8)</code></td> + <td>Args used to launch the container (wire: containerArgs)</td> +</tr> +<tr> + <td><CopyableCode code="container_environment" /></td> + <td><code>array</code></td> + <td>Environment settings used to launch the container (wire: containerEnvironment)</td> +</tr> +<tr> + <td><CopyableCode code="container_image" /></td> + <td><code>string (uri)</code></td> + <td>Optional custom container (wire: containerImage)</td> +</tr> +<tr> + <td><CopyableCode code="created_at" /></td> + <td><code>string (date_time)</code></td> + <td>Function creation timestamp (wire: createdAt)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string (UTF-8)</code></td> + <td>Function/version description</td> +</tr> +<tr> + <td><CopyableCode code="function_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Used to indicate a STREAMING function. Defaults to DEFAULT. (DEFAULT, STREAMING, LLM) (wire: functionType)</td> +</tr> +<tr> + <td><CopyableCode code="health" /></td> + <td><code>object</code></td> + <td>Function health configuration</td> +</tr> +<tr> + <td><CopyableCode code="health_uri" /></td> + <td><code>string (uri)</code></td> + <td>Health endpoint for the container or helmChart. Deprecated, use health.uri instead. (wire: healthUri)</td> +</tr> +<tr> + <td><CopyableCode code="helm_chart" /></td> + <td><code>string (uri)</code></td> + <td>Optional Helm Chart (wire: helmChart)</td> +</tr> +<tr> + <td><CopyableCode code="inference_port" /></td> + <td><code>integer (int32)</code></td> + <td>Optional port number where the inference listener is running - defaults to 8000 for Triton (wire: inferencePort)</td> +</tr> +<tr> + <td><CopyableCode code="inference_url" /></td> + <td><code>string (uri)</code></td> + <td>Entrypoint for invoking the container to process requests (wire: inferenceUrl)</td> +</tr> +<tr> + <td><CopyableCode code="llm_invocation_config" /></td> + <td><code>object</code></td> + <td>Optional function-level LLM invocation configuration. (wire: llmInvocationConfig)</td> +</tr> +<tr> + <td><CopyableCode code="models" /></td> + <td><code>array</code></td> + <td>Optional list of models</td> +</tr> +<tr> + <td><CopyableCode code="owned_by_different_account" /></td> + <td><code>boolean</code></td> + <td>Indicates whether the function is owned by another account. If the account that is being used to lookup functions happens to be authorized to invoke/list this function which is owned by a different account, then this field is set to true and ncaId will contain the id of the account that owns the function. Otherwise, this field is not set as it defaults to false. (wire: ownedByDifferentAccount)</td> +</tr> +<tr> + <td><CopyableCode code="rate_limit" /></td> + <td><code>object</code></td> + <td>Optional rate limit policy (wire: rateLimit)</td> +</tr> +<tr> + <td><CopyableCode code="resources" /></td> + <td><code>array</code></td> + <td>Optional set of resources.</td> +</tr> +<tr> + <td><CopyableCode code="secrets" /></td> + <td><code>array</code></td> + <td>Optional secret names</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string (UTF-8)</code></td> + <td>Function status (ACTIVE, DEPLOYING, ERROR, INACTIVE, DELETED, DEGRADED, DEGRADING)</td> +</tr> +<tr> + <td><CopyableCode code="tags" /></td> + <td><code>array</code></td> + <td>Optional set of tags. Maximum allowed number of tags per function is 64. Maximum length of each tag is 128 chars.</td> +</tr> +<tr> + <td><CopyableCode code="telemetries" /></td> + <td><code>object</code></td> + <td>Optional telemetry configuration for the function</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-function_version_id"><code>function_version_id</code></a></td> + <td><a href="#parameter-include_secrets"><code>include_secrets</code></a></td> + <td>Retrieves detailed information of the specified function version in the authenticated NVIDIA Cloud Account. Requires a bearer token with 'list_functions' or 'list_functions_details' scopes in the HTTP Authorization header. </td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a></td> + <td></td> + <td>Lists details of all the versions of the specified function in the authenticated NVIDIA Cloud Account. Requires a bearer token with 'list_functions' or 'list_functions_details' scopes in the HTTP Authorization header. </td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-inference_url"><code>inference_url</code></a>, <a href="#parameter-name"><code>name</code></a></td> + <td></td> + <td>Creates a version of the specified function within the authenticated NVIDIA Cloud Account. If the function is public, then Account Admin cannot create a version. Requires a bearer token with 'register_function' scope in the HTTP Authorization header. </td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-function_version_id"><code>function_version_id</code></a></td> + <td></td> + <td>Updates mutable fields of the specified function version within the authenticated NVIDIA Cloud Account. The current request payload supports tags updates, rate limit updates, and model-specific LLM config updates. Requires a bearer token with 'update_function' scope in the HTTP Authorization header. </td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-function_version_id"><code>function_version_id</code></a></td> + <td></td> + <td>Deletes the specified function version in the authenticated NVIDIA Cloud Account. Requires a bearer token with 'delete_function' scope in the HTTP Authorization header. If the function version is public, then Account Admin cannot delete the function. </td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-function_id"> + <td><CopyableCode code="function_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function id</td> +</tr> +<tr id="parameter-function_version_id"> + <td><CopyableCode code="function_version_id" /></td> + <td><code>string (uuid)</code></td> + <td>Version id</td> +</tr> +<tr id="parameter-include_secrets"> + <td><CopyableCode code="include_secrets" /></td> + <td><code>boolean</code></td> + <td>Query param 'includeSecrets' indicates whether to include secret names for the function in the response. (wire: includeSecrets)</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get"> + +Retrieves detailed information of the specified function version in the authenticated NVIDIA Cloud Account. Requires a bearer token with 'list_functions' or 'list_functions_details' scopes in the HTTP Authorization header. + +```sql +SELECT +id, +name, +nca_id, +version_id, +helm_chart_service_name, +active_instances, +api_body_format, +container_args, +container_environment, +container_image, +created_at, +description, +function_type, +health, +health_uri, +helm_chart, +inference_port, +inference_url, +llm_invocation_config, +models, +owned_by_different_account, +rate_limit, +resources, +secrets, +status, +tags, +telemetries +FROM nvidia.nvcf_functions.function_versions +WHERE function_id = '{{ function_id }}' -- required +AND function_version_id = '{{ function_version_id }}' -- required +AND include_secrets = '{{ include_secrets }}' +; +``` +</TabItem> +<TabItem value="list"> + +Lists details of all the versions of the specified function in the authenticated NVIDIA Cloud Account. Requires a bearer token with 'list_functions' or 'list_functions_details' scopes in the HTTP Authorization header. + +```sql +SELECT +id, +name, +nca_id, +version_id, +helm_chart_service_name, +active_instances, +api_body_format, +container_args, +container_environment, +container_image, +created_at, +description, +function_type, +health, +health_uri, +helm_chart, +inference_port, +inference_url, +llm_invocation_config, +models, +owned_by_different_account, +rate_limit, +resources, +secrets, +status, +tags, +telemetries +FROM nvidia.nvcf_functions.function_versions +WHERE function_id = '{{ function_id }}' -- required +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create" + values={[ + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create"> + +Creates a version of the specified function within the authenticated NVIDIA Cloud Account. If the function is public, then Account Admin cannot create a version. Requires a bearer token with 'register_function' scope in the HTTP Authorization header. + +```sql +INSERT INTO nvidia.nvcf_functions.function_versions ( +api_body_format, +container_args, +container_environment, +container_image, +description, +function_type, +health, +health_uri, +helm_chart, +helm_chart_service_name, +inference_port, +inference_url, +llm_invocation_config, +models, +name, +rate_limit, +resources, +secrets, +tags, +telemetries, +function_id +) +SELECT +'{{ api_body_format }}', +'{{ container_args }}', +'{{ container_environment }}', +'{{ container_image }}', +'{{ description }}', +'{{ function_type }}', +'{{ health }}', +'{{ health_uri }}', +'{{ helm_chart }}', +'{{ helm_chart_service_name }}', +{{ inference_port }}, +'{{ inference_url }}' /* required */, +'{{ llm_invocation_config }}', +'{{ models }}', +'{{ name }}' /* required */, +'{{ rate_limit }}', +'{{ resources }}', +'{{ secrets }}', +'{{ tags }}', +'{{ telemetries }}', +'{{ function_id }}' +RETURNING +function +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: function_versions + props: + - name: function_id + value: "{{ function_id }}" + description: Required parameter for the function_versions resource. + - name: api_body_format + value: "{{ api_body_format }}" + description: | + Invocation request body format + valid_values: ['PREDICT_V2', 'CUSTOM'] + - name: container_args + value: "{{ container_args }}" + description: | + Args to be passed when launching the container + - name: container_environment + description: | + Environment settings for launching the container + value: + - key: "{{ key }}" + value: "{{ value }}" + - name: container_image + value: "{{ container_image }}" + description: | + Optional custom container image + - name: description + value: "{{ description }}" + description: | + Optional function/version description + - name: function_type + value: "{{ function_type }}" + description: | + Optional function type, used to indicate a STREAMING function. Defaults to DEFAULT. + valid_values: ['DEFAULT', 'STREAMING', 'LLM'] + - name: health + description: | + Function health + value: + expectedStatusCode: {{ expectedStatusCode }} + port: {{ port }} + protocol: "{{ protocol }}" + timeout: "{{ timeout }}" + uri: "{{ uri }}" + - name: health_uri + value: "{{ health_uri }}" + description: | + Health endpoint for the container or the helmChart + - name: helm_chart + value: "{{ helm_chart }}" + description: | + Optional Helm Chart + - name: helm_chart_service_name + value: "{{ helm_chart_service_name }}" + description: | + Helm Chart Service Name is required when helmChart property is specified + - name: inference_port + value: {{ inference_port }} + description: | + Optional port number where the inference listener is running. Defaults to 8000 + for Triton. + - name: inference_url + value: "{{ inference_url }}" + description: | + Entrypoint for invoking the container to process a request + - name: llm_invocation_config + description: | + Optional function-level LLM invocation configuration. Only valid for LLM-type functions. + value: + priority: + defaultPriority: {{ defaultPriority }} + perAccountPriority: "{{ perAccountPriority }}" + - name: models + description: | + Optional list of models + value: + - llmConfig: + routingMethod: "{{ routingMethod }}" + tokenRateLimit: "{{ tokenRateLimit }}" + tokenizer: "{{ tokenizer }}" + uris: + - "{{ uris }}" + name: "{{ name }}" + uri: "{{ uri }}" + version: "{{ version }}" + - name: name + value: "{{ name }}" + description: | + Function name must start with lowercase/uppercase/digit and can only contain lowercase, uppercase, digit, hyphen, and underscore characters + - name: rate_limit + description: | + Optional rate limit config + value: + exemptedNcaIds: + - "{{ exemptedNcaIds }}" + perNcaIdRate: "{{ perNcaIdRate }}" + perUserRate: "{{ perUserRate }}" + rateLimit: "{{ rateLimit }}" + syncCheck: {{ syncCheck }} + - name: resources + description: | + Optional set of resources + value: + - name: "{{ name }}" + uri: "{{ uri }}" + version: "{{ version }}" + - name: secrets + description: | + Optional secrets + value: + - name: "{{ name }}" + value: "{{ value }}" + - name: tags + value: + - "{{ tags }}" + description: | + Optional set of tags - could be empty. Provided by user + - name: telemetries + description: | + Optional telemetry configuration for logs, metrics, and traces. + value: + logsTelemetryId: "{{ logsTelemetryId }}" + metricsTelemetryId: "{{ metricsTelemetryId }}" + tracesTelemetryId: "{{ tracesTelemetryId }}" +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update" + values={[ + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update"> + +Updates mutable fields of the specified function version within the authenticated NVIDIA Cloud Account. The current request payload supports tags updates, rate limit updates, and model-specific LLM config updates. Requires a bearer token with 'update_function' scope in the HTTP Authorization header. + +```sql +UPDATE nvidia.nvcf_functions.function_versions +SET +llm_invocation_config = '{{ llm_invocation_config }}', +model_updates = '{{ model_updates }}', +rate_limit = '{{ rate_limit }}', +tags = '{{ tags }}' +WHERE +function_id = '{{ function_id }}' --required +AND function_version_id = '{{ function_version_id }}' --required +RETURNING +function; +``` +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete" + values={[ + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete"> + +Deletes the specified function version in the authenticated NVIDIA Cloud Account. Requires a bearer token with 'delete_function' scope in the HTTP Authorization header. If the function version is public, then Account Admin cannot delete the function. + +```sql +DELETE FROM nvidia.nvcf_functions.function_versions +WHERE function_id = '{{ function_id }}' --required +AND function_version_id = '{{ function_version_id }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_functions/functions/index.md b/website/docs/services/nvcf_functions/functions/index.md new file mode 100644 index 0000000..157395c --- /dev/null +++ b/website/docs/services/nvcf_functions/functions/index.md @@ -0,0 +1,481 @@ +--- +title: functions +hide_title: false +hide_table_of_contents: false +keywords: + - functions + - nvcf_functions + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>functions</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="functions" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_functions.functions" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list" + values={[ + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>string (uuid)</code></td> + <td>Unique function id</td> +</tr> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Function name</td> +</tr> +<tr> + <td><CopyableCode code="nca_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>NVIDIA Cloud Account Id (wire: ncaId)</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string (uuid)</code></td> + <td>Unique function version id (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="helm_chart_service_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Helm Chart Service Name specified only when helmChart property is specified (wire: helmChartServiceName)</td> +</tr> +<tr> + <td><CopyableCode code="active_instances" /></td> + <td><code>array</code></td> + <td>List of active instances for this function. (wire: activeInstances)</td> +</tr> +<tr> + <td><CopyableCode code="api_body_format" /></td> + <td><code>string (UTF-8)</code></td> + <td>Invocation request body format (PREDICT_V2, CUSTOM) (wire: apiBodyFormat)</td> +</tr> +<tr> + <td><CopyableCode code="container_args" /></td> + <td><code>string (UTF-8)</code></td> + <td>Args used to launch the container (wire: containerArgs)</td> +</tr> +<tr> + <td><CopyableCode code="container_environment" /></td> + <td><code>array</code></td> + <td>Environment settings used to launch the container (wire: containerEnvironment)</td> +</tr> +<tr> + <td><CopyableCode code="container_image" /></td> + <td><code>string (uri)</code></td> + <td>Optional custom container (wire: containerImage)</td> +</tr> +<tr> + <td><CopyableCode code="created_at" /></td> + <td><code>string (date_time)</code></td> + <td>Function creation timestamp (wire: createdAt)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string (UTF-8)</code></td> + <td>Function/version description</td> +</tr> +<tr> + <td><CopyableCode code="function_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Used to indicate a STREAMING function. Defaults to DEFAULT. (DEFAULT, STREAMING, LLM) (wire: functionType)</td> +</tr> +<tr> + <td><CopyableCode code="health" /></td> + <td><code>object</code></td> + <td>Function health configuration</td> +</tr> +<tr> + <td><CopyableCode code="health_uri" /></td> + <td><code>string (uri)</code></td> + <td>Health endpoint for the container or helmChart. Deprecated, use health.uri instead. (wire: healthUri)</td> +</tr> +<tr> + <td><CopyableCode code="helm_chart" /></td> + <td><code>string (uri)</code></td> + <td>Optional Helm Chart (wire: helmChart)</td> +</tr> +<tr> + <td><CopyableCode code="inference_port" /></td> + <td><code>integer (int32)</code></td> + <td>Optional port number where the inference listener is running - defaults to 8000 for Triton (wire: inferencePort)</td> +</tr> +<tr> + <td><CopyableCode code="inference_url" /></td> + <td><code>string (uri)</code></td> + <td>Entrypoint for invoking the container to process requests (wire: inferenceUrl)</td> +</tr> +<tr> + <td><CopyableCode code="llm_invocation_config" /></td> + <td><code>object</code></td> + <td>Optional function-level LLM invocation configuration. (wire: llmInvocationConfig)</td> +</tr> +<tr> + <td><CopyableCode code="models" /></td> + <td><code>array</code></td> + <td>Optional list of models</td> +</tr> +<tr> + <td><CopyableCode code="owned_by_different_account" /></td> + <td><code>boolean</code></td> + <td>Indicates whether the function is owned by another account. If the account that is being used to lookup functions happens to be authorized to invoke/list this function which is owned by a different account, then this field is set to true and ncaId will contain the id of the account that owns the function. Otherwise, this field is not set as it defaults to false. (wire: ownedByDifferentAccount)</td> +</tr> +<tr> + <td><CopyableCode code="rate_limit" /></td> + <td><code>object</code></td> + <td>Optional rate limit policy (wire: rateLimit)</td> +</tr> +<tr> + <td><CopyableCode code="resources" /></td> + <td><code>array</code></td> + <td>Optional set of resources.</td> +</tr> +<tr> + <td><CopyableCode code="secrets" /></td> + <td><code>array</code></td> + <td>Optional secret names</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string (UTF-8)</code></td> + <td>Function status (ACTIVE, DEPLOYING, ERROR, INACTIVE, DELETED, DEGRADED, DEGRADING)</td> +</tr> +<tr> + <td><CopyableCode code="tags" /></td> + <td><code>array</code></td> + <td>Optional set of tags. Maximum allowed number of tags per function is 64. Maximum length of each tag is 128 chars.</td> +</tr> +<tr> + <td><CopyableCode code="telemetries" /></td> + <td><code>object</code></td> + <td>Optional telemetry configuration for the function</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td><a href="#parameter-visibility"><code>visibility</code></a></td> + <td>Lists all the functions associated with the authenticated NVIDIA Cloud Account. Requires a bearer token with 'list_functions' or 'list_functions_details' scope in the HTTP Authorization header.</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-inference_url"><code>inference_url</code></a>, <a href="#parameter-name"><code>name</code></a></td> + <td></td> + <td>Creates a new function within the authenticated NVIDIA Cloud Account. Requires a bearer token with 'register_function' scope in the HTTP Authorization header. </td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-visibility"> + <td><CopyableCode code="visibility" /></td> + <td><code>array</code></td> + <td>Query param 'visibility' indicates the kind of functions to be included in the response. </td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list" + values={[ + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list"> + +Lists all the functions associated with the authenticated NVIDIA Cloud Account. Requires a bearer token with 'list_functions' or 'list_functions_details' scope in the HTTP Authorization header. + +```sql +SELECT +id, +name, +nca_id, +version_id, +helm_chart_service_name, +active_instances, +api_body_format, +container_args, +container_environment, +container_image, +created_at, +description, +function_type, +health, +health_uri, +helm_chart, +inference_port, +inference_url, +llm_invocation_config, +models, +owned_by_different_account, +rate_limit, +resources, +secrets, +status, +tags, +telemetries +FROM nvidia.nvcf_functions.functions +WHERE visibility = '{{ visibility }}' +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create" + values={[ + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create"> + +Creates a new function within the authenticated NVIDIA Cloud Account. Requires a bearer token with 'register_function' scope in the HTTP Authorization header. + +```sql +INSERT INTO nvidia.nvcf_functions.functions ( +api_body_format, +container_args, +container_environment, +container_image, +description, +function_type, +health, +health_uri, +helm_chart, +helm_chart_service_name, +inference_port, +inference_url, +llm_invocation_config, +models, +name, +rate_limit, +resources, +secrets, +tags, +telemetries +) +SELECT +'{{ api_body_format }}', +'{{ container_args }}', +'{{ container_environment }}', +'{{ container_image }}', +'{{ description }}', +'{{ function_type }}', +'{{ health }}', +'{{ health_uri }}', +'{{ helm_chart }}', +'{{ helm_chart_service_name }}', +{{ inference_port }}, +'{{ inference_url }}' /* required */, +'{{ llm_invocation_config }}', +'{{ models }}', +'{{ name }}' /* required */, +'{{ rate_limit }}', +'{{ resources }}', +'{{ secrets }}', +'{{ tags }}', +'{{ telemetries }}' +RETURNING +function +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: functions + props: + - name: api_body_format + value: "{{ api_body_format }}" + description: | + Invocation request body format + valid_values: ['PREDICT_V2', 'CUSTOM'] + - name: container_args + value: "{{ container_args }}" + description: | + Args to be passed when launching the container + - name: container_environment + description: | + Environment settings for launching the container + value: + - key: "{{ key }}" + value: "{{ value }}" + - name: container_image + value: "{{ container_image }}" + description: | + Optional custom container image + - name: description + value: "{{ description }}" + description: | + Optional function/version description + - name: function_type + value: "{{ function_type }}" + description: | + Optional function type, used to indicate a STREAMING function. Defaults to DEFAULT. + valid_values: ['DEFAULT', 'STREAMING', 'LLM'] + - name: health + description: | + Function health + value: + expectedStatusCode: {{ expectedStatusCode }} + port: {{ port }} + protocol: "{{ protocol }}" + timeout: "{{ timeout }}" + uri: "{{ uri }}" + - name: health_uri + value: "{{ health_uri }}" + description: | + Health endpoint for the container or the helmChart + - name: helm_chart + value: "{{ helm_chart }}" + description: | + Optional Helm Chart + - name: helm_chart_service_name + value: "{{ helm_chart_service_name }}" + description: | + Helm Chart Service Name is required when helmChart property is specified + - name: inference_port + value: {{ inference_port }} + description: | + Optional port number where the inference listener is running. Defaults to 8000 + for Triton. + - name: inference_url + value: "{{ inference_url }}" + description: | + Entrypoint for invoking the container to process a request + - name: llm_invocation_config + description: | + Optional function-level LLM invocation configuration. Only valid for LLM-type functions. + value: + priority: + defaultPriority: {{ defaultPriority }} + perAccountPriority: "{{ perAccountPriority }}" + - name: models + description: | + Optional list of models + value: + - llmConfig: + routingMethod: "{{ routingMethod }}" + tokenRateLimit: "{{ tokenRateLimit }}" + tokenizer: "{{ tokenizer }}" + uris: + - "{{ uris }}" + name: "{{ name }}" + uri: "{{ uri }}" + version: "{{ version }}" + - name: name + value: "{{ name }}" + description: | + Function name must start with lowercase/uppercase/digit and can only contain lowercase, uppercase, digit, hyphen, and underscore characters + - name: rate_limit + description: | + Optional rate limit config + value: + exemptedNcaIds: + - "{{ exemptedNcaIds }}" + perNcaIdRate: "{{ perNcaIdRate }}" + perUserRate: "{{ perUserRate }}" + rateLimit: "{{ rateLimit }}" + syncCheck: {{ syncCheck }} + - name: resources + description: | + Optional set of resources + value: + - name: "{{ name }}" + uri: "{{ uri }}" + version: "{{ version }}" + - name: secrets + description: | + Optional secrets + value: + - name: "{{ name }}" + value: "{{ value }}" + - name: tags + value: + - "{{ tags }}" + description: | + Optional set of tags - could be empty. Provided by user + - name: telemetries + description: | + Optional telemetry configuration for logs, metrics, and traces. + value: + logsTelemetryId: "{{ logsTelemetryId }}" + metricsTelemetryId: "{{ metricsTelemetryId }}" + tracesTelemetryId: "{{ tracesTelemetryId }}" +`}</CodeBlock> + +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_functions/index.md b/website/docs/services/nvcf_functions/index.md new file mode 100644 index 0000000..37acb64 --- /dev/null +++ b/website/docs/services/nvcf_functions/index.md @@ -0,0 +1,38 @@ +--- +title: nvcf_functions +hide_title: false +hide_table_of_contents: false +keywords: + - nvcf_functions + - nvidia + - stackql + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +nvcf_functions service documentation. + +:::info[Service Summary] + +total resources: __7__ + +::: + +## Resources +<div class="row"> +<div class="providerDocColumn"> +<a href="/services/nvcf_functions/authorizations/">authorizations</a><br /> +<a href="/services/nvcf_functions/function_ids/">function_ids</a><br /> +<a href="/services/nvcf_functions/function_metadata/">function_metadata</a><br /> +<a href="/services/nvcf_functions/function_ratelimits/">function_ratelimits</a> +</div> +<div class="providerDocColumn"> +<a href="/services/nvcf_functions/function_secrets/">function_secrets</a><br /> +<a href="/services/nvcf_functions/function_versions/">function_versions</a><br /> +<a href="/services/nvcf_functions/functions/">functions</a> +</div> +</div> \ No newline at end of file diff --git a/website/docs/services/nvcf_invocation/assets/index.md b/website/docs/services/nvcf_invocation/assets/index.md new file mode 100644 index 0000000..9a33838 --- /dev/null +++ b/website/docs/services/nvcf_invocation/assets/index.md @@ -0,0 +1,286 @@ +--- +title: assets +hide_title: false +hide_table_of_contents: false +keywords: + - assets + - nvcf_invocation + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>assets</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="assets" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_invocation.assets" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="asset_id" /></td> + <td><code>string (uuid)</code></td> + <td>Asset id (wire: assetId)</td> +</tr> +<tr> + <td><CopyableCode code="content_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Content-type specified when creating the asset (wire: contentType)</td> +</tr> +<tr> + <td><CopyableCode code="created_at" /></td> + <td><code>string (date_time)</code></td> + <td>Timestamp specified when creating the asset (wire: createdAt)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string (UTF-8)</code></td> + <td>Description specified when creating the asset</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="asset_id" /></td> + <td><code>string (uuid)</code></td> + <td>Asset id (wire: assetId)</td> +</tr> +<tr> + <td><CopyableCode code="content_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Content-type specified when creating the asset (wire: contentType)</td> +</tr> +<tr> + <td><CopyableCode code="created_at" /></td> + <td><code>string (date_time)</code></td> + <td>Timestamp specified when creating the asset (wire: createdAt)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string (UTF-8)</code></td> + <td>Description specified when creating the asset</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-asset_id"><code>asset_id</code></a></td> + <td></td> + <td>Returns details for the specified asset-id belonging to the current NVIDIA Cloud Account. Requires a bearer token with 'invoke_function' scope in the HTTP Authorization header. </td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td></td> + <td>List assets owned by the current NVIDIA Cloud Account. Requires a bearer token with 'invoke_function' scope in the HTTP Authorization header. </td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-content_type"><code>content_type</code></a>, <a href="#parameter-description"><code>description</code></a></td> + <td></td> + <td>Creates a unique id representing an asset and a pre-signed URL to upload the asset artifact to AWS S3 bucket for the NVIDIA Cloud Account. Requires a bearer token with 'invoke_function' scope in the HTTP Authorization header. </td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-asset_id"><code>asset_id</code></a></td> + <td></td> + <td>Deletes asset belonging to the current NVIDIA Cloud Account. Requires a bearer token with 'invoke_function' scope in the HTTP Authorization header. </td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-asset_id"> + <td><CopyableCode code="asset_id" /></td> + <td><code>string (uuid)</code></td> + <td>Id of the asset to be deleted</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get"> + +Returns details for the specified asset-id belonging to the current NVIDIA Cloud Account. Requires a bearer token with 'invoke_function' scope in the HTTP Authorization header. + +```sql +SELECT +asset_id, +content_type, +created_at, +description +FROM nvidia.nvcf_invocation.assets +WHERE asset_id = '{{ asset_id }}' -- required +; +``` +</TabItem> +<TabItem value="list"> + +List assets owned by the current NVIDIA Cloud Account. Requires a bearer token with 'invoke_function' scope in the HTTP Authorization header. + +```sql +SELECT +asset_id, +content_type, +created_at, +description +FROM nvidia.nvcf_invocation.assets +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create" + values={[ + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create"> + +Creates a unique id representing an asset and a pre-signed URL to upload the asset artifact to AWS S3 bucket for the NVIDIA Cloud Account. Requires a bearer token with 'invoke_function' scope in the HTTP Authorization header. + +```sql +INSERT INTO nvidia.nvcf_invocation.assets ( +content_type, +description +) +SELECT +'{{ content_type }}' /* required */, +'{{ description }}' /* required */ +RETURNING +asset_id, +content_type, +description, +upload_url +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: assets + props: + - name: content_type + value: "{{ content_type }}" + description: | + Content type of the asset such image/png, image/jpeg, etc. + - name: description + value: "{{ description }}" + description: | + Asset description +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete" + values={[ + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete"> + +Deletes asset belonging to the current NVIDIA Cloud Account. Requires a bearer token with 'invoke_function' scope in the HTTP Authorization header. + +```sql +DELETE FROM nvidia.nvcf_invocation.assets +WHERE asset_id = '{{ asset_id }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_invocation/index.md b/website/docs/services/nvcf_invocation/index.md new file mode 100644 index 0000000..9a0c7ed --- /dev/null +++ b/website/docs/services/nvcf_invocation/index.md @@ -0,0 +1,35 @@ +--- +title: nvcf_invocation +hide_title: false +hide_table_of_contents: false +keywords: + - nvcf_invocation + - nvidia + - stackql + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +nvcf_invocation service documentation. + +:::info[Service Summary] + +total resources: __4__ + +::: + +## Resources +<div class="row"> +<div class="providerDocColumn"> +<a href="/services/nvcf_invocation/assets/">assets</a><br /> +<a href="/services/nvcf_invocation/invocation_status/">invocation_status</a> +</div> +<div class="providerDocColumn"> +<a href="/services/nvcf_invocation/invocations/">invocations</a><br /> +<a href="/services/nvcf_invocation/tokens/">tokens</a> +</div> +</div> \ No newline at end of file diff --git a/website/docs/services/nvcf_invocation/invocation_status/index.md b/website/docs/services/nvcf_invocation/invocation_status/index.md new file mode 100644 index 0000000..819ef51 --- /dev/null +++ b/website/docs/services/nvcf_invocation/invocation_status/index.md @@ -0,0 +1,128 @@ +--- +title: invocation_status +hide_title: false +hide_table_of_contents: false +keywords: + - invocation_status + - nvcf_invocation + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>invocation_status</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="invocation_status" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_invocation.invocation_status" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' } + ]} +> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="response" /></td> + <td><code>string</code></td> + <td>The invocation response body as returned by the function (JSON text); empty while the request is still pending (HTTP 202)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-request_id"><code>request_id</code></a></td> + <td></td> + <td>Deprecated and will be removed soon. Please use the new NVCF Invocation API endpoint to invoke a function and stream results without polling. Retrieves the status of an in-progress or pending request using its unique invocation request ID. If the result is available, it will be included in the response, marking the request as fulfilled. Conversely, if the result is not yet available, the request is deemed pending. Access to this endpoint mandates inclusion of a bearer token with 'invoke_function' scope in the HTTP Authorization header. In-progress responses are returned in order. If no in-progress response is received during polling you will receive the most recent in-progress response. Only the first 256 unread in-progress messages are kept. </td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-request_id"> + <td><CopyableCode code="request_id" /></td> + <td><code>string (uuid)</code></td> + <td>Invocation Request Id</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' } + ]} +> +<TabItem value="get"> + +Deprecated and will be removed soon. Please use the new NVCF Invocation API endpoint to invoke a function and stream results without polling. Retrieves the status of an in-progress or pending request using its unique invocation request ID. If the result is available, it will be included in the response, marking the request as fulfilled. Conversely, if the result is not yet available, the request is deemed pending. Access to this endpoint mandates inclusion of a bearer token with 'invoke_function' scope in the HTTP Authorization header. In-progress responses are returned in order. If no in-progress response is received during polling you will receive the most recent in-progress response. Only the first 256 unread in-progress messages are kept. + +```sql +SELECT +response +FROM nvidia.nvcf_invocation.invocation_status +WHERE request_id = '{{ request_id }}' -- required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_invocation/invocations/index.md b/website/docs/services/nvcf_invocation/invocations/index.md new file mode 100644 index 0000000..316968f --- /dev/null +++ b/website/docs/services/nvcf_invocation/invocations/index.md @@ -0,0 +1,150 @@ +--- +title: invocations +hide_title: false +hide_table_of_contents: false +keywords: + - invocations + - nvcf_invocation + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>invocations</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="invocations" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_invocation.invocations" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#invoke"><CopyableCode code="invoke" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-body"><code>body</code></a></td> + <td><a href="#parameter-NVCF-INPUT-ASSET-REFERENCES"><code>NVCF-INPUT-ASSET-REFERENCES</code></a>, <a href="#parameter-NVCF-POLL-SECONDS"><code>NVCF-POLL-SECONDS</code></a></td> + <td>Deprecated and will be removed soon. Please use the new NVCF Invocation API endpoint to invoke a function. Invokes the specified function that was successfully deployed. If the version is not specified, any active function versions will handle the request. If the version is specified in the URI, then the request is exclusively processed by the designated version of the function. By default, this endpoint will block for 5 seconds. If the request is not fulfilled before the timeout, it's status is considered in-progress or pending and the response includes HTTP status code 202 with an invocation request ID, indicating that the client should commence polling for the result using the invocation request ID. Access to this endpoint mandates inclusion of a bearer token with 'invoke_function' scope in the HTTP Authorization header. Additionally, this endpoint has the capability to provide updates on the progress of the request, contingent upon the workload's provision of such information. In-progress responses are returned in order. If no in-progress response is received during polling you will receive the most recent in-progress response. Only the first 256 unread in-progress messages are kept. </td> +</tr> +<tr> + <td><a href="#invoke_version"><CopyableCode code="invoke_version" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-version_id"><code>version_id</code></a>, <a href="#parameter-body"><code>body</code></a></td> + <td><a href="#parameter-NVCF-INPUT-ASSET-REFERENCES"><code>NVCF-INPUT-ASSET-REFERENCES</code></a>, <a href="#parameter-NVCF-POLL-SECONDS"><code>NVCF-POLL-SECONDS</code></a></td> + <td>Deprecated and will be removed soon. Please use the new NVCF Invocation API endpoint to invoke a function. Invokes the specified function that was successfully deployed. If the version is not specified, any active function versions will handle the request. If the version is specified in the URI, then the request is exclusively processed by the designated version of the function. By default, this endpoint will block for 5 seconds. If the request is not fulfilled before the timeout, it's status is considered in-progress or pending and the response includes HTTP status code 202 with an invocation request ID, indicating that the client should commence polling for the result using the invocation request ID. Access to this endpoint mandates inclusion of a bearer token with 'invoke_function' scope in the HTTP Authorization header. Additionally, this endpoint has the capability to provide updates on the progress of the request, contingent upon the workload's provision of such information. In-progress responses are returned in order. If no in-progress response is received during polling you will receive the most recent in-progress response. Only the first 256 unread in-progress messages are kept. </td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-function_id"> + <td><CopyableCode code="function_id" /></td> + <td><code>string (uuid)</code></td> + <td></td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function version id</td> +</tr> +<tr id="parameter-NVCF-INPUT-ASSET-REFERENCES"> + <td><CopyableCode code="NVCF-INPUT-ASSET-REFERENCES" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr id="parameter-NVCF-POLL-SECONDS"> + <td><CopyableCode code="NVCF-POLL-SECONDS" /></td> + <td><code>integer (int32)</code></td> + <td></td> +</tr> +</tbody> +</table> + +## Lifecycle Methods + +EXEC variables use wire (API) names. + +<Tabs + defaultValue="invoke" + values={[ + { label: 'invoke', value: 'invoke' }, + { label: 'invoke_version', value: 'invoke_version' } + ]} +> +<TabItem value="invoke"> + +Deprecated and will be removed soon. Please use the new NVCF Invocation API endpoint to invoke a function. Invokes the specified function that was successfully deployed. If the version is not specified, any active function versions will handle the request. If the version is specified in the URI, then the request is exclusively processed by the designated version of the function. By default, this endpoint will block for 5 seconds. If the request is not fulfilled before the timeout, it's status is considered in-progress or pending and the response includes HTTP status code 202 with an invocation request ID, indicating that the client should commence polling for the result using the invocation request ID. Access to this endpoint mandates inclusion of a bearer token with 'invoke_function' scope in the HTTP Authorization header. Additionally, this endpoint has the capability to provide updates on the progress of the request, contingent upon the workload's provision of such information. In-progress responses are returned in order. If no in-progress response is received during polling you will receive the most recent in-progress response. Only the first 256 unread in-progress messages are kept. + +```sql +EXEC nvidia.nvcf_invocation.invocations.invoke +@function_id='{{ function_id }}' --required, +@NVCF-INPUT-ASSET-REFERENCES='{{ NVCF-INPUT-ASSET-REFERENCES }}', +@NVCF-POLL-SECONDS='{{ NVCF-POLL-SECONDS }}' +@@json= +'{ +"body": "{{ body }}" +}' +; +``` +</TabItem> +<TabItem value="invoke_version"> + +Deprecated and will be removed soon. Please use the new NVCF Invocation API endpoint to invoke a function. Invokes the specified function that was successfully deployed. If the version is not specified, any active function versions will handle the request. If the version is specified in the URI, then the request is exclusively processed by the designated version of the function. By default, this endpoint will block for 5 seconds. If the request is not fulfilled before the timeout, it's status is considered in-progress or pending and the response includes HTTP status code 202 with an invocation request ID, indicating that the client should commence polling for the result using the invocation request ID. Access to this endpoint mandates inclusion of a bearer token with 'invoke_function' scope in the HTTP Authorization header. Additionally, this endpoint has the capability to provide updates on the progress of the request, contingent upon the workload's provision of such information. In-progress responses are returned in order. If no in-progress response is received during polling you will receive the most recent in-progress response. Only the first 256 unread in-progress messages are kept. + +```sql +EXEC nvidia.nvcf_invocation.invocations.invoke_version +@function_id='{{ function_id }}' --required, +@version_id='{{ version_id }}' --required, +@NVCF-INPUT-ASSET-REFERENCES='{{ NVCF-INPUT-ASSET-REFERENCES }}', +@NVCF-POLL-SECONDS='{{ NVCF-POLL-SECONDS }}' +@@json= +'{ +"body": "{{ body }}" +}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_invocation/tokens/index.md b/website/docs/services/nvcf_invocation/tokens/index.md new file mode 100644 index 0000000..97d5b7a --- /dev/null +++ b/website/docs/services/nvcf_invocation/tokens/index.md @@ -0,0 +1,158 @@ +--- +title: tokens +hide_title: false +hide_table_of_contents: false +keywords: + - tokens + - nvcf_invocation + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>tokens</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="tokens" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_invocation.tokens" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#create_for_functions"><CopyableCode code="create_for_functions" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-clientId"><code>clientId</code></a>, <a href="#parameter-functions"><code>functions</code></a></td> + <td></td> + <td>Issues an assertion token from Notary Service for specified functionIds and/or functionVersionIds </td> +</tr> +<tr> + <td><a href="#create_for_function"><CopyableCode code="create_for_function" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-clientId"><code>clientId</code></a></td> + <td></td> + <td>Issues an assertion token from Notary Service for a specific functionId and/or functionVersionId </td> +</tr> +<tr> + <td><a href="#create_for_version"><CopyableCode code="create_for_version" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-function_version_id"><code>function_version_id</code></a>, <a href="#parameter-clientId"><code>clientId</code></a></td> + <td></td> + <td>Issues an assertion token from Notary Service for a specific functionId and/or functionVersionId </td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-function_id"> + <td><CopyableCode code="function_id" /></td> + <td><code>string (uuid)</code></td> + <td></td> +</tr> +<tr id="parameter-function_version_id"> + <td><CopyableCode code="function_version_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function version id</td> +</tr> +</tbody> +</table> + +## Lifecycle Methods + +EXEC variables use wire (API) names. + +<Tabs + defaultValue="create_for_functions" + values={[ + { label: 'create_for_functions', value: 'create_for_functions' }, + { label: 'create_for_function', value: 'create_for_function' }, + { label: 'create_for_version', value: 'create_for_version' } + ]} +> +<TabItem value="create_for_functions"> + +Issues an assertion token from Notary Service for specified functionIds and/or functionVersionIds + +```sql +EXEC nvidia.nvcf_invocation.tokens.create_for_functions +@@json= +'{ +"clientId": "{{ clientId }}", +"functions": "{{ functions }}" +}' +; +``` +</TabItem> +<TabItem value="create_for_function"> + +Issues an assertion token from Notary Service for a specific functionId and/or functionVersionId + +```sql +EXEC nvidia.nvcf_invocation.tokens.create_for_function +@function_id='{{ function_id }}' --required +@@json= +'{ +"clientId": "{{ clientId }}" +}' +; +``` +</TabItem> +<TabItem value="create_for_version"> + +Issues an assertion token from Notary Service for a specific functionId and/or functionVersionId + +```sql +EXEC nvidia.nvcf_invocation.tokens.create_for_version +@function_id='{{ function_id }}' --required, +@function_version_id='{{ function_version_id }}' --required +@@json= +'{ +"clientId": "{{ clientId }}" +}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_queues/index.md b/website/docs/services/nvcf_queues/index.md new file mode 100644 index 0000000..1981662 --- /dev/null +++ b/website/docs/services/nvcf_queues/index.md @@ -0,0 +1,33 @@ +--- +title: nvcf_queues +hide_title: false +hide_table_of_contents: false +keywords: + - nvcf_queues + - nvidia + - stackql + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +nvcf_queues service documentation. + +:::info[Service Summary] + +total resources: __2__ + +::: + +## Resources +<div class="row"> +<div class="providerDocColumn"> +<a href="/services/nvcf_queues/queue_positions/">queue_positions</a> +</div> +<div class="providerDocColumn"> +<a href="/services/nvcf_queues/queues/">queues</a> +</div> +</div> \ No newline at end of file diff --git a/website/docs/services/nvcf_queues/queue_positions/index.md b/website/docs/services/nvcf_queues/queue_positions/index.md new file mode 100644 index 0000000..084f399 --- /dev/null +++ b/website/docs/services/nvcf_queues/queue_positions/index.md @@ -0,0 +1,140 @@ +--- +title: queue_positions +hide_title: false +hide_table_of_contents: false +keywords: + - queue_positions + - nvcf_queues + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>queue_positions</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="queue_positions" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_queues.queue_positions" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' } + ]} +> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="function_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function id (wire: functionId)</td> +</tr> +<tr> + <td><CopyableCode code="function_version_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function version id (wire: functionVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="position_in_queue" /></td> + <td><code>integer (int32)</code></td> + <td>Position of request in queue (wire: positionInQueue)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-request_id"><code>request_id</code></a></td> + <td></td> + <td>Using the specified function invocation request id, returns the estimated position of the corresponding message up to 1000 in the queue. Requires a bearer token or an api-key with 'queue_details' scope in the HTTP Authorization header. </td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-request_id"> + <td><CopyableCode code="request_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function invocation request id</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' } + ]} +> +<TabItem value="get"> + +Using the specified function invocation request id, returns the estimated position of the corresponding message up to 1000 in the queue. Requires a bearer token or an api-key with 'queue_details' scope in the HTTP Authorization header. + +```sql +SELECT +function_id, +function_version_id, +position_in_queue +FROM nvidia.nvcf_queues.queue_positions +WHERE request_id = '{{ request_id }}' -- required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/nvcf_queues/queues/index.md b/website/docs/services/nvcf_queues/queues/index.md new file mode 100644 index 0000000..8d0a942 --- /dev/null +++ b/website/docs/services/nvcf_queues/queues/index.md @@ -0,0 +1,210 @@ +--- +title: queues +hide_title: false +hide_table_of_contents: false +keywords: + - queues + - nvcf_queues + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>queues</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="queues" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.nvcf_queues.queues" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list_version" + values={[ + { label: 'list_version', value: 'list_version' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_version"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="function_version_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function version id (wire: functionVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="function_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Function name (wire: functionName)</td> +</tr> +<tr> + <td><CopyableCode code="function_status" /></td> + <td><code>string (UTF-8)</code></td> + <td>Function status (ACTIVE, DEPLOYING, ERROR, INACTIVE, DELETED, DEGRADED, DEGRADING) (wire: functionStatus)</td> +</tr> +<tr> + <td><CopyableCode code="queue_depth" /></td> + <td><code>integer (int32)</code></td> + <td>Approximate number of messages in the request queue (wire: queueDepth)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="function_version_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function version id (wire: functionVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="function_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Function name (wire: functionName)</td> +</tr> +<tr> + <td><CopyableCode code="function_status" /></td> + <td><code>string (UTF-8)</code></td> + <td>Function status (ACTIVE, DEPLOYING, ERROR, INACTIVE, DELETED, DEGRADED, DEGRADING) (wire: functionStatus)</td> +</tr> +<tr> + <td><CopyableCode code="queue_depth" /></td> + <td><code>integer (int32)</code></td> + <td>Approximate number of messages in the request queue (wire: queueDepth)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list_version"><CopyableCode code="list_version" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Provides details of all the queues associated with the specified function. If a function has multiple versions and they are all deployed, then the response includes details of all the queues. If the specified function is public, then Account Admin cannot perform this operation. Requires a bearer token or an api-key with 'queue_details' scope in the HTTP Authorization header. </td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-function_id"><code>function_id</code></a></td> + <td></td> + <td>Provides details of all the queues associated with the specified function. If a function has multiple versions and they are all deployed, then the response includes details of all the queues. If the specified function is public, then Account Admin cannot perform this operation. Requires a bearer token or an api-key with 'queue_details' scope in the HTTP Authorization header. </td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-function_id"> + <td><CopyableCode code="function_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function id</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (uuid)</code></td> + <td>Function version id</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list_version" + values={[ + { label: 'list_version', value: 'list_version' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_version"> + +Provides details of all the queues associated with the specified function. If a function has multiple versions and they are all deployed, then the response includes details of all the queues. If the specified function is public, then Account Admin cannot perform this operation. Requires a bearer token or an api-key with 'queue_details' scope in the HTTP Authorization header. + +```sql +SELECT +function_version_id, +function_name, +function_status, +queue_depth +FROM nvidia.nvcf_queues.queues +WHERE function_id = '{{ function_id }}' -- required +AND version_id = '{{ version_id }}' -- required +; +``` +</TabItem> +<TabItem value="list"> + +Provides details of all the queues associated with the specified function. If a function has multiple versions and they are all deployed, then the response includes details of all the queues. If the specified function is public, then Account Admin cannot perform this operation. Requires a bearer token or an api-key with 'queue_details' scope in the HTTP Authorization header. + +```sql +SELECT +function_version_id, +function_name, +function_status, +queue_depth +FROM nvidia.nvcf_queues.queues +WHERE function_id = '{{ function_id }}' -- required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/orgs/current_user/index.md b/website/docs/services/orgs/current_user/index.md new file mode 100644 index 0000000..b13269c --- /dev/null +++ b/website/docs/services/orgs/current_user/index.md @@ -0,0 +1,440 @@ +--- +title: current_user +hide_title: false +hide_table_of_contents: false +keywords: + - current_user + - orgs + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>current_user</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="current_user" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.orgs.current_user" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' } + ]} +> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>unique Id of this user.</td> +</tr> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>user name</td> +</tr> +<tr> + <td><CopyableCode code="client_id" /></td> + <td><code>string</code></td> + <td>unique auth client id of this user. (wire: clientId)</td> +</tr> +<tr> + <td><CopyableCode code="starfleet_id" /></td> + <td><code>string</code></td> + <td>unique starfleet id of this user. (wire: starfleetId)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Created date for this user (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="email" /></td> + <td><code>string</code></td> + <td>Email address of the user. This should be unique.</td> +</tr> +<tr> + <td><CopyableCode code="first_login_date" /></td> + <td><code>string</code></td> + <td>Last time the user logged in (wire: firstLoginDate)</td> +</tr> +<tr> + <td><CopyableCode code="has_beta_access" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has beta access (wire: hasBetaAccess)</td> +</tr> +<tr> + <td><CopyableCode code="has_profile" /></td> + <td><code>boolean</code></td> + <td>indicate if user profile has been completed. (wire: hasProfile)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_ai_foundry_partnerships_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted AI Foundry Partnerships eula (wire: hasSignedAiFoundryPartnershipsEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_aodteula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted AODT End User License Agreement. (wire: hasSignedAODTEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_base_command_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Base Command End User License Agreement. (wire: hasSignedBaseCommandEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_base_command_manager_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Base Command Manager End User License Agreement. (wire: hasSignedBaseCommandManagerEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_bio_ne_mo_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted BioNeMo End User License Agreement. (wire: hasSignedBioNeMoEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_container_publishing_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted container publishing eula (wire: hasSignedContainerPublishingEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_cu_opt_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted CuOpt eula (wire: hasSignedCuOptEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_earth_2_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Earth-2 eula (wire: hasSignedEarth2EULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_egx_eula" /></td> + <td><code>boolean</code></td> + <td>[Deprecated] indicates if user has accepted EGX End User License Agreement. (wire: hasSignedEgxEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_eula" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has signed the NGC End User License Agreement. (wire: hasSignedEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_fleet_command_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Fleet Command End User License Agreement. (wire: hasSignedFleetCommandEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_llm_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted LLM End User License Agreement. (wire: hasSignedLlmEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_nvaieeula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Fleet Command End User License Agreement. (wire: hasSignedNVAIEEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_nvidia_eula" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has signed the NVIDIA End User License Agreement. (wire: hasSignedNvidiaEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_nvqceula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Nvidia Quantum Cloud End User License Agreement. (wire: hasSignedNVQCEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_omniverse_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Omniverse End User License Agreement. (wire: hasSignedOmniverseEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_privacy_policy" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has signed the Privacy Policy. (wire: hasSignedPrivacyPolicy)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_third_party_registry_share_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has consented to share their registration info with other parties (wire: hasSignedThirdPartyRegistryShareEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_subscribed_to_email" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has opted in email subscription. (wire: hasSubscribedToEmail)</td> +</tr> +<tr> + <td><CopyableCode code="idp_type" /></td> + <td><code>string</code></td> + <td>Type of IDP, Identity Provider. Used for login. (NVIDIA, ENTERPRISE) (wire: idpType)</td> +</tr> +<tr> + <td><CopyableCode code="is_active" /></td> + <td><code>boolean</code></td> + <td>Determines if the user is active or not. (wire: isActive)</td> +</tr> +<tr> + <td><CopyableCode code="is_deleted" /></td> + <td><code>boolean</code></td> + <td>Indicates if user was deleted from the system. (wire: isDeleted)</td> +</tr> +<tr> + <td><CopyableCode code="is_saml" /></td> + <td><code>boolean</code></td> + <td>Determines if the user is a SAML account or not. (wire: isSAML)</td> +</tr> +<tr> + <td><CopyableCode code="job_position_title" /></td> + <td><code>string</code></td> + <td>Title of user's job position. (wire: jobPositionTitle)</td> +</tr> +<tr> + <td><CopyableCode code="last_login_date" /></td> + <td><code>string</code></td> + <td>Last time the user logged in (wire: lastLoginDate)</td> +</tr> +<tr> + <td><CopyableCode code="roles" /></td> + <td><code>array</code></td> + <td>List of roles that the user have</td> +</tr> +<tr> + <td><CopyableCode code="storage_quota" /></td> + <td><code>array</code></td> + <td>Storage quota for this user. (wire: storageQuota)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date for this user (wire: updatedDate)</td> +</tr> +<tr> + <td><CopyableCode code="user_metadata" /></td> + <td><code>object</code></td> + <td>Metadata information about the user. (wire: userMetadata)</td> +</tr> +<tr> + <td><CopyableCode code="verified" /></td> + <td><code>boolean</code></td> + <td>Is user's email or phone number is verified</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td><a href="#parameter-org_name"><code>org_name</code></a></td> + <td>What am I?</td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td></td> + <td></td> + <td>Edit current user profile</td> +</tr> +<tr> + <td><a href="#create_api_key"><CopyableCode code="create_api_key" /></a></td> + <td><CopyableCode code="exec" /></td> + <td></td> + <td></td> + <td>Generate API Key</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-org_name"> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td></td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' } + ]} +> +<TabItem value="get"> + +What am I? + +```sql +SELECT +id, +name, +client_id, +starfleet_id, +created_date, +email, +first_login_date, +has_beta_access, +has_profile, +has_signed_ai_foundry_partnerships_eula, +has_signed_aodteula, +has_signed_base_command_eula, +has_signed_base_command_manager_eula, +has_signed_bio_ne_mo_eula, +has_signed_container_publishing_eula, +has_signed_cu_opt_eula, +has_signed_earth_2_eula, +has_signed_egx_eula, +has_signed_eula, +has_signed_fleet_command_eula, +has_signed_llm_eula, +has_signed_nvaieeula, +has_signed_nvidia_eula, +has_signed_nvqceula, +has_signed_omniverse_eula, +has_signed_privacy_policy, +has_signed_third_party_registry_share_eula, +has_subscribed_to_email, +idp_type, +is_active, +is_deleted, +is_saml, +job_position_title, +last_login_date, +roles, +storage_quota, +updated_date, +user_metadata, +verified +FROM nvidia.orgs.current_user +WHERE org_name = '{{ org_name }}' +; +``` +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update" + values={[ + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update"> + +Edit current user profile + +```sql +UPDATE nvidia.orgs.current_user +SET +has_email_opt_in = {{ has_email_opt_in }}, +has_signed_aodteula = {{ has_signed_aodteula }}, +has_signed_ai_foundry_partnerships_eula = {{ has_signed_ai_foundry_partnerships_eula }}, +has_signed_base_command_eula = {{ has_signed_base_command_eula }}, +has_signed_base_command_manager_eula = {{ has_signed_base_command_manager_eula }}, +has_signed_bio_ne_mo_eula = {{ has_signed_bio_ne_mo_eula }}, +has_signed_container_publishing_eula = {{ has_signed_container_publishing_eula }}, +has_signed_cu_opt_eula = {{ has_signed_cu_opt_eula }}, +has_signed_eula = {{ has_signed_eula }}, +has_signed_earth_2_eula = {{ has_signed_earth_2_eula }}, +has_signed_egx_eula = {{ has_signed_egx_eula }}, +has_signed_fleet_command_eula = {{ has_signed_fleet_command_eula }}, +has_signed_llm_eula = {{ has_signed_llm_eula }}, +has_signed_nvaieeula = {{ has_signed_nvaieeula }}, +has_signed_nvqceula = {{ has_signed_nvqceula }}, +has_signed_nvidia_eula = {{ has_signed_nvidia_eula }}, +has_signed_omniverse_eula = {{ has_signed_omniverse_eula }}, +has_signed_privacy_policy = {{ has_signed_privacy_policy }}, +has_signed_third_party_registry_share_eula = {{ has_signed_third_party_registry_share_eula }}, +name = '{{ name }}', +user_metadata = '{{ user_metadata }}' +RETURNING +activation_token, +nca_role, +request_status, +user, +user_roles; +``` +</TabItem> +</Tabs> + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + +<Tabs + defaultValue="create_api_key" + values={[ + { label: 'create_api_key', value: 'create_api_key' } + ]} +> +<TabItem value="create_api_key"> + +Generate API Key + +```sql +EXEC nvidia.orgs.current_user.create_api_key + +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/orgs/index.md b/website/docs/services/orgs/index.md new file mode 100644 index 0000000..f0cab2d --- /dev/null +++ b/website/docs/services/orgs/index.md @@ -0,0 +1,42 @@ +--- +title: orgs +hide_title: false +hide_table_of_contents: false +keywords: + - orgs + - nvidia + - stackql + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +orgs service documentation. + +:::info[Service Summary] + +total resources: __11__ + +::: + +## Resources +<div class="row"> +<div class="providerDocColumn"> +<a href="/services/orgs/current_user/">current_user</a><br /> +<a href="/services/orgs/orgs/">orgs</a><br /> +<a href="/services/orgs/proto_orgs/">proto_orgs</a><br /> +<a href="/services/orgs/roles/">roles</a><br /> +<a href="/services/orgs/team_invitations/">team_invitations</a><br /> +<a href="/services/orgs/team_member_roles/">team_member_roles</a> +</div> +<div class="providerDocColumn"> +<a href="/services/orgs/team_members/">team_members</a><br /> +<a href="/services/orgs/teams/">teams</a><br /> +<a href="/services/orgs/user_invitations/">user_invitations</a><br /> +<a href="/services/orgs/user_roles/">user_roles</a><br /> +<a href="/services/orgs/users/">users</a> +</div> +</div> \ No newline at end of file diff --git a/website/docs/services/orgs/orgs/index.md b/website/docs/services/orgs/orgs/index.md new file mode 100644 index 0000000..64fd5d0 --- /dev/null +++ b/website/docs/services/orgs/orgs/index.md @@ -0,0 +1,691 @@ +--- +title: orgs +hide_title: false +hide_table_of_contents: false +keywords: + - orgs + - orgs + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>orgs</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="orgs" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.orgs.orgs" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Unique Id of this team.</td> +</tr> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Organization name.</td> +</tr> +<tr> + <td><CopyableCode code="billing_account_id" /></td> + <td><code>string</code></td> + <td>Billing account ID. (wire: billingAccountId)</td> +</tr> +<tr> + <td><CopyableCode code="idp_id" /></td> + <td><code>string</code></td> + <td>Identity Provider ID. (wire: idpId)</td> +</tr> +<tr> + <td><CopyableCode code="pec_sfdc_id" /></td> + <td><code>string</code></td> + <td>Product end customer salesforce.com Id (external customer Id). pecSfdcId is for EMS (entitlement management service) to track external paid customer. (wire: pecSfdcId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Name of the organization that will be shown to users. (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="alternate_contact" /></td> + <td><code>object</code></td> + <td>Org Owner Alternate Contact (wire: alternateContact)</td> +</tr> +<tr> + <td><CopyableCode code="can_add_on" /></td> + <td><code>boolean</code></td> + <td>Identifies if the org can be reused. (wire: canAddOn)</td> +</tr> +<tr> + <td><CopyableCode code="country" /></td> + <td><code>string</code></td> + <td>ISO country code of the organization.</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Optional description of the organization.</td> +</tr> +<tr> + <td><CopyableCode code="industry" /></td> + <td><code>string</code></td> + <td>Industry of the organization.</td> +</tr> +<tr> + <td><CopyableCode code="infinity_manager_settings" /></td> + <td><code>object</code></td> + <td>Infinity manager setting definition (wire: infinityManagerSettings)</td> +</tr> +<tr> + <td><CopyableCode code="is_dataset_service_enabled" /></td> + <td><code>boolean</code></td> + <td>Dataset Service enable flag for an organization (wire: isDatasetServiceEnabled)</td> +</tr> +<tr> + <td><CopyableCode code="is_internal" /></td> + <td><code>boolean</code></td> + <td>Is NVIDIA internal org or not (wire: isInternal)</td> +</tr> +<tr> + <td><CopyableCode code="is_proto" /></td> + <td><code>boolean</code></td> + <td>Indicates when the org is a proto org (wire: isProto)</td> +</tr> +<tr> + <td><CopyableCode code="is_quick_start_enabled" /></td> + <td><code>boolean</code></td> + <td>Quick Start enable flag for an organization (wire: isQuickStartEnabled)</td> +</tr> +<tr> + <td><CopyableCode code="is_registry_sse_enabled" /></td> + <td><code>boolean</code></td> + <td>If a server side encryption is enabled for private registry (models, resources) (wire: isRegistrySSEEnabled)</td> +</tr> +<tr> + <td><CopyableCode code="is_secrets_manager_service_enabled" /></td> + <td><code>boolean</code></td> + <td>Secrets Manager Service enable flag for an organization (wire: isSecretsManagerServiceEnabled)</td> +</tr> +<tr> + <td><CopyableCode code="is_secure_credential_sharing_service_enabled" /></td> + <td><code>boolean</code></td> + <td>Secure Credential Sharing Service enable flag for an organization (wire: isSecureCredentialSharingServiceEnabled)</td> +</tr> +<tr> + <td><CopyableCode code="is_separate_influx_db_used" /></td> + <td><code>boolean</code></td> + <td>If a separate influx db used for an organization in BCP for job telemetry (wire: isSeparateInfluxDbUsed)</td> +</tr> +<tr> + <td><CopyableCode code="nca_account_number" /></td> + <td><code>string</code></td> + <td>NVIDIA Cloud Account Number. (wire: ncaAccountNumber)</td> +</tr> +<tr> + <td><CopyableCode code="org_owner" /></td> + <td><code>object</code></td> + <td>Org owner. (wire: orgOwner)</td> +</tr> +<tr> + <td><CopyableCode code="org_owners" /></td> + <td><code>array</code></td> + <td>Org owners (wire: orgOwners)</td> +</tr> +<tr> + <td><CopyableCode code="product_enablements" /></td> + <td><code>array</code></td> + <td> (wire: productEnablements)</td> +</tr> +<tr> + <td><CopyableCode code="product_subscriptions" /></td> + <td><code>array</code></td> + <td> (wire: productSubscriptions)</td> +</tr> +<tr> + <td><CopyableCode code="repo_scan_settings" /></td> + <td><code>object</code></td> + <td>Repo scan setting definition (wire: repoScanSettings)</td> +</tr> +<tr> + <td><CopyableCode code="type" /></td> + <td><code>string</code></td> + <td> (UNKNOWN, CLOUD, ENTERPRISE, INDIVIDUAL)</td> +</tr> +<tr> + <td><CopyableCode code="users_info" /></td> + <td><code>object</code></td> + <td>Users information. (wire: usersInfo)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Unique Id of this team.</td> +</tr> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Organization name.</td> +</tr> +<tr> + <td><CopyableCode code="billing_account_id" /></td> + <td><code>string</code></td> + <td>Billing account ID. (wire: billingAccountId)</td> +</tr> +<tr> + <td><CopyableCode code="idp_id" /></td> + <td><code>string</code></td> + <td>Identity Provider ID. (wire: idpId)</td> +</tr> +<tr> + <td><CopyableCode code="pec_sfdc_id" /></td> + <td><code>string</code></td> + <td>Product end customer salesforce.com Id (external customer Id). pecSfdcId is for EMS (entitlement management service) to track external paid customer. (wire: pecSfdcId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Name of the organization that will be shown to users. (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="alternate_contact" /></td> + <td><code>object</code></td> + <td>Org Owner Alternate Contact (wire: alternateContact)</td> +</tr> +<tr> + <td><CopyableCode code="can_add_on" /></td> + <td><code>boolean</code></td> + <td>Identifies if the org can be reused. (wire: canAddOn)</td> +</tr> +<tr> + <td><CopyableCode code="country" /></td> + <td><code>string</code></td> + <td>ISO country code of the organization.</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Optional description of the organization.</td> +</tr> +<tr> + <td><CopyableCode code="industry" /></td> + <td><code>string</code></td> + <td>Industry of the organization.</td> +</tr> +<tr> + <td><CopyableCode code="infinity_manager_settings" /></td> + <td><code>object</code></td> + <td>Infinity manager setting definition (wire: infinityManagerSettings)</td> +</tr> +<tr> + <td><CopyableCode code="is_dataset_service_enabled" /></td> + <td><code>boolean</code></td> + <td>Dataset Service enable flag for an organization (wire: isDatasetServiceEnabled)</td> +</tr> +<tr> + <td><CopyableCode code="is_internal" /></td> + <td><code>boolean</code></td> + <td>Is NVIDIA internal org or not (wire: isInternal)</td> +</tr> +<tr> + <td><CopyableCode code="is_proto" /></td> + <td><code>boolean</code></td> + <td>Indicates when the org is a proto org (wire: isProto)</td> +</tr> +<tr> + <td><CopyableCode code="is_quick_start_enabled" /></td> + <td><code>boolean</code></td> + <td>Quick Start enable flag for an organization (wire: isQuickStartEnabled)</td> +</tr> +<tr> + <td><CopyableCode code="is_registry_sse_enabled" /></td> + <td><code>boolean</code></td> + <td>If a server side encryption is enabled for private registry (models, resources) (wire: isRegistrySSEEnabled)</td> +</tr> +<tr> + <td><CopyableCode code="is_secrets_manager_service_enabled" /></td> + <td><code>boolean</code></td> + <td>Secrets Manager Service enable flag for an organization (wire: isSecretsManagerServiceEnabled)</td> +</tr> +<tr> + <td><CopyableCode code="is_secure_credential_sharing_service_enabled" /></td> + <td><code>boolean</code></td> + <td>Secure Credential Sharing Service enable flag for an organization (wire: isSecureCredentialSharingServiceEnabled)</td> +</tr> +<tr> + <td><CopyableCode code="is_separate_influx_db_used" /></td> + <td><code>boolean</code></td> + <td>If a separate influx db used for an organization in BCP for job telemetry (wire: isSeparateInfluxDbUsed)</td> +</tr> +<tr> + <td><CopyableCode code="nca_account_number" /></td> + <td><code>string</code></td> + <td>NVIDIA Cloud Account Number. (wire: ncaAccountNumber)</td> +</tr> +<tr> + <td><CopyableCode code="org_owner" /></td> + <td><code>object</code></td> + <td>Org owner. (wire: orgOwner)</td> +</tr> +<tr> + <td><CopyableCode code="org_owners" /></td> + <td><code>array</code></td> + <td>Org owners (wire: orgOwners)</td> +</tr> +<tr> + <td><CopyableCode code="product_enablements" /></td> + <td><code>array</code></td> + <td> (wire: productEnablements)</td> +</tr> +<tr> + <td><CopyableCode code="product_subscriptions" /></td> + <td><code>array</code></td> + <td> (wire: productSubscriptions)</td> +</tr> +<tr> + <td><CopyableCode code="repo_scan_settings" /></td> + <td><code>object</code></td> + <td>Repo scan setting definition (wire: repoScanSettings)</td> +</tr> +<tr> + <td><CopyableCode code="type" /></td> + <td><code>string</code></td> + <td> (UNKNOWN, CLOUD, ENTERPRISE, INDIVIDUAL)</td> +</tr> +<tr> + <td><CopyableCode code="users_info" /></td> + <td><code>object</code></td> + <td>Users information. (wire: usersInfo)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a></td> + <td></td> + <td>Get organization information</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td><a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-page_size"><code>page_size</code></a></td> + <td>List all organizations of the user</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td></td> + <td></td> + <td>Create a new organization based on the org info provided in the request.</td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-org_name"><code>org_name</code></a></td> + <td></td> + <td>Update organization information</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-org_name"> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td></td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>integer (int32)</code></td> + <td>The page number of result</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>integer (int32)</code></td> + <td>The page size of result</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get"> + +Get organization information + +```sql +SELECT +id, +name, +billing_account_id, +idp_id, +pec_sfdc_id, +display_name, +alternate_contact, +can_add_on, +country, +description, +industry, +infinity_manager_settings, +is_dataset_service_enabled, +is_internal, +is_proto, +is_quick_start_enabled, +is_registry_sse_enabled, +is_secrets_manager_service_enabled, +is_secure_credential_sharing_service_enabled, +is_separate_influx_db_used, +nca_account_number, +org_owner, +org_owners, +product_enablements, +product_subscriptions, +repo_scan_settings, +type, +users_info +FROM nvidia.orgs.orgs +WHERE org_name = '{{ org_name }}' -- required +; +``` +</TabItem> +<TabItem value="list"> + +List all organizations of the user + +```sql +SELECT +id, +name, +billing_account_id, +idp_id, +pec_sfdc_id, +display_name, +alternate_contact, +can_add_on, +country, +description, +industry, +infinity_manager_settings, +is_dataset_service_enabled, +is_internal, +is_proto, +is_quick_start_enabled, +is_registry_sse_enabled, +is_secrets_manager_service_enabled, +is_secure_credential_sharing_service_enabled, +is_separate_influx_db_used, +nca_account_number, +org_owner, +org_owners, +product_enablements, +product_subscriptions, +repo_scan_settings, +type, +users_info +FROM nvidia.orgs.orgs +WHERE page_number = '{{ page_number }}' +AND page_size = '{{ page_size }}' +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create" + values={[ + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create"> + +Create a new organization based on the org info provided in the request. + +```sql +INSERT INTO nvidia.orgs.orgs ( +country, +description, +display_name, +initiator, +is_internal, +name, +nca_id, +nca_number, +org_owner, +pec_name, +pec_sfdc_id, +product_enablements, +product_subscriptions, +proto_org_id, +salesforce_account_industry, +send_email, +type +) +SELECT +'{{ country }}', +'{{ description }}', +'{{ display_name }}', +'{{ initiator }}', +{{ is_internal }}, +'{{ name }}', +'{{ nca_id }}', +'{{ nca_number }}', +'{{ org_owner }}', +'{{ pec_name }}', +'{{ pec_sfdc_id }}', +'{{ product_enablements }}', +'{{ product_subscriptions }}', +'{{ proto_org_id }}', +'{{ salesforce_account_industry }}', +{{ send_email }}, +'{{ type }}' +RETURNING +organizations, +request_status +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: orgs + props: + - name: country + value: "{{ country }}" + description: | + user country + - name: description + value: "{{ description }}" + description: | + optional description of the organization + - name: display_name + value: "{{ display_name }}" + description: | + Name of the organization that will be shown to users. + - name: initiator + value: "{{ initiator }}" + description: | + Identify the initiator of the org request + - name: is_internal + value: {{ is_internal }} + description: | + Is NVIDIA internal org or not + - name: name + value: "{{ name }}" + description: | + Organization name + - name: nca_id + value: "{{ nca_id }}" + description: | + NVIDIA Cloud Account Identifier + - name: nca_number + value: "{{ nca_number }}" + description: | + NVIDIA Cloud Account Number + - name: org_owner + description: | + Org owner. + value: + email: "{{ email }}" + fullName: "{{ fullName }}" + idpId: "{{ idpId }}" + starfleetId: "{{ starfleetId }}" + - name: pec_name + value: "{{ pec_name }}" + description: | + product end customer name for enterprise(Fleet Command) product + - name: pec_sfdc_id + value: "{{ pec_sfdc_id }}" + description: | + product end customer salesforce.com Id (external customer Id) for enterprise(Fleet Command) product + - name: product_enablements + value: + - expirationDate: "{{ expirationDate }}" + poDetails: "{{ poDetails }}" + productName: "{{ productName }}" + type: "{{ type }}" + - name: product_subscriptions + description: | + This should be deprecated, use productEnablements instead + value: + - emsEntitlementType: "{{ emsEntitlementType }}" + expirationDate: "{{ expirationDate }}" + id: "{{ id }}" + productName: "{{ productName }}" + startDate: "{{ startDate }}" + type: "{{ type }}" + - name: proto_org_id + value: "{{ proto_org_id }}" + description: | + Proto org identifier + - name: salesforce_account_industry + value: "{{ salesforce_account_industry }}" + description: | + Company or organization industry + - name: send_email + value: {{ send_email }} + description: | + Send email to org owner or not. Default is true + - name: type + value: "{{ type }}" + valid_values: ['UNKNOWN', 'CLOUD', 'ENTERPRISE', 'INDIVIDUAL'] +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update" + values={[ + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update"> + +Update organization information + +```sql +UPDATE nvidia.orgs.orgs +SET +description = '{{ description }}', +display_name = '{{ display_name }}' +WHERE +org_name = '{{ org_name }}' --required +RETURNING +organizations, +request_status; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/orgs/proto_orgs/index.md b/website/docs/services/orgs/proto_orgs/index.md new file mode 100644 index 0000000..775eb03 --- /dev/null +++ b/website/docs/services/orgs/proto_orgs/index.md @@ -0,0 +1,288 @@ +--- +title: proto_orgs +hide_title: false +hide_table_of_contents: false +keywords: + - proto_orgs + - orgs + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>proto_orgs</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="proto_orgs" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.orgs.proto_orgs" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="validate" + values={[ + { label: 'validate', value: 'validate' } + ]} +> +<TabItem value="validate"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="proto_org_id" /></td> + <td><code>string</code></td> + <td>Proto Org identifier. (wire: protoOrgId)</td> +</tr> +<tr> + <td><CopyableCode code="email" /></td> + <td><code>string</code></td> + <td>Email address of the user.</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#validate"><CopyableCode code="validate" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-invitation_token"><code>invitation_token</code></a></td> + <td></td> + <td>Validate org creation from proto org</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td></td> + <td></td> + <td>Create a new organization based on the org info retrieved from the ProtoOrg.</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-invitation_token"> + <td><CopyableCode code="invitation_token" /></td> + <td><code>string</code></td> + <td>JWT that contains org owner email and proto org identifier</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="validate" + values={[ + { label: 'validate', value: 'validate' } + ]} +> +<TabItem value="validate"> + +Validate org creation from proto org + +```sql +SELECT +proto_org_id, +email +FROM nvidia.orgs.proto_orgs +WHERE invitation_token = '{{ invitation_token }}' -- required +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create" + values={[ + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create"> + +Create a new organization based on the org info retrieved from the ProtoOrg. + +```sql +INSERT INTO nvidia.orgs.proto_orgs ( +country, +description, +display_name, +initiator, +is_internal, +name, +nca_id, +nca_number, +org_owner, +pec_name, +pec_sfdc_id, +product_enablements, +product_subscriptions, +proto_org_id, +salesforce_account_industry, +send_email, +type +) +SELECT +'{{ country }}', +'{{ description }}', +'{{ display_name }}', +'{{ initiator }}', +{{ is_internal }}, +'{{ name }}', +'{{ nca_id }}', +'{{ nca_number }}', +'{{ org_owner }}', +'{{ pec_name }}', +'{{ pec_sfdc_id }}', +'{{ product_enablements }}', +'{{ product_subscriptions }}', +'{{ proto_org_id }}', +'{{ salesforce_account_industry }}', +{{ send_email }}, +'{{ type }}' +RETURNING +organizations, +request_status +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: proto_orgs + props: + - name: country + value: "{{ country }}" + description: | + user country + - name: description + value: "{{ description }}" + description: | + optional description of the organization + - name: display_name + value: "{{ display_name }}" + description: | + Name of the organization that will be shown to users. + - name: initiator + value: "{{ initiator }}" + description: | + Identify the initiator of the org request + - name: is_internal + value: {{ is_internal }} + description: | + Is NVIDIA internal org or not + - name: name + value: "{{ name }}" + description: | + Organization name + - name: nca_id + value: "{{ nca_id }}" + description: | + NVIDIA Cloud Account Identifier + - name: nca_number + value: "{{ nca_number }}" + description: | + NVIDIA Cloud Account Number + - name: org_owner + description: | + Org owner. + value: + email: "{{ email }}" + fullName: "{{ fullName }}" + idpId: "{{ idpId }}" + starfleetId: "{{ starfleetId }}" + - name: pec_name + value: "{{ pec_name }}" + description: | + product end customer name for enterprise(Fleet Command) product + - name: pec_sfdc_id + value: "{{ pec_sfdc_id }}" + description: | + product end customer salesforce.com Id (external customer Id) for enterprise(Fleet Command) product + - name: product_enablements + value: + - expirationDate: "{{ expirationDate }}" + poDetails: "{{ poDetails }}" + productName: "{{ productName }}" + type: "{{ type }}" + - name: product_subscriptions + description: | + This should be deprecated, use productEnablements instead + value: + - emsEntitlementType: "{{ emsEntitlementType }}" + expirationDate: "{{ expirationDate }}" + id: "{{ id }}" + productName: "{{ productName }}" + startDate: "{{ startDate }}" + type: "{{ type }}" + - name: proto_org_id + value: "{{ proto_org_id }}" + description: | + Proto org identifier + - name: salesforce_account_industry + value: "{{ salesforce_account_industry }}" + description: | + Company or organization industry + - name: send_email + value: {{ send_email }} + description: | + Send email to org owner or not. Default is true + - name: type + value: "{{ type }}" + valid_values: ['UNKNOWN', 'CLOUD', 'ENTERPRISE', 'INDIVIDUAL'] +`}</CodeBlock> + +</TabItem> +</Tabs> diff --git a/website/docs/services/orgs/roles/index.md b/website/docs/services/orgs/roles/index.md new file mode 100644 index 0000000..07f9c32 --- /dev/null +++ b/website/docs/services/orgs/roles/index.md @@ -0,0 +1,152 @@ +--- +title: roles +hide_title: false +hide_table_of_contents: false +keywords: + - roles + - orgs + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>roles</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="roles" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.orgs.roles" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list" + values={[ + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Name of the role</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display Name of the role (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="short_display_name" /></td> + <td><code>string</code></td> + <td>Short Display Name of the role (wire: shortDisplayName)</td> +</tr> +<tr> + <td><CopyableCode code="allowed_actions" /></td> + <td><code>array</code></td> + <td>List of actions that this role allows (wire: allowedActions)</td> +</tr> +<tr> + <td><CopyableCode code="product" /></td> + <td><code>object</code></td> + <td>Product information of the role</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td><a href="#parameter-show_hidden"><code>show_hidden</code></a></td> + <td>List of roles in NGC and their scopes</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-show_hidden"> + <td><CopyableCode code="show_hidden" /></td> + <td><code>boolean</code></td> + <td>flag indicate if hidden roles should be included</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list" + values={[ + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list"> + +List of roles in NGC and their scopes + +```sql +SELECT +name, +display_name, +short_display_name, +allowed_actions, +product +FROM nvidia.orgs.roles +WHERE show_hidden = '{{ show_hidden }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/orgs/team_invitations/index.md b/website/docs/services/orgs/team_invitations/index.md new file mode 100644 index 0000000..eeb9499 --- /dev/null +++ b/website/docs/services/orgs/team_invitations/index.md @@ -0,0 +1,339 @@ +--- +title: team_invitations +hide_title: false +hide_table_of_contents: false +keywords: + - team_invitations + - orgs + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>team_invitations</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="team_invitations" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.orgs.team_invitations" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list" + values={[ + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>string</code></td> + <td>Unique invitation ID</td> +</tr> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>user name</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Date on which the invitation was created. (ISO-8601 format) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="email" /></td> + <td><code>string</code></td> + <td>Email address of the user.</td> +</tr> +<tr> + <td><CopyableCode code="is_processed" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if the invitation has already been accepted by the user. (wire: isProcessed)</td> +</tr> +<tr> + <td><CopyableCode code="org" /></td> + <td><code>string</code></td> + <td>Org to which a user was invited.</td> +</tr> +<tr> + <td><CopyableCode code="roles" /></td> + <td><code>array</code></td> + <td>List of roles that the user have.</td> +</tr> +<tr> + <td><CopyableCode code="team" /></td> + <td><code>string</code></td> + <td>Team to which a user was invited.</td> +</tr> +<tr> + <td><CopyableCode code="type" /></td> + <td><code>string</code></td> + <td>Type of invitation. The invitation is either to an organization or to a team within organization. (ORGANIZATION, TEAM)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a></td> + <td><a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-order_by"><code>order_by</code></a>, <a href="#parameter-q"><code>q</code></a></td> + <td>List invitations in a team. (Team User Admin privileges required)</td> +</tr> +<tr> + <td><a href="#create_nca"><CopyableCode code="create_nca" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a></td> + <td></td> + <td>Invites and creates a User in team</td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-id"><code>id</code></a></td> + <td></td> + <td>Delete a specific invitation in an team. (Org Admin or Team User Admin privileges required)</td> +</tr> +<tr> + <td><a href="#resend_email"><CopyableCode code="resend_email" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-id"><code>id</code></a></td> + <td></td> + <td>Resend email of a specific invitation in a team (Org or Team User Admin privileges required).</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-id"> + <td><CopyableCode code="id" /></td> + <td><code>string</code></td> + <td></td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td></td> +</tr> +<tr id="parameter-order_by"> + <td><CopyableCode code="order_by" /></td> + <td><code>string</code></td> + <td> (wire: orderBy)</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>integer (int32)</code></td> + <td>The page number of result</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>integer (int32)</code></td> + <td>The page size of result</td> +</tr> +<tr id="parameter-q"> + <td><CopyableCode code="q" /></td> + <td><code>object</code></td> + <td>User Search Parameters</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list" + values={[ + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list"> + +List invitations in a team. (Team User Admin privileges required) + +```sql +SELECT +id, +name, +created_date, +email, +is_processed, +org, +roles, +team, +type +FROM nvidia.orgs.team_invitations +WHERE team_name = '{{ team_name }}' -- required +AND page_number = '{{ page_number }}' +AND page_size = '{{ page_size }}' +AND order_by = '{{ order_by }}' +AND q = '{{ q }}' +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create_nca" + values={[ + { label: 'create_nca', value: 'create_nca' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create_nca"> + +Invites and creates a User in team + +```sql +INSERT INTO nvidia.orgs.team_invitations ( +email, +invitation_expiration_in, +invite_as, +message, +team_name +) +SELECT +'{{ email }}', +{{ invitation_expiration_in }}, +'{{ invite_as }}', +'{{ message }}', +'{{ team_name }}' +RETURNING +activation_token, +nca_role, +request_status, +user, +user_roles +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: team_invitations + props: + - name: team_name + value: "{{ team_name }}" + description: Required parameter for the team_invitations resource. + - name: email + value: "{{ email }}" + description: | + Is the user email + - name: invitation_expiration_in + value: {{ invitation_expiration_in }} + description: | + Is the numbers of days the invitation will expire + - name: invite_as + value: "{{ invite_as }}" + description: | + Nca allow users to be invited as Admin and as Member + valid_values: ['ADMIN', 'MEMBER'] + - name: message + value: "{{ message }}" + description: | + Is a message to the new user +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete" + values={[ + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete"> + +Delete a specific invitation in an team. (Org Admin or Team User Admin privileges required) + +```sql +DELETE FROM nvidia.orgs.team_invitations +WHERE team_name = '{{ team_name }}' --required +AND id = '{{ id }}' --required +; +``` +</TabItem> +</Tabs> + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + +<Tabs + defaultValue="resend_email" + values={[ + { label: 'resend_email', value: 'resend_email' } + ]} +> +<TabItem value="resend_email"> + +Resend email of a specific invitation in a team (Org or Team User Admin privileges required). + +```sql +EXEC nvidia.orgs.team_invitations.resend_email +@team_name='{{ team_name }}' --required, +@id='{{ id }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/orgs/team_member_roles/index.md b/website/docs/services/orgs/team_member_roles/index.md new file mode 100644 index 0000000..f8cbc93 --- /dev/null +++ b/website/docs/services/orgs/team_member_roles/index.md @@ -0,0 +1,178 @@ +--- +title: team_member_roles +hide_title: false +hide_table_of_contents: false +keywords: + - team_member_roles + - orgs + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>team_member_roles</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="team_member_roles" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.orgs.team_member_roles" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#add"><CopyableCode code="add" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-user_email_or_id"><code>user_email_or_id</code></a>, <a href="#parameter-roles"><code>roles</code></a></td> + <td></td> + <td>Invite if user does not exist, otherwise add role in team</td> +</tr> +<tr> + <td><a href="#remove"><CopyableCode code="remove" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-user_email_or_id"><code>user_email_or_id</code></a></td> + <td><a href="#parameter-roles"><code>roles</code></a></td> + <td>Remove role in team if user exists, otherwise remove invitation</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-roles"> + <td><CopyableCode code="roles" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td></td> +</tr> +<tr id="parameter-user_email_or_id"> + <td><CopyableCode code="user_email_or_id" /></td> + <td><code>string</code></td> + <td></td> +</tr> +<tr id="parameter-roles"> + <td><CopyableCode code="roles" /></td> + <td><code>array</code></td> + <td></td> +</tr> +</tbody> +</table> + +## `INSERT` examples + +<Tabs + defaultValue="add" + values={[ + { label: 'add', value: 'add' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="add"> + +Invite if user does not exist, otherwise add role in team + +```sql +INSERT INTO nvidia.orgs.team_member_roles ( +team_name, +user_email_or_id, +roles +) +SELECT +'{{ team_name }}', +'{{ user_email_or_id }}', +'{{ roles }}' +RETURNING +activation_token, +nca_role, +request_status, +user, +user_roles +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: team_member_roles + props: + - name: team_name + value: "{{ team_name }}" + description: Required parameter for the team_member_roles resource. + - name: user_email_or_id + value: "{{ user_email_or_id }}" + description: Required parameter for the team_member_roles resource. + - name: roles + value: "{{ roles }}" + description: Required parameter for the team_member_roles resource. +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="remove" + values={[ + { label: 'remove', value: 'remove' } + ]} +> +<TabItem value="remove"> + +Remove role in team if user exists, otherwise remove invitation + +```sql +DELETE FROM nvidia.orgs.team_member_roles +WHERE team_name = '{{ team_name }}' --required +AND user_email_or_id = '{{ user_email_or_id }}' --required +AND roles = '{{ roles }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/orgs/team_members/index.md b/website/docs/services/orgs/team_members/index.md new file mode 100644 index 0000000..c27c5a6 --- /dev/null +++ b/website/docs/services/orgs/team_members/index.md @@ -0,0 +1,709 @@ +--- +title: team_members +hide_title: false +hide_table_of_contents: false +keywords: + - team_members + - orgs + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>team_members</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="team_members" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.orgs.team_members" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_starfleet_id" + values={[ + { label: 'get_by_starfleet_id', value: 'get_by_starfleet_id' }, + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_starfleet_id"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="activation_token" /></td> + <td><code>string</code></td> + <td>token needed to activate the user to enable login and other features (wire: activationToken)</td> +</tr> +<tr> + <td><CopyableCode code="nca_role" /></td> + <td><code>string</code></td> + <td>NCA role (UNKNOWN, ADMINISTRATOR, MEMBER, OWNER, PENDING) (wire: ncaRole)</td> +</tr> +<tr> + <td><CopyableCode code="request_status" /></td> + <td><code>object</code></td> + <td> (wire: requestStatus)</td> +</tr> +<tr> + <td><CopyableCode code="user" /></td> + <td><code>object</code></td> + <td>information about the user</td> +</tr> +<tr> + <td><CopyableCode code="user_roles" /></td> + <td><code>array</code></td> + <td>DEPRECATED - Please use roles inside user (wire: userRoles)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="activation_token" /></td> + <td><code>string</code></td> + <td>token needed to activate the user to enable login and other features (wire: activationToken)</td> +</tr> +<tr> + <td><CopyableCode code="nca_role" /></td> + <td><code>string</code></td> + <td>NCA role (UNKNOWN, ADMINISTRATOR, MEMBER, OWNER, PENDING) (wire: ncaRole)</td> +</tr> +<tr> + <td><CopyableCode code="request_status" /></td> + <td><code>object</code></td> + <td> (wire: requestStatus)</td> +</tr> +<tr> + <td><CopyableCode code="user" /></td> + <td><code>object</code></td> + <td>information about the user</td> +</tr> +<tr> + <td><CopyableCode code="user_roles" /></td> + <td><code>array</code></td> + <td>DEPRECATED - Please use roles inside user (wire: userRoles)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>unique Id of this user.</td> +</tr> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>user name</td> +</tr> +<tr> + <td><CopyableCode code="client_id" /></td> + <td><code>string</code></td> + <td>unique auth client id of this user. (wire: clientId)</td> +</tr> +<tr> + <td><CopyableCode code="starfleet_id" /></td> + <td><code>string</code></td> + <td>unique starfleet id of this user. (wire: starfleetId)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Created date for this user (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="email" /></td> + <td><code>string</code></td> + <td>Email address of the user. This should be unique.</td> +</tr> +<tr> + <td><CopyableCode code="first_login_date" /></td> + <td><code>string</code></td> + <td>Last time the user logged in (wire: firstLoginDate)</td> +</tr> +<tr> + <td><CopyableCode code="has_beta_access" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has beta access (wire: hasBetaAccess)</td> +</tr> +<tr> + <td><CopyableCode code="has_profile" /></td> + <td><code>boolean</code></td> + <td>indicate if user profile has been completed. (wire: hasProfile)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_ai_foundry_partnerships_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted AI Foundry Partnerships eula (wire: hasSignedAiFoundryPartnershipsEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_aodteula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted AODT End User License Agreement. (wire: hasSignedAODTEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_base_command_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Base Command End User License Agreement. (wire: hasSignedBaseCommandEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_base_command_manager_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Base Command Manager End User License Agreement. (wire: hasSignedBaseCommandManagerEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_bio_ne_mo_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted BioNeMo End User License Agreement. (wire: hasSignedBioNeMoEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_container_publishing_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted container publishing eula (wire: hasSignedContainerPublishingEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_cu_opt_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted CuOpt eula (wire: hasSignedCuOptEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_earth_2_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Earth-2 eula (wire: hasSignedEarth2EULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_egx_eula" /></td> + <td><code>boolean</code></td> + <td>[Deprecated] indicates if user has accepted EGX End User License Agreement. (wire: hasSignedEgxEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_eula" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has signed the NGC End User License Agreement. (wire: hasSignedEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_fleet_command_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Fleet Command End User License Agreement. (wire: hasSignedFleetCommandEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_llm_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted LLM End User License Agreement. (wire: hasSignedLlmEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_nvaieeula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Fleet Command End User License Agreement. (wire: hasSignedNVAIEEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_nvidia_eula" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has signed the NVIDIA End User License Agreement. (wire: hasSignedNvidiaEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_nvqceula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Nvidia Quantum Cloud End User License Agreement. (wire: hasSignedNVQCEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_omniverse_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Omniverse End User License Agreement. (wire: hasSignedOmniverseEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_privacy_policy" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has signed the Privacy Policy. (wire: hasSignedPrivacyPolicy)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_third_party_registry_share_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has consented to share their registration info with other parties (wire: hasSignedThirdPartyRegistryShareEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_subscribed_to_email" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has opted in email subscription. (wire: hasSubscribedToEmail)</td> +</tr> +<tr> + <td><CopyableCode code="idp_type" /></td> + <td><code>string</code></td> + <td>Type of IDP, Identity Provider. Used for login. (NVIDIA, ENTERPRISE) (wire: idpType)</td> +</tr> +<tr> + <td><CopyableCode code="is_active" /></td> + <td><code>boolean</code></td> + <td>Determines if the user is active or not. (wire: isActive)</td> +</tr> +<tr> + <td><CopyableCode code="is_deleted" /></td> + <td><code>boolean</code></td> + <td>Indicates if user was deleted from the system. (wire: isDeleted)</td> +</tr> +<tr> + <td><CopyableCode code="is_saml" /></td> + <td><code>boolean</code></td> + <td>Determines if the user is a SAML account or not. (wire: isSAML)</td> +</tr> +<tr> + <td><CopyableCode code="job_position_title" /></td> + <td><code>string</code></td> + <td>Title of user's job position. (wire: jobPositionTitle)</td> +</tr> +<tr> + <td><CopyableCode code="last_login_date" /></td> + <td><code>string</code></td> + <td>Last time the user logged in (wire: lastLoginDate)</td> +</tr> +<tr> + <td><CopyableCode code="roles" /></td> + <td><code>array</code></td> + <td>List of roles that the user have</td> +</tr> +<tr> + <td><CopyableCode code="storage_quota" /></td> + <td><code>array</code></td> + <td>Storage quota for this user. (wire: storageQuota)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date for this user (wire: updatedDate)</td> +</tr> +<tr> + <td><CopyableCode code="user_metadata" /></td> + <td><code>object</code></td> + <td>Metadata information about the user. (wire: userMetadata)</td> +</tr> +<tr> + <td><CopyableCode code="verified" /></td> + <td><code>boolean</code></td> + <td>Is user's email or phone number is verified</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_starfleet_id"><CopyableCode code="get_by_starfleet_id" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-starfleet_id"><code>starfleet_id</code></a></td> + <td></td> + <td>Get User details in team by starfleet Id</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-user_email_or_id"><code>user_email_or_id</code></a></td> + <td></td> + <td>Get info and role/invitation in a team by email or id</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a></td> + <td><a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-q"><code>q</code></a></td> + <td>Get list of users in team. (User Admin in team privileges required)</td> +</tr> +<tr> + <td><a href="#add"><CopyableCode code="add" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-id"><code>id</code></a></td> + <td></td> + <td>Add a User to team</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-email"><code>email</code></a></td> + <td><a href="#parameter-send_email"><code>send_email</code></a>, <a href="#parameter-idp_id"><code>idp_id</code></a></td> + <td>Creates a User and add them to a team within the org.</td> +</tr> +<tr> + <td><a href="#remove"><CopyableCode code="remove" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-id"><code>id</code></a></td> + <td><a href="#parameter-anonymize"><code>anonymize</code></a></td> + <td>Remove User from team.</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-id"> + <td><CopyableCode code="id" /></td> + <td><code>string</code></td> + <td></td> +</tr> +<tr id="parameter-starfleet_id"> + <td><CopyableCode code="starfleet_id" /></td> + <td><code>string</code></td> + <td></td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td></td> +</tr> +<tr id="parameter-user_email_or_id"> + <td><CopyableCode code="user_email_or_id" /></td> + <td><code>string</code></td> + <td></td> +</tr> +<tr id="parameter-anonymize"> + <td><CopyableCode code="anonymize" /></td> + <td><code>boolean</code></td> + <td>If anonymize is true, then org owner permission is required.</td> +</tr> +<tr id="parameter-idp_id"> + <td><CopyableCode code="idp_id" /></td> + <td><code>string</code></td> + <td>If the IDP ID is provided then it is used instead of the one configured for the organization</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>integer (int32)</code></td> + <td>The page number of result</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>integer (int32)</code></td> + <td>The page size of result</td> +</tr> +<tr id="parameter-q"> + <td><CopyableCode code="q" /></td> + <td><code>object</code></td> + <td>User Search Parameters. Only 'filters' and 'orderBy' for 'name' and 'email' are implemented</td> +</tr> +<tr id="parameter-send_email"> + <td><CopyableCode code="send_email" /></td> + <td><code>boolean</code></td> + <td></td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_starfleet_id" + values={[ + { label: 'get_by_starfleet_id', value: 'get_by_starfleet_id' }, + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_starfleet_id"> + +Get User details in team by starfleet Id + +```sql +SELECT +activation_token, +nca_role, +request_status, +user, +user_roles +FROM nvidia.orgs.team_members +WHERE team_name = '{{ team_name }}' -- required +AND starfleet_id = '{{ starfleet_id }}' -- required +; +``` +</TabItem> +<TabItem value="get"> + +Get info and role/invitation in a team by email or id + +```sql +SELECT +activation_token, +nca_role, +request_status, +user, +user_roles +FROM nvidia.orgs.team_members +WHERE team_name = '{{ team_name }}' -- required +AND user_email_or_id = '{{ user_email_or_id }}' -- required +; +``` +</TabItem> +<TabItem value="list"> + +Get list of users in team. (User Admin in team privileges required) + +```sql +SELECT +id, +name, +client_id, +starfleet_id, +created_date, +email, +first_login_date, +has_beta_access, +has_profile, +has_signed_ai_foundry_partnerships_eula, +has_signed_aodteula, +has_signed_base_command_eula, +has_signed_base_command_manager_eula, +has_signed_bio_ne_mo_eula, +has_signed_container_publishing_eula, +has_signed_cu_opt_eula, +has_signed_earth_2_eula, +has_signed_egx_eula, +has_signed_eula, +has_signed_fleet_command_eula, +has_signed_llm_eula, +has_signed_nvaieeula, +has_signed_nvidia_eula, +has_signed_nvqceula, +has_signed_omniverse_eula, +has_signed_privacy_policy, +has_signed_third_party_registry_share_eula, +has_subscribed_to_email, +idp_type, +is_active, +is_deleted, +is_saml, +job_position_title, +last_login_date, +roles, +storage_quota, +updated_date, +user_metadata, +verified +FROM nvidia.orgs.team_members +WHERE team_name = '{{ team_name }}' -- required +AND page_number = '{{ page_number }}' +AND page_size = '{{ page_size }}' +AND q = '{{ q }}' +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="add" + values={[ + { label: 'add', value: 'add' }, + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="add"> + +Add a User to team + +```sql +INSERT INTO nvidia.orgs.team_members ( +team_name, +id +) +SELECT +'{{ team_name }}', +'{{ id }}' +RETURNING +request_status +; +``` +</TabItem> +<TabItem value="create"> + +Creates a User and add them to a team within the org. + +```sql +INSERT INTO nvidia.orgs.team_members ( +email, +email_opt_in, +eula_accepted, +name, +role_type, +role_types, +salesforce_contact_job_role, +user_metadata, +team_name, +send_email, +idp_id +) +SELECT +'{{ email }}' /* required */, +{{ email_opt_in }}, +{{ eula_accepted }}, +'{{ name }}', +'{{ role_type }}', +'{{ role_types }}', +'{{ salesforce_contact_job_role }}', +'{{ user_metadata }}', +'{{ team_name }}', +'{{ send_email }}', +'{{ idp_id }}' +RETURNING +activation_token, +nca_role, +request_status, +user, +user_roles +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: team_members + props: + - name: team_name + value: "{{ team_name }}" + description: Required parameter for the team_members resource. + - name: id + value: "{{ id }}" + description: Required parameter for the team_members resource. + - name: email + value: "{{ email }}" + description: | + Email address of the user. This should be unique. + - name: email_opt_in + value: {{ email_opt_in }} + description: | + indicates if user has opt in to nvidia emails + - name: eula_accepted + value: {{ eula_accepted }} + description: | + indicates if user has accepted EULA + - name: name + value: "{{ name }}" + description: | + user name + - name: role_type + value: "{{ role_type }}" + description: | + DEPRECATED - use roleTypes which allows multiple roles + - name: role_types + value: + - "{{ role_types }}" + description: | + feature roles to give to the user + - name: salesforce_contact_job_role + value: "{{ salesforce_contact_job_role }}" + description: | + user job role + - name: user_metadata + description: | + Metadata information about the user. + value: + company: "{{ company }}" + companyUrl: "{{ companyUrl }}" + country: "{{ country }}" + firstName: "{{ firstName }}" + industry: "{{ industry }}" + interest: + - "{{ interest }}" + lastName: "{{ lastName }}" + role: "{{ role }}" + - name: send_email + value: {{ send_email }} + - name: idp_id + value: "{{ idp_id }}" + description: If the IDP ID is provided then it is used instead of the one configured for the organization + description: If the IDP ID is provided then it is used instead of the one configured for the organization +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="remove" + values={[ + { label: 'remove', value: 'remove' } + ]} +> +<TabItem value="remove"> + +Remove User from team. + +```sql +DELETE FROM nvidia.orgs.team_members +WHERE team_name = '{{ team_name }}' --required +AND id = '{{ id }}' --required +AND anonymize = '{{ anonymize }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/orgs/teams/index.md b/website/docs/services/orgs/teams/index.md new file mode 100644 index 0000000..aaa4cf7 --- /dev/null +++ b/website/docs/services/orgs/teams/index.md @@ -0,0 +1,355 @@ +--- +title: teams +hide_title: false +hide_table_of_contents: false +keywords: + - teams + - orgs + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>teams</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="teams" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.orgs.teams" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>unique Id of this team.</td> +</tr> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>team name</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>description of the team</td> +</tr> +<tr> + <td><CopyableCode code="infinity_manager_settings" /></td> + <td><code>object</code></td> + <td>Infinity manager setting definition (wire: infinityManagerSettings)</td> +</tr> +<tr> + <td><CopyableCode code="is_deleted" /></td> + <td><code>boolean</code></td> + <td>indicates if the team is deleted or not (wire: isDeleted)</td> +</tr> +<tr> + <td><CopyableCode code="repo_scan_settings" /></td> + <td><code>object</code></td> + <td>Repo scan setting definition (wire: repoScanSettings)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>unique Id of this team.</td> +</tr> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>team name</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>description of the team</td> +</tr> +<tr> + <td><CopyableCode code="infinity_manager_settings" /></td> + <td><code>object</code></td> + <td>Infinity manager setting definition (wire: infinityManagerSettings)</td> +</tr> +<tr> + <td><CopyableCode code="is_deleted" /></td> + <td><code>boolean</code></td> + <td>indicates if the team is deleted or not (wire: isDeleted)</td> +</tr> +<tr> + <td><CopyableCode code="repo_scan_settings" /></td> + <td><code>object</code></td> + <td>Repo scan setting definition (wire: repoScanSettings)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a></td> + <td></td> + <td>Get Team by name</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td><a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-page_size"><code>page_size</code></a></td> + <td>List all Teams</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-name"><code>name</code></a></td> + <td></td> + <td>Create team in org. (Org Admin Privileges Required)</td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a></td> + <td></td> + <td>Edit a Team</td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a></td> + <td></td> + <td>Delete a Team</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td></td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>integer (int32)</code></td> + <td>The page number of result</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>integer (int32)</code></td> + <td>The page size of result</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get" + values={[ + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get"> + +Get Team by name + +```sql +SELECT +id, +name, +description, +infinity_manager_settings, +is_deleted, +repo_scan_settings +FROM nvidia.orgs.teams +WHERE team_name = '{{ team_name }}' -- required +; +``` +</TabItem> +<TabItem value="list"> + +List all Teams + +```sql +SELECT +id, +name, +description, +infinity_manager_settings, +is_deleted, +repo_scan_settings +FROM nvidia.orgs.teams +WHERE page_number = '{{ page_number }}' +AND page_size = '{{ page_size }}' +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create" + values={[ + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create"> + +Create team in org. (Org Admin Privileges Required) + +```sql +INSERT INTO nvidia.orgs.teams ( +description, +name +) +SELECT +'{{ description }}', +'{{ name }}' /* required */ +RETURNING +request_status, +team +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: teams + props: + - name: description + value: "{{ description }}" + description: | + description of the team + - name: name + value: "{{ name }}" + description: | + team name +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update" + values={[ + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update"> + +Edit a Team + +```sql +UPDATE nvidia.orgs.teams +SET +description = '{{ description }}', +infinity_manager_settings = '{{ infinity_manager_settings }}', +repo_scan_settings = '{{ repo_scan_settings }}' +WHERE +team_name = '{{ team_name }}' --required +RETURNING +request_status, +team; +``` +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete" + values={[ + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete"> + +Delete a Team + +```sql +DELETE FROM nvidia.orgs.teams +WHERE team_name = '{{ team_name }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/orgs/user_invitations/index.md b/website/docs/services/orgs/user_invitations/index.md new file mode 100644 index 0000000..90a7e86 --- /dev/null +++ b/website/docs/services/orgs/user_invitations/index.md @@ -0,0 +1,326 @@ +--- +title: user_invitations +hide_title: false +hide_table_of_contents: false +keywords: + - user_invitations + - orgs + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>user_invitations</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="user_invitations" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.orgs.user_invitations" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list" + values={[ + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>string</code></td> + <td>Unique invitation ID</td> +</tr> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>user name</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Date on which the invitation was created. (ISO-8601 format) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="email" /></td> + <td><code>string</code></td> + <td>Email address of the user.</td> +</tr> +<tr> + <td><CopyableCode code="is_processed" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if the invitation has already been accepted by the user. (wire: isProcessed)</td> +</tr> +<tr> + <td><CopyableCode code="org" /></td> + <td><code>string</code></td> + <td>Org to which a user was invited.</td> +</tr> +<tr> + <td><CopyableCode code="roles" /></td> + <td><code>array</code></td> + <td>List of roles that the user have.</td> +</tr> +<tr> + <td><CopyableCode code="team" /></td> + <td><code>string</code></td> + <td>Team to which a user was invited.</td> +</tr> +<tr> + <td><CopyableCode code="type" /></td> + <td><code>string</code></td> + <td>Type of invitation. The invitation is either to an organization or to a team within organization. (ORGANIZATION, TEAM)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td><a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-order_by"><code>order_by</code></a>, <a href="#parameter-q"><code>q</code></a></td> + <td>List invitations in an org. (Org User Admin privileges required)</td> +</tr> +<tr> + <td><a href="#create_nca"><CopyableCode code="create_nca" /></a></td> + <td><CopyableCode code="insert" /></td> + <td></td> + <td></td> + <td>Invites and creates a User in org</td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-id"><code>id</code></a></td> + <td></td> + <td>Delete a specific invitation in an org. (Org User Admin privileges required)</td> +</tr> +<tr> + <td><a href="#resend_email"><CopyableCode code="resend_email" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-id"><code>id</code></a></td> + <td></td> + <td>Resend email of a specific invitation in an org (Org User Admin privileges required).</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-id"> + <td><CopyableCode code="id" /></td> + <td><code>string</code></td> + <td></td> +</tr> +<tr id="parameter-order_by"> + <td><CopyableCode code="order_by" /></td> + <td><code>string</code></td> + <td> (wire: orderBy)</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>integer (int32)</code></td> + <td>The page number of result</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>integer (int32)</code></td> + <td>The page size of result</td> +</tr> +<tr id="parameter-q"> + <td><CopyableCode code="q" /></td> + <td><code>object</code></td> + <td>User Search Parameters</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list" + values={[ + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list"> + +List invitations in an org. (Org User Admin privileges required) + +```sql +SELECT +id, +name, +created_date, +email, +is_processed, +org, +roles, +team, +type +FROM nvidia.orgs.user_invitations +WHERE page_number = '{{ page_number }}' +AND page_size = '{{ page_size }}' +AND order_by = '{{ order_by }}' +AND q = '{{ q }}' +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create_nca" + values={[ + { label: 'create_nca', value: 'create_nca' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create_nca"> + +Invites and creates a User in org + +```sql +INSERT INTO nvidia.orgs.user_invitations ( +email, +invitation_expiration_in, +invite_as, +message +) +SELECT +'{{ email }}', +{{ invitation_expiration_in }}, +'{{ invite_as }}', +'{{ message }}' +RETURNING +activation_token, +nca_role, +request_status, +user, +user_roles +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: user_invitations + props: + - name: email + value: "{{ email }}" + description: | + Is the user email + - name: invitation_expiration_in + value: {{ invitation_expiration_in }} + description: | + Is the numbers of days the invitation will expire + - name: invite_as + value: "{{ invite_as }}" + description: | + Nca allow users to be invited as Admin and as Member + valid_values: ['ADMIN', 'MEMBER'] + - name: message + value: "{{ message }}" + description: | + Is a message to the new user +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete" + values={[ + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete"> + +Delete a specific invitation in an org. (Org User Admin privileges required) + +```sql +DELETE FROM nvidia.orgs.user_invitations +WHERE id = '{{ id }}' --required +; +``` +</TabItem> +</Tabs> + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + +<Tabs + defaultValue="resend_email" + values={[ + { label: 'resend_email', value: 'resend_email' } + ]} +> +<TabItem value="resend_email"> + +Resend email of a specific invitation in an org (Org User Admin privileges required). + +```sql +EXEC nvidia.orgs.user_invitations.resend_email +@id='{{ id }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/orgs/user_roles/index.md b/website/docs/services/orgs/user_roles/index.md new file mode 100644 index 0000000..abad77c --- /dev/null +++ b/website/docs/services/orgs/user_roles/index.md @@ -0,0 +1,167 @@ +--- +title: user_roles +hide_title: false +hide_table_of_contents: false +keywords: + - user_roles + - orgs + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>user_roles</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="user_roles" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.orgs.user_roles" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#add"><CopyableCode code="add" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-user_email_or_id"><code>user_email_or_id</code></a>, <a href="#parameter-roles"><code>roles</code></a></td> + <td></td> + <td>Invite if user does not exist, otherwise add role in org</td> +</tr> +<tr> + <td><a href="#remove"><CopyableCode code="remove" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-user_email_or_id"><code>user_email_or_id</code></a></td> + <td><a href="#parameter-roles"><code>roles</code></a></td> + <td>Remove role in org if user exists, otherwise remove invitation</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-roles"> + <td><CopyableCode code="roles" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr id="parameter-user_email_or_id"> + <td><CopyableCode code="user_email_or_id" /></td> + <td><code>string</code></td> + <td></td> +</tr> +<tr id="parameter-roles"> + <td><CopyableCode code="roles" /></td> + <td><code>array</code></td> + <td></td> +</tr> +</tbody> +</table> + +## `INSERT` examples + +<Tabs + defaultValue="add" + values={[ + { label: 'add', value: 'add' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="add"> + +Invite if user does not exist, otherwise add role in org + +```sql +INSERT INTO nvidia.orgs.user_roles ( +user_email_or_id, +roles +) +SELECT +'{{ user_email_or_id }}', +'{{ roles }}' +RETURNING +activation_token, +nca_role, +request_status, +user, +user_roles +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: user_roles + props: + - name: user_email_or_id + value: "{{ user_email_or_id }}" + description: Required parameter for the user_roles resource. + - name: roles + value: "{{ roles }}" + description: Required parameter for the user_roles resource. +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="remove" + values={[ + { label: 'remove', value: 'remove' } + ]} +> +<TabItem value="remove"> + +Remove role in org if user exists, otherwise remove invitation + +```sql +DELETE FROM nvidia.orgs.user_roles +WHERE user_email_or_id = '{{ user_email_or_id }}' --required +AND roles = '{{ roles }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/orgs/users/index.md b/website/docs/services/orgs/users/index.md new file mode 100644 index 0000000..7498f61 --- /dev/null +++ b/website/docs/services/orgs/users/index.md @@ -0,0 +1,1081 @@ +--- +title: users +hide_title: false +hide_table_of_contents: false +keywords: + - users + - orgs + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>users</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="users" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.orgs.users" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_starfleet_id" + values={[ + { label: 'get_by_starfleet_id', value: 'get_by_starfleet_id' }, + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_starfleet_id"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>unique Id of this user.</td> +</tr> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>user name</td> +</tr> +<tr> + <td><CopyableCode code="client_id" /></td> + <td><code>string</code></td> + <td>unique auth client id of this user. (wire: clientId)</td> +</tr> +<tr> + <td><CopyableCode code="starfleet_id" /></td> + <td><code>string</code></td> + <td>unique starfleet id of this user. (wire: starfleetId)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Created date for this user (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="email" /></td> + <td><code>string</code></td> + <td>Email address of the user. This should be unique.</td> +</tr> +<tr> + <td><CopyableCode code="first_login_date" /></td> + <td><code>string</code></td> + <td>Last time the user logged in (wire: firstLoginDate)</td> +</tr> +<tr> + <td><CopyableCode code="has_beta_access" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has beta access (wire: hasBetaAccess)</td> +</tr> +<tr> + <td><CopyableCode code="has_profile" /></td> + <td><code>boolean</code></td> + <td>indicate if user profile has been completed. (wire: hasProfile)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_ai_foundry_partnerships_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted AI Foundry Partnerships eula (wire: hasSignedAiFoundryPartnershipsEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_aodteula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted AODT End User License Agreement. (wire: hasSignedAODTEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_base_command_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Base Command End User License Agreement. (wire: hasSignedBaseCommandEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_base_command_manager_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Base Command Manager End User License Agreement. (wire: hasSignedBaseCommandManagerEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_bio_ne_mo_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted BioNeMo End User License Agreement. (wire: hasSignedBioNeMoEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_container_publishing_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted container publishing eula (wire: hasSignedContainerPublishingEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_cu_opt_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted CuOpt eula (wire: hasSignedCuOptEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_earth_2_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Earth-2 eula (wire: hasSignedEarth2EULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_egx_eula" /></td> + <td><code>boolean</code></td> + <td>[Deprecated] indicates if user has accepted EGX End User License Agreement. (wire: hasSignedEgxEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_eula" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has signed the NGC End User License Agreement. (wire: hasSignedEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_fleet_command_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Fleet Command End User License Agreement. (wire: hasSignedFleetCommandEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_llm_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted LLM End User License Agreement. (wire: hasSignedLlmEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_nvaieeula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Fleet Command End User License Agreement. (wire: hasSignedNVAIEEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_nvidia_eula" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has signed the NVIDIA End User License Agreement. (wire: hasSignedNvidiaEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_nvqceula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Nvidia Quantum Cloud End User License Agreement. (wire: hasSignedNVQCEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_omniverse_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Omniverse End User License Agreement. (wire: hasSignedOmniverseEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_privacy_policy" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has signed the Privacy Policy. (wire: hasSignedPrivacyPolicy)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_third_party_registry_share_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has consented to share their registration info with other parties (wire: hasSignedThirdPartyRegistryShareEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_subscribed_to_email" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has opted in email subscription. (wire: hasSubscribedToEmail)</td> +</tr> +<tr> + <td><CopyableCode code="idp_type" /></td> + <td><code>string</code></td> + <td>Type of IDP, Identity Provider. Used for login. (NVIDIA, ENTERPRISE) (wire: idpType)</td> +</tr> +<tr> + <td><CopyableCode code="is_active" /></td> + <td><code>boolean</code></td> + <td>Determines if the user is active or not. (wire: isActive)</td> +</tr> +<tr> + <td><CopyableCode code="is_deleted" /></td> + <td><code>boolean</code></td> + <td>Indicates if user was deleted from the system. (wire: isDeleted)</td> +</tr> +<tr> + <td><CopyableCode code="is_saml" /></td> + <td><code>boolean</code></td> + <td>Determines if the user is a SAML account or not. (wire: isSAML)</td> +</tr> +<tr> + <td><CopyableCode code="job_position_title" /></td> + <td><code>string</code></td> + <td>Title of user's job position. (wire: jobPositionTitle)</td> +</tr> +<tr> + <td><CopyableCode code="last_login_date" /></td> + <td><code>string</code></td> + <td>Last time the user logged in (wire: lastLoginDate)</td> +</tr> +<tr> + <td><CopyableCode code="roles" /></td> + <td><code>array</code></td> + <td>List of roles that the user have</td> +</tr> +<tr> + <td><CopyableCode code="storage_quota" /></td> + <td><code>array</code></td> + <td>Storage quota for this user. (wire: storageQuota)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date for this user (wire: updatedDate)</td> +</tr> +<tr> + <td><CopyableCode code="user_metadata" /></td> + <td><code>object</code></td> + <td>Metadata information about the user. (wire: userMetadata)</td> +</tr> +<tr> + <td><CopyableCode code="verified" /></td> + <td><code>boolean</code></td> + <td>Is user's email or phone number is verified</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>unique Id of this user.</td> +</tr> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>user name</td> +</tr> +<tr> + <td><CopyableCode code="client_id" /></td> + <td><code>string</code></td> + <td>unique auth client id of this user. (wire: clientId)</td> +</tr> +<tr> + <td><CopyableCode code="starfleet_id" /></td> + <td><code>string</code></td> + <td>unique starfleet id of this user. (wire: starfleetId)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Created date for this user (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="email" /></td> + <td><code>string</code></td> + <td>Email address of the user. This should be unique.</td> +</tr> +<tr> + <td><CopyableCode code="first_login_date" /></td> + <td><code>string</code></td> + <td>Last time the user logged in (wire: firstLoginDate)</td> +</tr> +<tr> + <td><CopyableCode code="has_beta_access" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has beta access (wire: hasBetaAccess)</td> +</tr> +<tr> + <td><CopyableCode code="has_profile" /></td> + <td><code>boolean</code></td> + <td>indicate if user profile has been completed. (wire: hasProfile)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_ai_foundry_partnerships_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted AI Foundry Partnerships eula (wire: hasSignedAiFoundryPartnershipsEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_aodteula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted AODT End User License Agreement. (wire: hasSignedAODTEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_base_command_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Base Command End User License Agreement. (wire: hasSignedBaseCommandEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_base_command_manager_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Base Command Manager End User License Agreement. (wire: hasSignedBaseCommandManagerEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_bio_ne_mo_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted BioNeMo End User License Agreement. (wire: hasSignedBioNeMoEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_container_publishing_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted container publishing eula (wire: hasSignedContainerPublishingEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_cu_opt_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted CuOpt eula (wire: hasSignedCuOptEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_earth_2_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Earth-2 eula (wire: hasSignedEarth2EULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_egx_eula" /></td> + <td><code>boolean</code></td> + <td>[Deprecated] indicates if user has accepted EGX End User License Agreement. (wire: hasSignedEgxEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_eula" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has signed the NGC End User License Agreement. (wire: hasSignedEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_fleet_command_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Fleet Command End User License Agreement. (wire: hasSignedFleetCommandEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_llm_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted LLM End User License Agreement. (wire: hasSignedLlmEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_nvaieeula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Fleet Command End User License Agreement. (wire: hasSignedNVAIEEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_nvidia_eula" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has signed the NVIDIA End User License Agreement. (wire: hasSignedNvidiaEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_nvqceula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Nvidia Quantum Cloud End User License Agreement. (wire: hasSignedNVQCEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_omniverse_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Omniverse End User License Agreement. (wire: hasSignedOmniverseEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_privacy_policy" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has signed the Privacy Policy. (wire: hasSignedPrivacyPolicy)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_third_party_registry_share_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has consented to share their registration info with other parties (wire: hasSignedThirdPartyRegistryShareEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_subscribed_to_email" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has opted in email subscription. (wire: hasSubscribedToEmail)</td> +</tr> +<tr> + <td><CopyableCode code="idp_type" /></td> + <td><code>string</code></td> + <td>Type of IDP, Identity Provider. Used for login. (NVIDIA, ENTERPRISE) (wire: idpType)</td> +</tr> +<tr> + <td><CopyableCode code="is_active" /></td> + <td><code>boolean</code></td> + <td>Determines if the user is active or not. (wire: isActive)</td> +</tr> +<tr> + <td><CopyableCode code="is_deleted" /></td> + <td><code>boolean</code></td> + <td>Indicates if user was deleted from the system. (wire: isDeleted)</td> +</tr> +<tr> + <td><CopyableCode code="is_saml" /></td> + <td><code>boolean</code></td> + <td>Determines if the user is a SAML account or not. (wire: isSAML)</td> +</tr> +<tr> + <td><CopyableCode code="job_position_title" /></td> + <td><code>string</code></td> + <td>Title of user's job position. (wire: jobPositionTitle)</td> +</tr> +<tr> + <td><CopyableCode code="last_login_date" /></td> + <td><code>string</code></td> + <td>Last time the user logged in (wire: lastLoginDate)</td> +</tr> +<tr> + <td><CopyableCode code="roles" /></td> + <td><code>array</code></td> + <td>List of roles that the user have</td> +</tr> +<tr> + <td><CopyableCode code="storage_quota" /></td> + <td><code>array</code></td> + <td>Storage quota for this user. (wire: storageQuota)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date for this user (wire: updatedDate)</td> +</tr> +<tr> + <td><CopyableCode code="user_metadata" /></td> + <td><code>object</code></td> + <td>Metadata information about the user. (wire: userMetadata)</td> +</tr> +<tr> + <td><CopyableCode code="verified" /></td> + <td><code>boolean</code></td> + <td>Is user's email or phone number is verified</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>unique Id of this user.</td> +</tr> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>user name</td> +</tr> +<tr> + <td><CopyableCode code="client_id" /></td> + <td><code>string</code></td> + <td>unique auth client id of this user. (wire: clientId)</td> +</tr> +<tr> + <td><CopyableCode code="starfleet_id" /></td> + <td><code>string</code></td> + <td>unique starfleet id of this user. (wire: starfleetId)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Created date for this user (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="email" /></td> + <td><code>string</code></td> + <td>Email address of the user. This should be unique.</td> +</tr> +<tr> + <td><CopyableCode code="first_login_date" /></td> + <td><code>string</code></td> + <td>Last time the user logged in (wire: firstLoginDate)</td> +</tr> +<tr> + <td><CopyableCode code="has_beta_access" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has beta access (wire: hasBetaAccess)</td> +</tr> +<tr> + <td><CopyableCode code="has_profile" /></td> + <td><code>boolean</code></td> + <td>indicate if user profile has been completed. (wire: hasProfile)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_ai_foundry_partnerships_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted AI Foundry Partnerships eula (wire: hasSignedAiFoundryPartnershipsEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_aodteula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted AODT End User License Agreement. (wire: hasSignedAODTEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_base_command_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Base Command End User License Agreement. (wire: hasSignedBaseCommandEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_base_command_manager_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Base Command Manager End User License Agreement. (wire: hasSignedBaseCommandManagerEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_bio_ne_mo_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted BioNeMo End User License Agreement. (wire: hasSignedBioNeMoEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_container_publishing_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted container publishing eula (wire: hasSignedContainerPublishingEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_cu_opt_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted CuOpt eula (wire: hasSignedCuOptEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_earth_2_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Earth-2 eula (wire: hasSignedEarth2EULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_egx_eula" /></td> + <td><code>boolean</code></td> + <td>[Deprecated] indicates if user has accepted EGX End User License Agreement. (wire: hasSignedEgxEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_eula" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has signed the NGC End User License Agreement. (wire: hasSignedEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_fleet_command_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Fleet Command End User License Agreement. (wire: hasSignedFleetCommandEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_llm_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted LLM End User License Agreement. (wire: hasSignedLlmEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_nvaieeula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Fleet Command End User License Agreement. (wire: hasSignedNVAIEEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_nvidia_eula" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has signed the NVIDIA End User License Agreement. (wire: hasSignedNvidiaEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_nvqceula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Nvidia Quantum Cloud End User License Agreement. (wire: hasSignedNVQCEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_omniverse_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has accepted Omniverse End User License Agreement. (wire: hasSignedOmniverseEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_privacy_policy" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has signed the Privacy Policy. (wire: hasSignedPrivacyPolicy)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_third_party_registry_share_eula" /></td> + <td><code>boolean</code></td> + <td>indicates if user has consented to share their registration info with other parties (wire: hasSignedThirdPartyRegistryShareEULA)</td> +</tr> +<tr> + <td><CopyableCode code="has_subscribed_to_email" /></td> + <td><code>boolean</code></td> + <td>Determines if the user has opted in email subscription. (wire: hasSubscribedToEmail)</td> +</tr> +<tr> + <td><CopyableCode code="idp_type" /></td> + <td><code>string</code></td> + <td>Type of IDP, Identity Provider. Used for login. (NVIDIA, ENTERPRISE) (wire: idpType)</td> +</tr> +<tr> + <td><CopyableCode code="is_active" /></td> + <td><code>boolean</code></td> + <td>Determines if the user is active or not. (wire: isActive)</td> +</tr> +<tr> + <td><CopyableCode code="is_deleted" /></td> + <td><code>boolean</code></td> + <td>Indicates if user was deleted from the system. (wire: isDeleted)</td> +</tr> +<tr> + <td><CopyableCode code="is_saml" /></td> + <td><code>boolean</code></td> + <td>Determines if the user is a SAML account or not. (wire: isSAML)</td> +</tr> +<tr> + <td><CopyableCode code="job_position_title" /></td> + <td><code>string</code></td> + <td>Title of user's job position. (wire: jobPositionTitle)</td> +</tr> +<tr> + <td><CopyableCode code="last_login_date" /></td> + <td><code>string</code></td> + <td>Last time the user logged in (wire: lastLoginDate)</td> +</tr> +<tr> + <td><CopyableCode code="roles" /></td> + <td><code>array</code></td> + <td>List of roles that the user have</td> +</tr> +<tr> + <td><CopyableCode code="storage_quota" /></td> + <td><code>array</code></td> + <td>Storage quota for this user. (wire: storageQuota)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date for this user (wire: updatedDate)</td> +</tr> +<tr> + <td><CopyableCode code="user_metadata" /></td> + <td><code>object</code></td> + <td>Metadata information about the user. (wire: userMetadata)</td> +</tr> +<tr> + <td><CopyableCode code="verified" /></td> + <td><code>boolean</code></td> + <td>Is user's email or phone number is verified</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_starfleet_id"><CopyableCode code="get_by_starfleet_id" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-starfleet_id"><code>starfleet_id</code></a></td> + <td></td> + <td>Get User details in org by starfleet Id</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-user_email_or_id"><code>user_email_or_id</code></a></td> + <td></td> + <td>Get info and role/invitation in an org by email or id</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td><a href="#parameter-exclude_from_team"><code>exclude_from_team</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-q"><code>q</code></a></td> + <td>Get list of users in organization. (User Admin in org privileges required)</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-email"><code>email</code></a></td> + <td><a href="#parameter-send_email"><code>send_email</code></a>, <a href="#parameter-idp_id"><code>idp_id</code></a></td> + <td>Creates a User</td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-id"><code>id</code></a></td> + <td><a href="#parameter-anonymize"><code>anonymize</code></a></td> + <td>Remove User from org.</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-id"> + <td><CopyableCode code="id" /></td> + <td><code>string</code></td> + <td></td> +</tr> +<tr id="parameter-starfleet_id"> + <td><CopyableCode code="starfleet_id" /></td> + <td><code>string</code></td> + <td></td> +</tr> +<tr id="parameter-user_email_or_id"> + <td><CopyableCode code="user_email_or_id" /></td> + <td><code>string</code></td> + <td></td> +</tr> +<tr id="parameter-anonymize"> + <td><CopyableCode code="anonymize" /></td> + <td><code>boolean</code></td> + <td>If anonymize is true, then org owner permission is required.</td> +</tr> +<tr id="parameter-exclude_from_team"> + <td><CopyableCode code="exclude_from_team" /></td> + <td><code>string</code></td> + <td>Name of team to exclude members from</td> +</tr> +<tr id="parameter-idp_id"> + <td><CopyableCode code="idp_id" /></td> + <td><code>string</code></td> + <td>If the IDP ID is provided then it is used instead of the one configured for the organization</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>integer (int32)</code></td> + <td>The page number of result</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>integer (int32)</code></td> + <td>The page size of result</td> +</tr> +<tr id="parameter-q"> + <td><CopyableCode code="q" /></td> + <td><code>object</code></td> + <td>User Search Parameters. Only 'filters' and 'orderBy' for 'name' and 'email' are implemented</td> +</tr> +<tr id="parameter-send_email"> + <td><CopyableCode code="send_email" /></td> + <td><code>boolean</code></td> + <td></td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_starfleet_id" + values={[ + { label: 'get_by_starfleet_id', value: 'get_by_starfleet_id' }, + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_starfleet_id"> + +Get User details in org by starfleet Id + +```sql +SELECT +id, +name, +client_id, +starfleet_id, +created_date, +email, +first_login_date, +has_beta_access, +has_profile, +has_signed_ai_foundry_partnerships_eula, +has_signed_aodteula, +has_signed_base_command_eula, +has_signed_base_command_manager_eula, +has_signed_bio_ne_mo_eula, +has_signed_container_publishing_eula, +has_signed_cu_opt_eula, +has_signed_earth_2_eula, +has_signed_egx_eula, +has_signed_eula, +has_signed_fleet_command_eula, +has_signed_llm_eula, +has_signed_nvaieeula, +has_signed_nvidia_eula, +has_signed_nvqceula, +has_signed_omniverse_eula, +has_signed_privacy_policy, +has_signed_third_party_registry_share_eula, +has_subscribed_to_email, +idp_type, +is_active, +is_deleted, +is_saml, +job_position_title, +last_login_date, +roles, +storage_quota, +updated_date, +user_metadata, +verified +FROM nvidia.orgs.users +WHERE starfleet_id = '{{ starfleet_id }}' -- required +; +``` +</TabItem> +<TabItem value="get"> + +Get info and role/invitation in an org by email or id + +```sql +SELECT +id, +name, +client_id, +starfleet_id, +created_date, +email, +first_login_date, +has_beta_access, +has_profile, +has_signed_ai_foundry_partnerships_eula, +has_signed_aodteula, +has_signed_base_command_eula, +has_signed_base_command_manager_eula, +has_signed_bio_ne_mo_eula, +has_signed_container_publishing_eula, +has_signed_cu_opt_eula, +has_signed_earth_2_eula, +has_signed_egx_eula, +has_signed_eula, +has_signed_fleet_command_eula, +has_signed_llm_eula, +has_signed_nvaieeula, +has_signed_nvidia_eula, +has_signed_nvqceula, +has_signed_omniverse_eula, +has_signed_privacy_policy, +has_signed_third_party_registry_share_eula, +has_subscribed_to_email, +idp_type, +is_active, +is_deleted, +is_saml, +job_position_title, +last_login_date, +roles, +storage_quota, +updated_date, +user_metadata, +verified +FROM nvidia.orgs.users +WHERE user_email_or_id = '{{ user_email_or_id }}' -- required +; +``` +</TabItem> +<TabItem value="list"> + +Get list of users in organization. (User Admin in org privileges required) + +```sql +SELECT +id, +name, +client_id, +starfleet_id, +created_date, +email, +first_login_date, +has_beta_access, +has_profile, +has_signed_ai_foundry_partnerships_eula, +has_signed_aodteula, +has_signed_base_command_eula, +has_signed_base_command_manager_eula, +has_signed_bio_ne_mo_eula, +has_signed_container_publishing_eula, +has_signed_cu_opt_eula, +has_signed_earth_2_eula, +has_signed_egx_eula, +has_signed_eula, +has_signed_fleet_command_eula, +has_signed_llm_eula, +has_signed_nvaieeula, +has_signed_nvidia_eula, +has_signed_nvqceula, +has_signed_omniverse_eula, +has_signed_privacy_policy, +has_signed_third_party_registry_share_eula, +has_subscribed_to_email, +idp_type, +is_active, +is_deleted, +is_saml, +job_position_title, +last_login_date, +roles, +storage_quota, +updated_date, +user_metadata, +verified +FROM nvidia.orgs.users +WHERE exclude_from_team = '{{ exclude_from_team }}' +AND page_number = '{{ page_number }}' +AND page_size = '{{ page_size }}' +AND q = '{{ q }}' +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create" + values={[ + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create"> + +Creates a User + +```sql +INSERT INTO nvidia.orgs.users ( +email, +email_opt_in, +eula_accepted, +name, +role_type, +role_types, +salesforce_contact_job_role, +user_metadata, +send_email, +idp_id +) +SELECT +'{{ email }}' /* required */, +{{ email_opt_in }}, +{{ eula_accepted }}, +'{{ name }}', +'{{ role_type }}', +'{{ role_types }}', +'{{ salesforce_contact_job_role }}', +'{{ user_metadata }}', +'{{ send_email }}', +'{{ idp_id }}' +RETURNING +activation_token, +nca_role, +request_status, +user, +user_roles +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: users + props: + - name: email + value: "{{ email }}" + description: | + Email address of the user. This should be unique. + - name: email_opt_in + value: {{ email_opt_in }} + description: | + indicates if user has opt in to nvidia emails + - name: eula_accepted + value: {{ eula_accepted }} + description: | + indicates if user has accepted EULA + - name: name + value: "{{ name }}" + description: | + user name + - name: role_type + value: "{{ role_type }}" + description: | + DEPRECATED - use roleTypes which allows multiple roles + - name: role_types + value: + - "{{ role_types }}" + description: | + feature roles to give to the user + - name: salesforce_contact_job_role + value: "{{ salesforce_contact_job_role }}" + description: | + user job role + - name: user_metadata + description: | + Metadata information about the user. + value: + company: "{{ company }}" + companyUrl: "{{ companyUrl }}" + country: "{{ country }}" + firstName: "{{ firstName }}" + industry: "{{ industry }}" + interest: + - "{{ interest }}" + lastName: "{{ lastName }}" + role: "{{ role }}" + - name: send_email + value: {{ send_email }} + - name: idp_id + value: "{{ idp_id }}" + description: If the IDP ID is provided then it is used instead of the one configured for the organization + description: If the IDP ID is provided then it is used instead of the one configured for the organization +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete" + values={[ + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete"> + +Remove User from org. + +```sql +DELETE FROM nvidia.orgs.users +WHERE id = '{{ id }}' --required +AND anonymize = '{{ anonymize }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/artifact_catalog_flags/index.md b/website/docs/services/private_registry/artifact_catalog_flags/index.md new file mode 100644 index 0000000..1828d21 --- /dev/null +++ b/website/docs/services/private_registry/artifact_catalog_flags/index.md @@ -0,0 +1,205 @@ +--- +title: artifact_catalog_flags +hide_title: false +hide_table_of_contents: false +keywords: + - artifact_catalog_flags + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>artifact_catalog_flags</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="artifact_catalog_flags" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.artifact_catalog_flags" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="is_listed_to_public" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if artifact is listed and searchable (wire: isListedToPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this artifact is publicly accessible (wire: isPublic)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="is_listed_to_public" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if artifact is listed and searchable (wire: isListedToPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this artifact is publicly accessible (wire: isPublic)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Get the Catalog Public flags for artifact in team</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Get the Catalog Public flags for artifact in org</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact name</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' } + ]} +> +<TabItem value="get_by_team"> + +Get the Catalog Public flags for artifact in team + +```sql +SELECT +can_guest_download, +is_listed_to_public, +is_public +FROM nvidia.private_registry.artifact_catalog_flags +WHERE team_name = '{{ team_name }}' -- required +AND artifact_type = '{{ artifact_type }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +; +``` +</TabItem> +<TabItem value="get"> + +Get the Catalog Public flags for artifact in org + +```sql +SELECT +can_guest_download, +is_listed_to_public, +is_public +FROM nvidia.private_registry.artifact_catalog_flags +WHERE artifact_type = '{{ artifact_type }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/artifact_collections/index.md b/website/docs/services/private_registry/artifact_collections/index.md new file mode 100644 index 0000000..f92efa6 --- /dev/null +++ b/website/docs/services/private_registry/artifact_collections/index.md @@ -0,0 +1,468 @@ +--- +title: artifact_collections +hide_title: false +hide_table_of_contents: false +keywords: + - artifact_collections + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>artifact_collections</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="artifact_collections" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.artifact_collections" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the collection</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the collection belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the collection belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the collection (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="category" /></td> + <td><code>string</code></td> + <td> (HEALTHCARE, SMART_CITIES, RETAIL, MANUFACTURING, SUPERCOMPUTING, ROBOTICS, AUTOMOTIVE, TELECOMMUNICATIONS, FINANCE, OIL_AND_GAS, NATURAL_LANGUAGE_PROCESSING, AUTOMATIC_SPEECH_RECOGNITION, INTELLIGENT_VIDEO_ANALYTICS, OBJECT_DETECTION, IMAGE_CLASSIFICATION, ANNOTATION, IMAGE_SYNTHESIS, MACHINE_LEARNING, DEEP_LEARNING, INFRASTRUCTURE, HIGH_PERFORMANCE_COMPUTING, WINDOWS_RTX_ACCELERATED_MODELS, BEGINNER, ADVANCED)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the collection</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this collection is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this collection</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the collection (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="size" /></td> + <td><code>integer (int64)</code></td> + <td>Total count of collection items</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the collection</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the collection belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the collection belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the collection (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="category" /></td> + <td><code>string</code></td> + <td> (HEALTHCARE, SMART_CITIES, RETAIL, MANUFACTURING, SUPERCOMPUTING, ROBOTICS, AUTOMOTIVE, TELECOMMUNICATIONS, FINANCE, OIL_AND_GAS, NATURAL_LANGUAGE_PROCESSING, AUTOMATIC_SPEECH_RECOGNITION, INTELLIGENT_VIDEO_ANALYTICS, OBJECT_DETECTION, IMAGE_CLASSIFICATION, ANNOTATION, IMAGE_SYNTHESIS, MACHINE_LEARNING, DEEP_LEARNING, INFRASTRUCTURE, HIGH_PERFORMANCE_COMPUTING, WINDOWS_RTX_ACCELERATED_MODELS, BEGINNER, ADVANCED)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the collection</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this collection is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this collection</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the collection (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="size" /></td> + <td><code>integer (int64)</code></td> + <td>Total count of collection items</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-order_by"><code>order_by</code></a>, <a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>List artifact collections the user can access in the specified org and team</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-order_by"><code>order_by</code></a>, <a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>List artifact collections the user can access in the specified org</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact name</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-order_by"> + <td><CopyableCode code="order_by" /></td> + <td><code>string (UTF-8)</code></td> + <td>Order by</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-remove_unresolved_labels"> + <td><CopyableCode code="remove_unresolved_labels" /></td> + <td><code>boolean</code></td> + <td>Remove unresolved labels</td> +</tr> +<tr id="parameter-resolve_labels"> + <td><CopyableCode code="resolve_labels" /></td> + <td><code>boolean</code></td> + <td>Resolve labels</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +List artifact collections the user can access in the specified org and team + +```sql +SELECT +name, +display_name, +org_name, +owner_name, +team_name, +access_type, +attributes, +built_by, +can_guest_download, +category, +created_date, +description, +is_public, +is_read_only, +labels, +logo, +policy_labels, +product_names, +publisher, +short_description, +size, +updated_date +FROM nvidia.private_registry.artifact_collections +WHERE team_name = '{{ team_name }}' -- required +AND artifact_type = '{{ artifact_type }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND order_by = '{{ order_by }}' +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="list"> + +List artifact collections the user can access in the specified org + +```sql +SELECT +name, +display_name, +org_name, +owner_name, +team_name, +access_type, +attributes, +built_by, +can_guest_download, +category, +created_date, +description, +is_public, +is_read_only, +labels, +logo, +policy_labels, +product_names, +publisher, +short_description, +size, +updated_date +FROM nvidia.private_registry.artifact_collections +WHERE artifact_type = '{{ artifact_type }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND order_by = '{{ order_by }}' +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/artifact_deployment_params/index.md b/website/docs/services/private_registry/artifact_deployment_params/index.md new file mode 100644 index 0000000..1f75269 --- /dev/null +++ b/website/docs/services/private_registry/artifact_deployment_params/index.md @@ -0,0 +1,795 @@ +--- +title: artifact_deployment_params +hide_title: false +hide_table_of_contents: false +keywords: + - artifact_deployment_params + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>artifact_deployment_params</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="artifact_deployment_params" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.artifact_deployment_params" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="container" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="cpu" /></td> + <td><code>object</code></td> + <td>Deployment CPU Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="csp" /></td> + <td><code>string</code></td> + <td>Cloud Service Provider name</td> +</tr> +<tr> + <td><CopyableCode code="gpu" /></td> + <td><code>object</code></td> + <td>Deployment GPU Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="memory" /></td> + <td><code>object</code></td> + <td>Deployment Memory Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="model" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="resource" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="storage" /></td> + <td><code>object</code></td> + <td>Deployment Storage Parameters object</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="container" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="cpu" /></td> + <td><code>object</code></td> + <td>Deployment CPU Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="csp" /></td> + <td><code>string</code></td> + <td>Cloud Service Provider name</td> +</tr> +<tr> + <td><CopyableCode code="gpu" /></td> + <td><code>object</code></td> + <td>Deployment GPU Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="memory" /></td> + <td><code>object</code></td> + <td>Deployment Memory Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="model" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="resource" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="storage" /></td> + <td><code>object</code></td> + <td>Deployment Storage Parameters object</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="container" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="cpu" /></td> + <td><code>object</code></td> + <td>Deployment CPU Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="csp" /></td> + <td><code>string</code></td> + <td>Cloud Service Provider name</td> +</tr> +<tr> + <td><CopyableCode code="gpu" /></td> + <td><code>object</code></td> + <td>Deployment GPU Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="memory" /></td> + <td><code>object</code></td> + <td>Deployment Memory Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="model" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="resource" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="storage" /></td> + <td><code>object</code></td> + <td>Deployment Storage Parameters object</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="container" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="cpu" /></td> + <td><code>object</code></td> + <td>Deployment CPU Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="csp" /></td> + <td><code>string</code></td> + <td>Cloud Service Provider name</td> +</tr> +<tr> + <td><CopyableCode code="gpu" /></td> + <td><code>object</code></td> + <td>Deployment GPU Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="memory" /></td> + <td><code>object</code></td> + <td>Deployment Memory Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="model" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="resource" /></td> + <td><code>object</code></td> + <td>Deployment Artifact Parameters object</td> +</tr> +<tr> + <td><CopyableCode code="storage" /></td> + <td><code>object</code></td> + <td>Deployment Storage Parameters object</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td><a href="#parameter-inherit_csp_parameters"><code>inherit_csp_parameters</code></a></td> + <td>Get artifact deployment parameters details in team</td> +</tr> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td><a href="#parameter-inherit_csp_parameters"><code>inherit_csp_parameters</code></a></td> + <td>List artifact deployment parameters in team</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td><a href="#parameter-inherit_csp_parameters"><code>inherit_csp_parameters</code></a></td> + <td>Get artifact deployment parameters details in org</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td><a href="#parameter-inherit_csp_parameters"><code>inherit_csp_parameters</code></a></td> + <td>List artifact deployment parameters in org</td> +</tr> +<tr> + <td><a href="#create_by_team"><CopyableCode code="create_by_team" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td><a href="#parameter-no_auto_labels"><code>no_auto_labels</code></a>, <a href="#parameter-merge_csp_parameters"><code>merge_csp_parameters</code></a></td> + <td>Create artifact deployment parameters in team</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td><a href="#parameter-no_auto_labels"><code>no_auto_labels</code></a>, <a href="#parameter-merge_csp_parameters"><code>merge_csp_parameters</code></a></td> + <td>Create artifact deployment parameters in org</td> +</tr> +<tr> + <td><a href="#update_by_team"><CopyableCode code="update_by_team" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td><a href="#parameter-merge_csp_parameters"><code>merge_csp_parameters</code></a></td> + <td>Update artifact deployment parameters in team</td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td><a href="#parameter-merge_csp_parameters"><code>merge_csp_parameters</code></a></td> + <td>Update artifact deployment parameters in org</td> +</tr> +<tr> + <td><a href="#delete_by_team"><CopyableCode code="delete_by_team" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td></td> + <td>Delete artifact deployment parameters in team</td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td></td> + <td>Delete artifact deployment parameters in org</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact name</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type</td> +</tr> +<tr id="parameter-csp_name"> + <td><CopyableCode code="csp_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Cloud service provider name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-inherit_csp_parameters"> + <td><CopyableCode code="inherit_csp_parameters" /></td> + <td><code>boolean</code></td> + <td>Inherit CSP parameters</td> +</tr> +<tr id="parameter-merge_csp_parameters"> + <td><CopyableCode code="merge_csp_parameters" /></td> + <td><code>boolean</code></td> + <td>Merge CSP parameters in response</td> +</tr> +<tr id="parameter-no_auto_labels"> + <td><CopyableCode code="no_auto_labels" /></td> + <td><code>boolean</code></td> + <td>No auto labels</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +Get artifact deployment parameters details in team + +```sql +SELECT +container, +cpu, +csp, +gpu, +memory, +model, +resource, +storage +FROM nvidia.private_registry.artifact_deployment_params +WHERE team_name = '{{ team_name }}' -- required +AND artifact_type = '{{ artifact_type }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND csp_name = '{{ csp_name }}' -- required +AND inherit_csp_parameters = '{{ inherit_csp_parameters }}' +; +``` +</TabItem> +<TabItem value="list_by_team"> + +List artifact deployment parameters in team + +```sql +SELECT +container, +cpu, +csp, +gpu, +memory, +model, +resource, +storage +FROM nvidia.private_registry.artifact_deployment_params +WHERE team_name = '{{ team_name }}' -- required +AND artifact_type = '{{ artifact_type }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND inherit_csp_parameters = '{{ inherit_csp_parameters }}' +; +``` +</TabItem> +<TabItem value="get"> + +Get artifact deployment parameters details in org + +```sql +SELECT +container, +cpu, +csp, +gpu, +memory, +model, +resource, +storage +FROM nvidia.private_registry.artifact_deployment_params +WHERE artifact_type = '{{ artifact_type }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND csp_name = '{{ csp_name }}' -- required +AND inherit_csp_parameters = '{{ inherit_csp_parameters }}' +; +``` +</TabItem> +<TabItem value="list"> + +List artifact deployment parameters in org + +```sql +SELECT +container, +cpu, +csp, +gpu, +memory, +model, +resource, +storage +FROM nvidia.private_registry.artifact_deployment_params +WHERE artifact_type = '{{ artifact_type }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND inherit_csp_parameters = '{{ inherit_csp_parameters }}' +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create_by_team" + values={[ + { label: 'create_by_team', value: 'create_by_team' }, + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create_by_team"> + +Create artifact deployment parameters in team + +```sql +INSERT INTO nvidia.private_registry.artifact_deployment_params ( +container, +cpu, +gpu, +memory, +model, +resource, +storage, +team_name, +artifact_type, +artifact_name, +csp_name, +no_auto_labels, +merge_csp_parameters +) +SELECT +'{{ container }}', +'{{ cpu }}', +'{{ gpu }}', +'{{ memory }}', +'{{ model }}', +'{{ resource }}', +'{{ storage }}', +'{{ team_name }}', +'{{ artifact_type }}', +'{{ artifact_name }}', +'{{ csp_name }}', +'{{ no_auto_labels }}', +'{{ merge_csp_parameters }}' +RETURNING +container, +cpu, +csp, +gpu, +memory, +model, +resource, +storage +; +``` +</TabItem> +<TabItem value="create"> + +Create artifact deployment parameters in org + +```sql +INSERT INTO nvidia.private_registry.artifact_deployment_params ( +container, +cpu, +gpu, +memory, +model, +resource, +storage, +artifact_type, +artifact_name, +csp_name, +no_auto_labels, +merge_csp_parameters +) +SELECT +'{{ container }}', +'{{ cpu }}', +'{{ gpu }}', +'{{ memory }}', +'{{ model }}', +'{{ resource }}', +'{{ storage }}', +'{{ artifact_type }}', +'{{ artifact_name }}', +'{{ csp_name }}', +'{{ no_auto_labels }}', +'{{ merge_csp_parameters }}' +RETURNING +container, +cpu, +csp, +gpu, +memory, +model, +resource, +storage +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: artifact_deployment_params + props: + - name: team_name + value: "{{ team_name }}" + description: Required parameter for the artifact_deployment_params resource. + - name: artifact_type + value: "{{ artifact_type }}" + description: Required parameter for the artifact_deployment_params resource. + - name: artifact_name + value: "{{ artifact_name }}" + description: Required parameter for the artifact_deployment_params resource. + - name: csp_name + value: "{{ csp_name }}" + description: Required parameter for the artifact_deployment_params resource. + - name: container + description: | + Deployment Artifact Parameters object + value: + artifactType: "{{ artifactType }}" + displayName: "{{ displayName }}" + filePath: "{{ filePath }}" + name: "{{ name }}" + orgName: "{{ orgName }}" + teamName: "{{ teamName }}" + versionId: "{{ versionId }}" + - name: cpu + description: | + Deployment CPU Parameters object + value: + count: {{ count }} + - name: gpu + description: | + Deployment GPU Parameters object + value: + count: {{ count }} + type: "{{ type }}" + - name: memory + description: | + Deployment Memory Parameters object + value: + capacityInGB: {{ capacityInGB }} + - name: model + description: | + Deployment Artifact Parameters object + value: + artifactType: "{{ artifactType }}" + displayName: "{{ displayName }}" + filePath: "{{ filePath }}" + name: "{{ name }}" + orgName: "{{ orgName }}" + teamName: "{{ teamName }}" + versionId: "{{ versionId }}" + - name: resource + description: | + Deployment Artifact Parameters object + value: + artifactType: "{{ artifactType }}" + displayName: "{{ displayName }}" + filePath: "{{ filePath }}" + name: "{{ name }}" + orgName: "{{ orgName }}" + teamName: "{{ teamName }}" + versionId: "{{ versionId }}" + - name: storage + description: | + Deployment Storage Parameters object + value: + capacityInGB: {{ capacityInGB }} + - name: no_auto_labels + value: {{ no_auto_labels }} + description: No auto labels + description: No auto labels + - name: merge_csp_parameters + value: {{ merge_csp_parameters }} + description: Merge CSP parameters in response + description: Merge CSP parameters in response +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update_by_team" + values={[ + { label: 'update_by_team', value: 'update_by_team' }, + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update_by_team"> + +Update artifact deployment parameters in team + +```sql +UPDATE nvidia.private_registry.artifact_deployment_params +SET +container = '{{ container }}', +cpu = '{{ cpu }}', +gpu = '{{ gpu }}', +memory = '{{ memory }}', +model = '{{ model }}', +resource = '{{ resource }}', +storage = '{{ storage }}' +WHERE +team_name = '{{ team_name }}' --required +AND artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +AND csp_name = '{{ csp_name }}' --required +AND merge-csp-parameters = {{ merge-csp-parameters}} +RETURNING +container, +cpu, +csp, +gpu, +memory, +model, +resource, +storage; +``` +</TabItem> +<TabItem value="update"> + +Update artifact deployment parameters in org + +```sql +UPDATE nvidia.private_registry.artifact_deployment_params +SET +container = '{{ container }}', +cpu = '{{ cpu }}', +gpu = '{{ gpu }}', +memory = '{{ memory }}', +model = '{{ model }}', +resource = '{{ resource }}', +storage = '{{ storage }}' +WHERE +artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +AND csp_name = '{{ csp_name }}' --required +AND merge-csp-parameters = {{ merge-csp-parameters}} +RETURNING +container, +cpu, +csp, +gpu, +memory, +model, +resource, +storage; +``` +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete_by_team" + values={[ + { label: 'delete_by_team', value: 'delete_by_team' }, + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete_by_team"> + +Delete artifact deployment parameters in team + +```sql +DELETE FROM nvidia.private_registry.artifact_deployment_params +WHERE team_name = '{{ team_name }}' --required +AND artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +AND csp_name = '{{ csp_name }}' --required +; +``` +</TabItem> +<TabItem value="delete"> + +Delete artifact deployment parameters in org + +```sql +DELETE FROM nvidia.private_registry.artifact_deployment_params +WHERE artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +AND csp_name = '{{ csp_name }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/artifact_deployments/index.md b/website/docs/services/private_registry/artifact_deployments/index.md new file mode 100644 index 0000000..f842260 --- /dev/null +++ b/website/docs/services/private_registry/artifact_deployments/index.md @@ -0,0 +1,276 @@ +--- +title: artifact_deployments +hide_title: false +hide_table_of_contents: false +keywords: + - artifact_deployments + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>artifact_deployments</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="artifact_deployments" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.artifact_deployments" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#create_by_team"><CopyableCode code="create_by_team" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a>, <a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td></td> + <td>Create artifact version deployment url in team</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a>, <a href="#parameter-csp_name"><code>csp_name</code></a></td> + <td></td> + <td>Create artifact version deployment url in org</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact name</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type</td> +</tr> +<tr id="parameter-csp_name"> + <td><CopyableCode code="csp_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Cloud service provider name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +</tbody> +</table> + +## `INSERT` examples + +<Tabs + defaultValue="create_by_team" + values={[ + { label: 'create_by_team', value: 'create_by_team' }, + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create_by_team"> + +Create artifact version deployment url in team + +```sql +INSERT INTO nvidia.private_registry.artifact_deployments ( +container, +cpu, +gpu, +memory, +model, +resource, +storage, +team_name, +artifact_type, +artifact_name, +version_id, +csp_name +) +SELECT +'{{ container }}', +'{{ cpu }}', +'{{ gpu }}', +'{{ memory }}', +'{{ model }}', +'{{ resource }}', +'{{ storage }}', +'{{ team_name }}', +'{{ artifact_type }}', +'{{ artifact_name }}', +'{{ version_id }}', +'{{ csp_name }}' +RETURNING +csp, +deployment_parameters, +deployment_url, +request_status +; +``` +</TabItem> +<TabItem value="create"> + +Create artifact version deployment url in org + +```sql +INSERT INTO nvidia.private_registry.artifact_deployments ( +container, +cpu, +gpu, +memory, +model, +resource, +storage, +artifact_type, +artifact_name, +version_id, +csp_name +) +SELECT +'{{ container }}', +'{{ cpu }}', +'{{ gpu }}', +'{{ memory }}', +'{{ model }}', +'{{ resource }}', +'{{ storage }}', +'{{ artifact_type }}', +'{{ artifact_name }}', +'{{ version_id }}', +'{{ csp_name }}' +RETURNING +csp, +deployment_parameters, +deployment_url, +request_status +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: artifact_deployments + props: + - name: team_name + value: "{{ team_name }}" + description: Required parameter for the artifact_deployments resource. + - name: artifact_type + value: "{{ artifact_type }}" + description: Required parameter for the artifact_deployments resource. + - name: artifact_name + value: "{{ artifact_name }}" + description: Required parameter for the artifact_deployments resource. + - name: version_id + value: "{{ version_id }}" + description: Required parameter for the artifact_deployments resource. + - name: csp_name + value: "{{ csp_name }}" + description: Required parameter for the artifact_deployments resource. + - name: container + description: | + Deployment Artifact Parameters object + value: + artifactType: "{{ artifactType }}" + displayName: "{{ displayName }}" + filePath: "{{ filePath }}" + name: "{{ name }}" + orgName: "{{ orgName }}" + teamName: "{{ teamName }}" + versionId: "{{ versionId }}" + - name: cpu + description: | + Deployment CPU Parameters object + value: + count: {{ count }} + - name: gpu + description: | + Deployment GPU Parameters object + value: + count: {{ count }} + type: "{{ type }}" + - name: memory + description: | + Deployment Memory Parameters object + value: + capacityInGB: {{ capacityInGB }} + - name: model + description: | + Deployment Artifact Parameters object + value: + artifactType: "{{ artifactType }}" + displayName: "{{ displayName }}" + filePath: "{{ filePath }}" + name: "{{ name }}" + orgName: "{{ orgName }}" + teamName: "{{ teamName }}" + versionId: "{{ versionId }}" + - name: resource + description: | + Deployment Artifact Parameters object + value: + artifactType: "{{ artifactType }}" + displayName: "{{ displayName }}" + filePath: "{{ filePath }}" + name: "{{ name }}" + orgName: "{{ orgName }}" + teamName: "{{ teamName }}" + versionId: "{{ versionId }}" + - name: storage + description: | + Deployment Storage Parameters object + value: + capacityInGB: {{ capacityInGB }} +`}</CodeBlock> + +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/artifact_files/index.md b/website/docs/services/private_registry/artifact_files/index.md new file mode 100644 index 0000000..b7247b1 --- /dev/null +++ b/website/docs/services/private_registry/artifact_files/index.md @@ -0,0 +1,250 @@ +--- +title: artifact_files +hide_title: false +hide_table_of_contents: false +keywords: + - artifact_files + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>artifact_files</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="artifact_files" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.artifact_files" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the file</td> +</tr> +<tr> + <td><CopyableCode code="path" /></td> + <td><code>string</code></td> + <td>Relative file path from the root of the object</td> +</tr> +<tr> + <td><CopyableCode code="size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the file in bytes (wire: sizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the file</td> +</tr> +<tr> + <td><CopyableCode code="path" /></td> + <td><code>string</code></td> + <td>Relative file path from the root of the object</td> +</tr> +<tr> + <td><CopyableCode code="size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the file in bytes (wire: sizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>List files of the artifact version in team</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>List files of the artifact version in org</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact name</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +List files of the artifact version in team + +```sql +SELECT +created_date, +description, +path, +size_in_bytes, +updated_date +FROM nvidia.private_registry.artifact_files +WHERE artifact_type = '{{ artifact_type }}' -- required +AND team_name = '{{ team_name }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND version_id = '{{ version_id }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +<TabItem value="list"> + +List files of the artifact version in org + +```sql +SELECT +created_date, +description, +path, +size_in_bytes, +updated_date +FROM nvidia.private_registry.artifact_files +WHERE artifact_type = '{{ artifact_type }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND version_id = '{{ version_id }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/artifact_product_shares/index.md b/website/docs/services/private_registry/artifact_product_shares/index.md new file mode 100644 index 0000000..a5f75dc --- /dev/null +++ b/website/docs/services/private_registry/artifact_product_shares/index.md @@ -0,0 +1,274 @@ +--- +title: artifact_product_shares +hide_title: false +hide_table_of_contents: false +keywords: + - artifact_product_shares + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>artifact_product_shares</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="artifact_product_shares" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.artifact_product_shares" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#add_by_team"><CopyableCode code="add_by_team" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Publish artifact to product</td> +</tr> +<tr> + <td><a href="#add"><CopyableCode code="add" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Publish artifact to product</td> +</tr> +<tr> + <td><a href="#remove_by_team"><CopyableCode code="remove_by_team" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Undo publishing of product artifacts</td> +</tr> +<tr> + <td><a href="#remove"><CopyableCode code="remove" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Undo publishing of product artifacts</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact name</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +</tbody> +</table> + +## `INSERT` examples + +<Tabs + defaultValue="add_by_team" + values={[ + { label: 'add_by_team', value: 'add_by_team' }, + { label: 'add', value: 'add' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="add_by_team"> + +Publish artifact to product + +```sql +INSERT INTO nvidia.private_registry.artifact_product_shares ( +access_type, +can_guest_pull, +can_public_list, +is_public, +license_terms, +product_names, +team_name, +artifact_type, +artifact_name +) +SELECT +'{{ access_type }}', +{{ can_guest_pull }}, +{{ can_public_list }}, +{{ is_public }}, +'{{ license_terms }}', +'{{ product_names }}', +'{{ team_name }}', +'{{ artifact_type }}', +'{{ artifact_name }}' +RETURNING +request_status +; +``` +</TabItem> +<TabItem value="add"> + +Publish artifact to product + +```sql +INSERT INTO nvidia.private_registry.artifact_product_shares ( +access_type, +can_guest_pull, +can_public_list, +is_public, +license_terms, +product_names, +artifact_type, +artifact_name +) +SELECT +'{{ access_type }}', +{{ can_guest_pull }}, +{{ can_public_list }}, +{{ is_public }}, +'{{ license_terms }}', +'{{ product_names }}', +'{{ artifact_type }}', +'{{ artifact_name }}' +RETURNING +request_status +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: artifact_product_shares + props: + - name: team_name + value: "{{ team_name }}" + description: Required parameter for the artifact_product_shares resource. + - name: artifact_type + value: "{{ artifact_type }}" + description: Required parameter for the artifact_product_shares resource. + - name: artifact_name + value: "{{ artifact_name }}" + description: Required parameter for the artifact_product_shares resource. + - name: access_type + value: "{{ access_type }}" + valid_values: ['LISTED', 'EXCLUSIVE', 'NOT_LISTED'] + - name: can_guest_pull + value: {{ can_guest_pull }} + - name: can_public_list + value: {{ can_public_list }} + - name: is_public + value: {{ is_public }} + - name: license_terms + value: + - configuredLicenseTerms: + download: + artifactType: "{{ artifactType }}" + generatedHtml: "{{ generatedHtml }}" + tags: + - category: "{{ category }}" + key: "{{ key }}" + label: "{{ label }}" + tag: "{{ tag }}" + url: "{{ url }}" + hosting: + artifactType: "{{ artifactType }}" + generatedHtml: "{{ generatedHtml }}" + tags: + - category: "{{ category }}" + key: "{{ key }}" + label: "{{ label }}" + tag: "{{ tag }}" + url: "{{ url }}" + governingTerms: "{{ governingTerms }}" + licenseId: "{{ licenseId }}" + licenseVersion: "{{ licenseVersion }}" + needsAcceptance: {{ needsAcceptance }} + - name: product_names + value: + - "{{ product_names }}" +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="remove_by_team" + values={[ + { label: 'remove_by_team', value: 'remove_by_team' }, + { label: 'remove', value: 'remove' } + ]} +> +<TabItem value="remove_by_team"> + +Undo publishing of product artifacts + +```sql +DELETE FROM nvidia.private_registry.artifact_product_shares +WHERE team_name = '{{ team_name }}' --required +AND artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +; +``` +</TabItem> +<TabItem value="remove"> + +Undo publishing of product artifacts + +```sql +DELETE FROM nvidia.private_registry.artifact_product_shares +WHERE artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/artifact_shares/index.md b/website/docs/services/private_registry/artifact_shares/index.md new file mode 100644 index 0000000..60dbe64 --- /dev/null +++ b/website/docs/services/private_registry/artifact_shares/index.md @@ -0,0 +1,238 @@ +--- +title: artifact_shares +hide_title: false +hide_table_of_contents: false +keywords: + - artifact_shares + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>artifact_shares</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="artifact_shares" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.artifact_shares" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#add_by_team"><CopyableCode code="add_by_team" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-guest_can_download"><code>guest_can_download</code></a></td> + <td><a href="#parameter-public_can_list"><code>public_can_list</code></a></td> + <td>Publish artifact to public</td> +</tr> +<tr> + <td><a href="#add"><CopyableCode code="add" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-guest_can_download"><code>guest_can_download</code></a></td> + <td><a href="#parameter-public_can_list"><code>public_can_list</code></a></td> + <td>Publish artifact to public</td> +</tr> +<tr> + <td><a href="#remove_by_team"><CopyableCode code="remove_by_team" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Undo publishing of artifact to public</td> +</tr> +<tr> + <td><a href="#remove"><CopyableCode code="remove" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Undo publishing of artifact to public</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact name</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type</td> +</tr> +<tr id="parameter-guest_can_download"> + <td><CopyableCode code="guest_can_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if guest users can download this artifact</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-public_can_list"> + <td><CopyableCode code="public_can_list" /></td> + <td><code>boolean</code></td> + <td>Indicates if artifact is listed publicly</td> +</tr> +</tbody> +</table> + +## `INSERT` examples + +<Tabs + defaultValue="add_by_team" + values={[ + { label: 'add_by_team', value: 'add_by_team' }, + { label: 'add', value: 'add' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="add_by_team"> + +Publish artifact to public + +```sql +INSERT INTO nvidia.private_registry.artifact_shares ( +team_name, +artifact_type, +artifact_name, +guest_can_download, +public_can_list +) +SELECT +'{{ team_name }}', +'{{ artifact_type }}', +'{{ artifact_name }}', +'{{ guest_can_download }}', +'{{ public_can_list }}' +RETURNING +request_status +; +``` +</TabItem> +<TabItem value="add"> + +Publish artifact to public + +```sql +INSERT INTO nvidia.private_registry.artifact_shares ( +artifact_type, +artifact_name, +guest_can_download, +public_can_list +) +SELECT +'{{ artifact_type }}', +'{{ artifact_name }}', +'{{ guest_can_download }}', +'{{ public_can_list }}' +RETURNING +request_status +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: artifact_shares + props: + - name: team_name + value: "{{ team_name }}" + description: Required parameter for the artifact_shares resource. + - name: artifact_type + value: "{{ artifact_type }}" + description: Required parameter for the artifact_shares resource. + - name: artifact_name + value: "{{ artifact_name }}" + description: Required parameter for the artifact_shares resource. + - name: guest_can_download + value: {{ guest_can_download }} + description: Required parameter for the artifact_shares resource. + - name: public_can_list + value: {{ public_can_list }} + description: Indicates if artifact is listed publicly + description: Indicates if artifact is listed publicly +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="remove_by_team" + values={[ + { label: 'remove_by_team', value: 'remove_by_team' }, + { label: 'remove', value: 'remove' } + ]} +> +<TabItem value="remove_by_team"> + +Undo publishing of artifact to public + +```sql +DELETE FROM nvidia.private_registry.artifact_shares +WHERE team_name = '{{ team_name }}' --required +AND artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +; +``` +</TabItem> +<TabItem value="remove"> + +Undo publishing of artifact to public + +```sql +DELETE FROM nvidia.private_registry.artifact_shares +WHERE artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/artifact_signatures/index.md b/website/docs/services/private_registry/artifact_signatures/index.md new file mode 100644 index 0000000..11edcf7 --- /dev/null +++ b/website/docs/services/private_registry/artifact_signatures/index.md @@ -0,0 +1,142 @@ +--- +title: artifact_signatures +hide_title: false +hide_table_of_contents: false +keywords: + - artifact_signatures + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>artifact_signatures</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="artifact_signatures" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.artifact_signatures" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#set_by_team"><CopyableCode code="set_by_team" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Request to sign artifact version</td> +</tr> +<tr> + <td><a href="#set"><CopyableCode code="set" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Request to sign artifact version</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact name</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +</tbody> +</table> + +## Lifecycle Methods + +EXEC variables use wire (API) names. + +<Tabs + defaultValue="set_by_team" + values={[ + { label: 'set_by_team', value: 'set_by_team' }, + { label: 'set', value: 'set' } + ]} +> +<TabItem value="set_by_team"> + +Request to sign artifact version + +```sql +EXEC nvidia.private_registry.artifact_signatures.set_by_team +@team_name='{{ team_name }}' --required, +@artifact_type='{{ artifact_type }}' --required, +@artifact_name='{{ artifact_name }}' --required, +@version_id='{{ version_id }}' --required +; +``` +</TabItem> +<TabItem value="set"> + +Request to sign artifact version + +```sql +EXEC nvidia.private_registry.artifact_signatures.set +@artifact_type='{{ artifact_type }}' --required, +@artifact_name='{{ artifact_name }}' --required, +@version_id='{{ version_id }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/artifact_specs/index.md b/website/docs/services/private_registry/artifact_specs/index.md new file mode 100644 index 0000000..ce51397 --- /dev/null +++ b/website/docs/services/private_registry/artifact_specs/index.md @@ -0,0 +1,534 @@ +--- +title: artifact_specs +hide_title: false +hide_table_of_contents: false +keywords: + - artifact_specs + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>artifact_specs</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="artifact_specs" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.artifact_specs" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="nvcf_function_id" /></td> + <td><code>string</code></td> + <td>NVCF function id for the model playground (wire: nvcfFunctionId)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string</code></td> + <td>Unique name of the model (wire: artifactName)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string</code></td> + <td>ArtifactTypeEnum of the artifact (wire: artifactType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>string</code></td> + <td>Metadata json string</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="namespace" /></td> + <td><code>string</code></td> + <td>org/team of the model</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_inference_path" /></td> + <td><code>string</code></td> + <td>NVCF inference path (invocation route) for the model playground (wire: nvcfInferencePath)</td> +</tr> +<tr> + <td><CopyableCode code="open_api_spec" /></td> + <td><code>string</code></td> + <td>OpenAPI specification for this model (wire: openAPISpec)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="nvcf_function_id" /></td> + <td><code>string</code></td> + <td>NVCF function id for the model playground (wire: nvcfFunctionId)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string</code></td> + <td>Unique name of the model (wire: artifactName)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string</code></td> + <td>ArtifactTypeEnum of the artifact (wire: artifactType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>string</code></td> + <td>Metadata json string</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="namespace" /></td> + <td><code>string</code></td> + <td>org/team of the model</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_inference_path" /></td> + <td><code>string</code></td> + <td>NVCF inference path (invocation route) for the model playground (wire: nvcfInferencePath)</td> +</tr> +<tr> + <td><CopyableCode code="open_api_spec" /></td> + <td><code>string</code></td> + <td>OpenAPI specification for this model (wire: openAPISpec)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Get AI Playground for artifactType</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Get AI Playground for artifactType</td> +</tr> +<tr> + <td><a href="#create_by_team"><CopyableCode code="create_by_team" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-nvcf_function_id"><code>nvcf_function_id</code></a></td> + <td></td> + <td>Create AI Playground for artifactType</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-nvcf_function_id"><code>nvcf_function_id</code></a></td> + <td></td> + <td>Create AI Playground for artifactType</td> +</tr> +<tr> + <td><a href="#update_by_team"><CopyableCode code="update_by_team" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Update AI Playground for artifactType</td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Update AI Playground for artifactType</td> +</tr> +<tr> + <td><a href="#delete_by_team"><CopyableCode code="delete_by_team" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Delete AI Playground for artifactType</td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Delete AI Playground for artifactType</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Model name</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' } + ]} +> +<TabItem value="get_by_team"> + +Get AI Playground for artifactType + +```sql +SELECT +nvcf_function_id, +artifact_name, +artifact_type, +attributes, +created_date, +namespace, +nvcf_inference_path, +open_api_spec, +updated_date +FROM nvidia.private_registry.artifact_specs +WHERE team_name = '{{ team_name }}' -- required +AND artifact_type = '{{ artifact_type }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +; +``` +</TabItem> +<TabItem value="get"> + +Get AI Playground for artifactType + +```sql +SELECT +nvcf_function_id, +artifact_name, +artifact_type, +attributes, +created_date, +namespace, +nvcf_inference_path, +open_api_spec, +updated_date +FROM nvidia.private_registry.artifact_specs +WHERE artifact_type = '{{ artifact_type }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create_by_team" + values={[ + { label: 'create_by_team', value: 'create_by_team' }, + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create_by_team"> + +Create AI Playground for artifactType + +```sql +INSERT INTO nvidia.private_registry.artifact_specs ( +artifact_name, +attributes, +nvcf_function_id, +nvcf_inference_path, +open_api_spec, +team_name, +artifact_type +) +SELECT +'{{ artifact_name }}' /* required */, +'{{ attributes }}', +'{{ nvcf_function_id }}' /* required */, +'{{ nvcf_inference_path }}', +'{{ open_api_spec }}', +'{{ team_name }}', +'{{ artifact_type }}' +RETURNING +nvcf_function_id, +artifact_name, +artifact_type, +attributes, +created_date, +namespace, +nvcf_inference_path, +open_api_spec, +updated_date +; +``` +</TabItem> +<TabItem value="create"> + +Create AI Playground for artifactType + +```sql +INSERT INTO nvidia.private_registry.artifact_specs ( +artifact_name, +attributes, +nvcf_function_id, +nvcf_inference_path, +open_api_spec, +artifact_type +) +SELECT +'{{ artifact_name }}' /* required */, +'{{ attributes }}', +'{{ nvcf_function_id }}' /* required */, +'{{ nvcf_inference_path }}', +'{{ open_api_spec }}', +'{{ artifact_type }}' +RETURNING +nvcf_function_id, +artifact_name, +artifact_type, +attributes, +created_date, +namespace, +nvcf_inference_path, +open_api_spec, +updated_date +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: artifact_specs + props: + - name: team_name + value: "{{ team_name }}" + description: Required parameter for the artifact_specs resource. + - name: artifact_type + value: "{{ artifact_type }}" + description: Required parameter for the artifact_specs resource. + - name: artifact_name + value: "{{ artifact_name }}" + description: | + Unique name of the model + - name: attributes + value: "{{ attributes }}" + description: | + Metadata json string + - name: nvcf_function_id + value: "{{ nvcf_function_id }}" + description: | + NVCF function id for the model playground + - name: nvcf_inference_path + value: "{{ nvcf_inference_path }}" + description: | + NVCF inference path (invocation route) for the model playground + - name: open_api_spec + value: "{{ open_api_spec }}" + description: | + OpenAPI specification for this model +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update_by_team" + values={[ + { label: 'update_by_team', value: 'update_by_team' }, + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update_by_team"> + +Update AI Playground for artifactType + +```sql +UPDATE nvidia.private_registry.artifact_specs +SET +attributes = '{{ attributes }}', +nvcf_function_id = '{{ nvcf_function_id }}', +nvcf_inference_path = '{{ nvcf_inference_path }}', +open_api_spec = '{{ open_api_spec }}' +WHERE +team_name = '{{ team_name }}' --required +AND artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +RETURNING +nvcf_function_id, +artifact_name, +artifact_type, +attributes, +created_date, +namespace, +nvcf_inference_path, +open_api_spec, +updated_date; +``` +</TabItem> +<TabItem value="update"> + +Update AI Playground for artifactType + +```sql +UPDATE nvidia.private_registry.artifact_specs +SET +attributes = '{{ attributes }}', +nvcf_function_id = '{{ nvcf_function_id }}', +nvcf_inference_path = '{{ nvcf_inference_path }}', +open_api_spec = '{{ open_api_spec }}' +WHERE +artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +RETURNING +nvcf_function_id, +artifact_name, +artifact_type, +attributes, +created_date, +namespace, +nvcf_inference_path, +open_api_spec, +updated_date; +``` +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete_by_team" + values={[ + { label: 'delete_by_team', value: 'delete_by_team' }, + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete_by_team"> + +Delete AI Playground for artifactType + +```sql +DELETE FROM nvidia.private_registry.artifact_specs +WHERE team_name = '{{ team_name }}' --required +AND artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +; +``` +</TabItem> +<TabItem value="delete"> + +Delete AI Playground for artifactType + +```sql +DELETE FROM nvidia.private_registry.artifact_specs +WHERE artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/artifact_version_configs/index.md b/website/docs/services/private_registry/artifact_version_configs/index.md new file mode 100644 index 0000000..bdd620d --- /dev/null +++ b/website/docs/services/private_registry/artifact_version_configs/index.md @@ -0,0 +1,148 @@ +--- +title: artifact_version_configs +hide_title: false +hide_table_of_contents: false +keywords: + - artifact_version_configs + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>artifact_version_configs</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="artifact_version_configs" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.artifact_version_configs" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#update_by_team"><CopyableCode code="update_by_team" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Update artifact version with configs like policy badge</td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Update artifact version with configs like policy badge</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact name</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +</tbody> +</table> + +## `UPDATE` examples + +<Tabs + defaultValue="update_by_team" + values={[ + { label: 'update_by_team', value: 'update_by_team' }, + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update_by_team"> + +Update artifact version with configs like policy badge + +```sql +UPDATE nvidia.private_registry.artifact_version_configs +SET +policy = '{{ policy }}' +WHERE +team_name = '{{ team_name }}' --required +AND artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +AND version_id = '{{ version_id }}' --required +RETURNING +request_status; +``` +</TabItem> +<TabItem value="update"> + +Update artifact version with configs like policy badge + +```sql +UPDATE nvidia.private_registry.artifact_version_configs +SET +policy = '{{ policy }}' +WHERE +artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +AND version_id = '{{ version_id }}' --required +RETURNING +request_status; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/artifact_versions/index.md b/website/docs/services/private_registry/artifact_versions/index.md new file mode 100644 index 0000000..3cff632 --- /dev/null +++ b/website/docs/services/private_registry/artifact_versions/index.md @@ -0,0 +1,140 @@ +--- +title: artifact_versions +hide_title: false +hide_table_of_contents: false +keywords: + - artifact_versions + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>artifact_versions</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="artifact_versions" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.artifact_versions" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#delete_by_team"><CopyableCode code="delete_by_team" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Delete a artifact version in team</td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Delete a artifact version in org</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact name</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +</tbody> +</table> + +## `DELETE` examples + +<Tabs + defaultValue="delete_by_team" + values={[ + { label: 'delete_by_team', value: 'delete_by_team' }, + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete_by_team"> + +Delete a artifact version in team + +```sql +DELETE FROM nvidia.private_registry.artifact_versions +WHERE team_name = '{{ team_name }}' --required +AND artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +AND version_id = '{{ version_id }}' --required +; +``` +</TabItem> +<TabItem value="delete"> + +Delete a artifact version in org + +```sql +DELETE FROM nvidia.private_registry.artifact_versions +WHERE artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +AND version_id = '{{ version_id }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/artifacts/index.md b/website/docs/services/private_registry/artifacts/index.md new file mode 100644 index 0000000..d666aac --- /dev/null +++ b/website/docs/services/private_registry/artifacts/index.md @@ -0,0 +1,1703 @@ +--- +title: artifacts +hide_title: false +hide_table_of_contents: false +keywords: + - artifacts + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>artifacts</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="artifacts" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.artifacts" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="encryption_key_id" /></td> + <td><code>string</code></td> + <td>ID of the customer managed encryption key associated with this artifact (wire: encryptionKeyId)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the helm chart belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the helm chart belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string</code></td> + <td>Artifact type (MODEL, MODEL_SCRIPT, HELM_CHART, REPOSITORY, COLLECTION, ENDPOINT, BLUEPRINT, PLAYBOOK, AGENT, API, SKILL) (wire: artifactType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="bias" /></td> + <td><code>string</code></td> + <td>Text describing bias in the artifact</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the helm chart (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="explainability" /></td> + <td><code>string</code></td> + <td>Text describing the explainability for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the artifact has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if helm chart is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this helm chart is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="privacy" /></td> + <td><code>string</code></td> + <td>Text describing the privacy for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this helm chart</td> +</tr> +<tr> + <td><CopyableCode code="safety_and_security" /></td> + <td><code>string</code></td> + <td>Text for describing the safety and security in the artifact (wire: safetyAndSecurity)</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the helm chart (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="encryption_key_id" /></td> + <td><code>string</code></td> + <td>ID of the customer managed encryption key associated with this artifact (wire: encryptionKeyId)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the helm chart belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the helm chart belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string</code></td> + <td>Artifact type (MODEL, MODEL_SCRIPT, HELM_CHART, REPOSITORY, COLLECTION, ENDPOINT, BLUEPRINT, PLAYBOOK, AGENT, API, SKILL) (wire: artifactType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="bias" /></td> + <td><code>string</code></td> + <td>Text describing bias in the artifact</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the helm chart (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="explainability" /></td> + <td><code>string</code></td> + <td>Text describing the explainability for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the artifact has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if helm chart is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this helm chart is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="privacy" /></td> + <td><code>string</code></td> + <td>Text describing the privacy for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this helm chart</td> +</tr> +<tr> + <td><CopyableCode code="safety_and_security" /></td> + <td><code>string</code></td> + <td>Text for describing the safety and security in the artifact (wire: safetyAndSecurity)</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the helm chart (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="encryption_key_id" /></td> + <td><code>string</code></td> + <td>ID of the customer managed encryption key associated with this artifact (wire: encryptionKeyId)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the helm chart belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the helm chart belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string</code></td> + <td>Artifact type (MODEL, MODEL_SCRIPT, HELM_CHART, REPOSITORY, COLLECTION, ENDPOINT, BLUEPRINT, PLAYBOOK, AGENT, API, SKILL) (wire: artifactType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="bias" /></td> + <td><code>string</code></td> + <td>Text describing bias in the artifact</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the helm chart (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="explainability" /></td> + <td><code>string</code></td> + <td>Text describing the explainability for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the artifact has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if helm chart is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this helm chart is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="privacy" /></td> + <td><code>string</code></td> + <td>Text describing the privacy for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this helm chart</td> +</tr> +<tr> + <td><CopyableCode code="safety_and_security" /></td> + <td><code>string</code></td> + <td>Text for describing the safety and security in the artifact (wire: safetyAndSecurity)</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the helm chart (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="encryption_key_id" /></td> + <td><code>string</code></td> + <td>ID of the customer managed encryption key associated with this artifact (wire: encryptionKeyId)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the helm chart belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the helm chart belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string</code></td> + <td>Artifact type (MODEL, MODEL_SCRIPT, HELM_CHART, REPOSITORY, COLLECTION, ENDPOINT, BLUEPRINT, PLAYBOOK, AGENT, API, SKILL) (wire: artifactType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="bias" /></td> + <td><code>string</code></td> + <td>Text describing bias in the artifact</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the helm chart (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="explainability" /></td> + <td><code>string</code></td> + <td>Text describing the explainability for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the artifact has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if helm chart is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this helm chart is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="privacy" /></td> + <td><code>string</code></td> + <td>Text describing the privacy for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this helm chart</td> +</tr> +<tr> + <td><CopyableCode code="safety_and_security" /></td> + <td><code>string</code></td> + <td>Text for describing the safety and security in the artifact (wire: safetyAndSecurity)</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the helm chart (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td><a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>Get artifact details in team</td> +</tr> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>List artifacts the user can access in the specified org and team</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td><a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>Get artifact details in org</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>List artifacts the user can access in the specified org</td> +</tr> +<tr> + <td><a href="#create_by_team"><CopyableCode code="create_by_team" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-name"><code>name</code></a>, <a href="#parameter-short_description"><code>short_description</code></a></td> + <td></td> + <td>Create artifact in team</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-name"><code>name</code></a>, <a href="#parameter-short_description"><code>short_description</code></a></td> + <td></td> + <td>Create artifact in org</td> +</tr> +<tr> + <td><a href="#update_by_team"><CopyableCode code="update_by_team" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Update artifact details in team</td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Update artifact details in org</td> +</tr> +<tr> + <td><a href="#replace_by_team"><CopyableCode code="replace_by_team" /></a></td> + <td><CopyableCode code="replace" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Replace artifact details in team</td> +</tr> +<tr> + <td><a href="#replace"><CopyableCode code="replace" /></a></td> + <td><CopyableCode code="replace" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Replace artifact details in org</td> +</tr> +<tr> + <td><a href="#delete_by_team"><CopyableCode code="delete_by_team" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Delete artifact in team</td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Delete artifact in org</td> +</tr> +<tr> + <td><a href="#sync_release_type_labels_by_team"><CopyableCode code="sync_release_type_labels_by_team" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Sync release type labels for all collections containing this artifact. Internal API for service-to-service communication.</td> +</tr> +<tr> + <td><a href="#set_release_type_by_team"><CopyableCode code="set_release_type_by_team" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version"><code>version</code></a></td> + <td></td> + <td>Updates the release type (for example GA, EA, beta) of an artifact version within the specified organization and optional team.</td> +</tr> +<tr> + <td><a href="#set_terms_of_service_by_team"><CopyableCode code="set_terms_of_service_by_team" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Update artifact terms of service</td> +</tr> +<tr> + <td><a href="#sync_release_type_labels"><CopyableCode code="sync_release_type_labels" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Sync release type labels for all collections containing this artifact. Internal API for service-to-service communication.</td> +</tr> +<tr> + <td><a href="#set_release_type"><CopyableCode code="set_release_type" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version"><code>version</code></a></td> + <td></td> + <td>Updates the release type (for example GA, EA, beta) of an artifact version within the specified organization and optional team.</td> +</tr> +<tr> + <td><a href="#set_terms_of_service"><CopyableCode code="set_terms_of_service" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Update artifact terms of service</td> +</tr> +<tr> + <td><a href="#malware_scan_by_team"><CopyableCode code="malware_scan_by_team" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-contact_email"><code>contact_email</code></a>, <a href="#parameter-nspect_id"><code>nspect_id</code></a></td> + <td>Initiates malwares can for the artifact</td> +</tr> +<tr> + <td><a href="#purge_by_team"><CopyableCode code="purge_by_team" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Purge Search DB for deleted artifacts</td> +</tr> +<tr> + <td><a href="#malware_scan"><CopyableCode code="malware_scan" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-contact_email"><code>contact_email</code></a>, <a href="#parameter-nspect_id"><code>nspect_id</code></a></td> + <td>Initiates malwares can for the artifact</td> +</tr> +<tr> + <td><a href="#purge"><CopyableCode code="purge" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Purge Search DB for deleted artifacts</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact name</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +<tr id="parameter-contact_email"> + <td><CopyableCode code="contact_email" /></td> + <td><code>string (UTF-8)</code></td> + <td>Contact email</td> +</tr> +<tr id="parameter-nspect_id"> + <td><CopyableCode code="nspect_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Nspect identifier</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-remove_unresolved_labels"> + <td><CopyableCode code="remove_unresolved_labels" /></td> + <td><code>boolean</code></td> + <td>Remove unresolved labels</td> +</tr> +<tr id="parameter-resolve_labels"> + <td><CopyableCode code="resolve_labels" /></td> + <td><code>boolean</code></td> + <td>Resolve labels</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +Get artifact details in team + +```sql +SELECT +name, +encryption_key_id, +latest_version_id, +display_name, +org_name, +owner_name, +team_name, +access_type, +artifact_type, +attributes, +bias, +built_by, +can_guest_download, +created_date, +description, +explainability, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_size_in_bytes, +license_terms, +logo, +policy_labels, +privacy, +product_names, +publisher, +safety_and_security, +short_description, +updated_date +FROM nvidia.private_registry.artifacts +WHERE team_name = '{{ team_name }}' -- required +AND artifact_type = '{{ artifact_type }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="list_by_team"> + +List artifacts the user can access in the specified org and team + +```sql +SELECT +name, +encryption_key_id, +latest_version_id, +display_name, +org_name, +owner_name, +team_name, +access_type, +artifact_type, +attributes, +bias, +built_by, +can_guest_download, +created_date, +description, +explainability, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_size_in_bytes, +license_terms, +logo, +policy_labels, +privacy, +product_names, +publisher, +safety_and_security, +short_description, +updated_date +FROM nvidia.private_registry.artifacts +WHERE team_name = '{{ team_name }}' -- required +AND artifact_type = '{{ artifact_type }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="get"> + +Get artifact details in org + +```sql +SELECT +name, +encryption_key_id, +latest_version_id, +display_name, +org_name, +owner_name, +team_name, +access_type, +artifact_type, +attributes, +bias, +built_by, +can_guest_download, +created_date, +description, +explainability, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_size_in_bytes, +license_terms, +logo, +policy_labels, +privacy, +product_names, +publisher, +safety_and_security, +short_description, +updated_date +FROM nvidia.private_registry.artifacts +WHERE artifact_type = '{{ artifact_type }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="list"> + +List artifacts the user can access in the specified org + +```sql +SELECT +name, +encryption_key_id, +latest_version_id, +display_name, +org_name, +owner_name, +team_name, +access_type, +artifact_type, +attributes, +bias, +built_by, +can_guest_download, +created_date, +description, +explainability, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_size_in_bytes, +license_terms, +logo, +policy_labels, +privacy, +product_names, +publisher, +safety_and_security, +short_description, +updated_date +FROM nvidia.private_registry.artifacts +WHERE artifact_type = '{{ artifact_type }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create_by_team" + values={[ + { label: 'create_by_team', value: 'create_by_team' }, + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create_by_team"> + +Create artifact in team + +```sql +INSERT INTO nvidia.private_registry.artifacts ( +attributes, +bias, +built_by, +description, +display_name, +explainability, +labels, +labels_v2, +license_terms, +logo, +name, +privacy, +publisher, +safety_and_security, +short_description, +team_name, +artifact_type +) +SELECT +'{{ attributes }}', +'{{ bias }}', +'{{ built_by }}', +'{{ description }}', +'{{ display_name }}', +'{{ explainability }}', +'{{ labels }}', +'{{ labels_v2 }}', +'{{ license_terms }}', +'{{ logo }}', +'{{ name }}' /* required */, +'{{ privacy }}', +'{{ publisher }}', +'{{ safety_and_security }}', +'{{ short_description }}' /* required */, +'{{ team_name }}', +'{{ artifact_type }}' +RETURNING +artifact, +request_status +; +``` +</TabItem> +<TabItem value="create"> + +Create artifact in org + +```sql +INSERT INTO nvidia.private_registry.artifacts ( +attributes, +bias, +built_by, +description, +display_name, +explainability, +labels, +labels_v2, +license_terms, +logo, +name, +privacy, +publisher, +safety_and_security, +short_description, +artifact_type +) +SELECT +'{{ attributes }}', +'{{ bias }}', +'{{ built_by }}', +'{{ description }}', +'{{ display_name }}', +'{{ explainability }}', +'{{ labels }}', +'{{ labels_v2 }}', +'{{ license_terms }}', +'{{ logo }}', +'{{ name }}' /* required */, +'{{ privacy }}', +'{{ publisher }}', +'{{ safety_and_security }}', +'{{ short_description }}' /* required */, +'{{ artifact_type }}' +RETURNING +artifact, +request_status +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: artifacts + props: + - name: team_name + value: "{{ team_name }}" + description: Required parameter for the artifacts resource. + - name: artifact_type + value: "{{ artifact_type }}" + description: Required parameter for the artifacts resource. + - name: attributes + value: + - key: "{{ key }}" + value: "{{ value }}" + - name: bias + value: "{{ bias }}" + description: | + Text describing bias in the model + - name: built_by + value: "{{ built_by }}" + description: | + organization that built the artifact + - name: description + value: "{{ description }}" + description: | + Description of the artifact + - name: display_name + value: "{{ display_name }}" + description: | + Display name + - name: explainability + value: "{{ explainability }}" + description: | + Text describing explainability for this model + - name: labels + value: + - "{{ labels }}" + - name: labels_v2 + value: + - "{{ labels_v2 }}" + - name: license_terms + value: + - configuredLicenseTerms: + download: + artifactType: "{{ artifactType }}" + generatedHtml: "{{ generatedHtml }}" + tags: + - category: "{{ category }}" + key: "{{ key }}" + label: "{{ label }}" + tag: "{{ tag }}" + url: "{{ url }}" + hosting: + artifactType: "{{ artifactType }}" + generatedHtml: "{{ generatedHtml }}" + tags: + - category: "{{ category }}" + key: "{{ key }}" + label: "{{ label }}" + tag: "{{ tag }}" + url: "{{ url }}" + governingTerms: "{{ governingTerms }}" + licenseId: "{{ licenseId }}" + licenseVersion: "{{ licenseVersion }}" + needsAcceptance: {{ needsAcceptance }} + - name: logo + value: "{{ logo }}" + description: | + URL for the logo image + - name: name + value: "{{ name }}" + description: | + Unique name of the artifact + - name: privacy + value: "{{ privacy }}" + description: | + Text describing the privacy for this model + - name: publisher + value: "{{ publisher }}" + description: | + organization that published the artifact + - name: safety_and_security + value: "{{ safety_and_security }}" + description: | + Text for describing the safety and security in the model + - name: short_description + value: "{{ short_description }}" + description: | + Short description of the artifact +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update_by_team" + values={[ + { label: 'update_by_team', value: 'update_by_team' }, + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update_by_team"> + +Update artifact details in team + +```sql +UPDATE nvidia.private_registry.artifacts +SET +attributes = '{{ attributes }}', +bias = '{{ bias }}', +built_by = '{{ built_by }}', +description = '{{ description }}', +display_name = '{{ display_name }}', +explainability = '{{ explainability }}', +labels = '{{ labels }}', +labels_v2 = '{{ labels_v2 }}', +license_terms = '{{ license_terms }}', +logo = '{{ logo }}', +privacy = '{{ privacy }}', +publisher = '{{ publisher }}', +safety_and_security = '{{ safety_and_security }}', +short_description = '{{ short_description }}' +WHERE +team_name = '{{ team_name }}' --required +AND artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +RETURNING +artifact, +request_status; +``` +</TabItem> +<TabItem value="update"> + +Update artifact details in org + +```sql +UPDATE nvidia.private_registry.artifacts +SET +attributes = '{{ attributes }}', +bias = '{{ bias }}', +built_by = '{{ built_by }}', +description = '{{ description }}', +display_name = '{{ display_name }}', +explainability = '{{ explainability }}', +labels = '{{ labels }}', +labels_v2 = '{{ labels_v2 }}', +license_terms = '{{ license_terms }}', +logo = '{{ logo }}', +privacy = '{{ privacy }}', +publisher = '{{ publisher }}', +safety_and_security = '{{ safety_and_security }}', +short_description = '{{ short_description }}' +WHERE +artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +RETURNING +artifact, +request_status; +``` +</TabItem> +</Tabs> + + +## `REPLACE` examples + +<Tabs + defaultValue="replace_by_team" + values={[ + { label: 'replace_by_team', value: 'replace_by_team' }, + { label: 'replace', value: 'replace' } + ]} +> +<TabItem value="replace_by_team"> + +Replace artifact details in team + +```sql +REPLACE nvidia.private_registry.artifacts +SET +attributes = '{{ attributes }}', +bias = '{{ bias }}', +built_by = '{{ built_by }}', +description = '{{ description }}', +display_name = '{{ display_name }}', +explainability = '{{ explainability }}', +labels = '{{ labels }}', +labels_v2 = '{{ labels_v2 }}', +license_terms = '{{ license_terms }}', +logo = '{{ logo }}', +privacy = '{{ privacy }}', +publisher = '{{ publisher }}', +safety_and_security = '{{ safety_and_security }}', +short_description = '{{ short_description }}' +WHERE +team_name = '{{ team_name }}' --required +AND artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +RETURNING +artifact, +request_status; +``` +</TabItem> +<TabItem value="replace"> + +Replace artifact details in org + +```sql +REPLACE nvidia.private_registry.artifacts +SET +attributes = '{{ attributes }}', +bias = '{{ bias }}', +built_by = '{{ built_by }}', +description = '{{ description }}', +display_name = '{{ display_name }}', +explainability = '{{ explainability }}', +labels = '{{ labels }}', +labels_v2 = '{{ labels_v2 }}', +license_terms = '{{ license_terms }}', +logo = '{{ logo }}', +privacy = '{{ privacy }}', +publisher = '{{ publisher }}', +safety_and_security = '{{ safety_and_security }}', +short_description = '{{ short_description }}' +WHERE +artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +RETURNING +artifact, +request_status; +``` +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete_by_team" + values={[ + { label: 'delete_by_team', value: 'delete_by_team' }, + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete_by_team"> + +Delete artifact in team + +```sql +DELETE FROM nvidia.private_registry.artifacts +WHERE team_name = '{{ team_name }}' --required +AND artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +; +``` +</TabItem> +<TabItem value="delete"> + +Delete artifact in org + +```sql +DELETE FROM nvidia.private_registry.artifacts +WHERE artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +; +``` +</TabItem> +</Tabs> + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + +<Tabs + defaultValue="sync_release_type_labels_by_team" + values={[ + { label: 'sync_release_type_labels_by_team', value: 'sync_release_type_labels_by_team' }, + { label: 'set_release_type_by_team', value: 'set_release_type_by_team' }, + { label: 'set_terms_of_service_by_team', value: 'set_terms_of_service_by_team' }, + { label: 'sync_release_type_labels', value: 'sync_release_type_labels' }, + { label: 'set_release_type', value: 'set_release_type' }, + { label: 'set_terms_of_service', value: 'set_terms_of_service' }, + { label: 'malware_scan_by_team', value: 'malware_scan_by_team' }, + { label: 'purge_by_team', value: 'purge_by_team' }, + { label: 'malware_scan', value: 'malware_scan' }, + { label: 'purge', value: 'purge' } + ]} +> +<TabItem value="sync_release_type_labels_by_team"> + +Sync release type labels for all collections containing this artifact. Internal API for service-to-service communication. + +```sql +EXEC nvidia.private_registry.artifacts.sync_release_type_labels_by_team +@team_name='{{ team_name }}' --required, +@artifact_type='{{ artifact_type }}' --required, +@artifact_name='{{ artifact_name }}' --required +; +``` +</TabItem> +<TabItem value="set_release_type_by_team"> + +Updates the release type (for example GA, EA, beta) of an artifact version within the specified organization and optional team. + +```sql +EXEC nvidia.private_registry.artifacts.set_release_type_by_team +@team_name='{{ team_name }}' --required, +@artifact_type='{{ artifact_type }}' --required, +@artifact_name='{{ artifact_name }}' --required +@@json= +'{ +"releaseType": "{{ releaseType }}", +"version": "{{ version }}" +}' +; +``` +</TabItem> +<TabItem value="set_terms_of_service_by_team"> + +Update artifact terms of service + +```sql +EXEC nvidia.private_registry.artifacts.set_terms_of_service_by_team +@team_name='{{ team_name }}' --required, +@artifact_type='{{ artifact_type }}' --required, +@artifact_name='{{ artifact_name }}' --required +@@json= +'{ +"accessType": "{{ accessType }}", +"canGuestPull": {{ canGuestPull }}, +"canPublicList": {{ canPublicList }}, +"isPublic": {{ isPublic }}, +"licenseTerms": "{{ licenseTerms }}", +"productNames": "{{ productNames }}" +}' +; +``` +</TabItem> +<TabItem value="sync_release_type_labels"> + +Sync release type labels for all collections containing this artifact. Internal API for service-to-service communication. + +```sql +EXEC nvidia.private_registry.artifacts.sync_release_type_labels +@artifact_type='{{ artifact_type }}' --required, +@artifact_name='{{ artifact_name }}' --required +; +``` +</TabItem> +<TabItem value="set_release_type"> + +Updates the release type (for example GA, EA, beta) of an artifact version within the specified organization and optional team. + +```sql +EXEC nvidia.private_registry.artifacts.set_release_type +@artifact_type='{{ artifact_type }}' --required, +@artifact_name='{{ artifact_name }}' --required +@@json= +'{ +"releaseType": "{{ releaseType }}", +"version": "{{ version }}" +}' +; +``` +</TabItem> +<TabItem value="set_terms_of_service"> + +Update artifact terms of service + +```sql +EXEC nvidia.private_registry.artifacts.set_terms_of_service +@artifact_type='{{ artifact_type }}' --required, +@artifact_name='{{ artifact_name }}' --required +@@json= +'{ +"accessType": "{{ accessType }}", +"canGuestPull": {{ canGuestPull }}, +"canPublicList": {{ canPublicList }}, +"isPublic": {{ isPublic }}, +"licenseTerms": "{{ licenseTerms }}", +"productNames": "{{ productNames }}" +}' +; +``` +</TabItem> +<TabItem value="malware_scan_by_team"> + +Initiates malwares can for the artifact + +```sql +EXEC nvidia.private_registry.artifacts.malware_scan_by_team +@team_name='{{ team_name }}' --required, +@artifact_type='{{ artifact_type }}' --required, +@artifact_name='{{ artifact_name }}' --required, +@version_id='{{ version_id }}' --required, +@contact-email='{{ contact_email }}', +@nspect-id='{{ nspect_id }}' +; +``` +</TabItem> +<TabItem value="purge_by_team"> + +Purge Search DB for deleted artifacts + +```sql +EXEC nvidia.private_registry.artifacts.purge_by_team +@team_name='{{ team_name }}' --required, +@artifact_type='{{ artifact_type }}' --required, +@artifact_name='{{ artifact_name }}' --required +; +``` +</TabItem> +<TabItem value="malware_scan"> + +Initiates malwares can for the artifact + +```sql +EXEC nvidia.private_registry.artifacts.malware_scan +@artifact_type='{{ artifact_type }}' --required, +@artifact_name='{{ artifact_name }}' --required, +@version_id='{{ version_id }}' --required, +@contact-email='{{ contact_email }}', +@nspect-id='{{ nspect_id }}' +; +``` +</TabItem> +<TabItem value="purge"> + +Purge Search DB for deleted artifacts + +```sql +EXEC nvidia.private_registry.artifacts.purge +@artifact_type='{{ artifact_type }}' --required, +@artifact_name='{{ artifact_name }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/collection_artifacts/index.md b/website/docs/services/private_registry/collection_artifacts/index.md new file mode 100644 index 0000000..2e7204a --- /dev/null +++ b/website/docs/services/private_registry/collection_artifacts/index.md @@ -0,0 +1,1002 @@ +--- +title: collection_artifacts +hide_title: false +hide_table_of_contents: false +keywords: + - collection_artifacts + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>collection_artifacts</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="collection_artifacts" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.collection_artifacts" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="encryption_key_id" /></td> + <td><code>string</code></td> + <td>ID of the customer managed encryption key associated with this artifact (wire: encryptionKeyId)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the helm chart belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the helm chart belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string</code></td> + <td>Artifact type (MODEL, MODEL_SCRIPT, HELM_CHART, REPOSITORY, COLLECTION, ENDPOINT, BLUEPRINT, PLAYBOOK, AGENT, API, SKILL) (wire: artifactType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="bias" /></td> + <td><code>string</code></td> + <td>Text describing bias in the artifact</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the helm chart (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="explainability" /></td> + <td><code>string</code></td> + <td>Text describing the explainability for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the artifact has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if helm chart is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this helm chart is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="privacy" /></td> + <td><code>string</code></td> + <td>Text describing the privacy for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this helm chart</td> +</tr> +<tr> + <td><CopyableCode code="safety_and_security" /></td> + <td><code>string</code></td> + <td>Text for describing the safety and security in the artifact (wire: safetyAndSecurity)</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the helm chart (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="encryption_key_id" /></td> + <td><code>string</code></td> + <td>ID of the customer managed encryption key associated with this artifact (wire: encryptionKeyId)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the helm chart belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the helm chart belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string</code></td> + <td>Artifact type (MODEL, MODEL_SCRIPT, HELM_CHART, REPOSITORY, COLLECTION, ENDPOINT, BLUEPRINT, PLAYBOOK, AGENT, API, SKILL) (wire: artifactType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="bias" /></td> + <td><code>string</code></td> + <td>Text describing bias in the artifact</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the helm chart (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the helm chart</td> +</tr> +<tr> + <td><CopyableCode code="explainability" /></td> + <td><code>string</code></td> + <td>Text describing the explainability for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the artifact has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if helm chart is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this helm chart is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="privacy" /></td> + <td><code>string</code></td> + <td>Text describing the privacy for this artifact</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this helm chart</td> +</tr> +<tr> + <td><CopyableCode code="safety_and_security" /></td> + <td><code>string</code></td> + <td>Text for describing the safety and security in the artifact (wire: safetyAndSecurity)</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the helm chart (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-collection_name"><code>collection_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-order_by"><code>order_by</code></a>, <a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>List collection artifacts the user can access in the specified org and team</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-collection_name"><code>collection_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-order_by"><code>order_by</code></a>, <a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>List collection artifacts the user can access in the specified org</td> +</tr> +<tr> + <td><a href="#add_cross_org_team_by_team"><CopyableCode code="add_cross_org_team_by_team" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-collection_name"><code>collection_name</code></a>, <a href="#parameter-artifact_org_name"><code>artifact_org_name</code></a>, <a href="#parameter-artifact_team_name"><code>artifact_team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Add artifact to the specified collection in the specified org and team from another org and team</td> +</tr> +<tr> + <td><a href="#add_cross_org_team"><CopyableCode code="add_cross_org_team" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-collection_name"><code>collection_name</code></a>, <a href="#parameter-artifact_org_name"><code>artifact_org_name</code></a>, <a href="#parameter-artifact_team_name"><code>artifact_team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Add artifact to the specified collection in the specified org from another org and team</td> +</tr> +<tr> + <td><a href="#add_cross_org_by_team"><CopyableCode code="add_cross_org_by_team" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-collection_name"><code>collection_name</code></a>, <a href="#parameter-artifact_org_name"><code>artifact_org_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Add artifact to the specified collection in the specified org and team from another org</td> +</tr> +<tr> + <td><a href="#add_cross_org"><CopyableCode code="add_cross_org" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-collection_name"><code>collection_name</code></a>, <a href="#parameter-artifact_org_name"><code>artifact_org_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Add artifact to the specified collection in the specified org from another org</td> +</tr> +<tr> + <td><a href="#add_by_team"><CopyableCode code="add_by_team" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-collection_name"><code>collection_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Add artifact to the specified collection in the specified org and team</td> +</tr> +<tr> + <td><a href="#add"><CopyableCode code="add" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-collection_name"><code>collection_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Add artifact to the specified collection in the specified org</td> +</tr> +<tr> + <td><a href="#update_bulk_by_team"><CopyableCode code="update_bulk_by_team" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-collection_name"><code>collection_name</code></a></td> + <td></td> + <td>Patch collection in the specified org and team</td> +</tr> +<tr> + <td><a href="#update_bulk"><CopyableCode code="update_bulk" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-collection_name"><code>collection_name</code></a></td> + <td></td> + <td>Patch collection in the specified org</td> +</tr> +<tr> + <td><a href="#remove_cross_org_team_by_team"><CopyableCode code="remove_cross_org_team_by_team" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-collection_name"><code>collection_name</code></a>, <a href="#parameter-artifact_org_name"><code>artifact_org_name</code></a>, <a href="#parameter-artifact_team_name"><code>artifact_team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Remove artifact from the specified collection in the specified org and team from another org and team</td> +</tr> +<tr> + <td><a href="#remove_cross_org_team"><CopyableCode code="remove_cross_org_team" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-collection_name"><code>collection_name</code></a>, <a href="#parameter-artifact_org_name"><code>artifact_org_name</code></a>, <a href="#parameter-artifact_team_name"><code>artifact_team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Remove artifact from the specified collection in the specified org from another org</td> +</tr> +<tr> + <td><a href="#remove_cross_org_by_team"><CopyableCode code="remove_cross_org_by_team" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-collection_name"><code>collection_name</code></a>, <a href="#parameter-artifact_org_name"><code>artifact_org_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Remove artifact from the specified collection in the specified org and team from another org</td> +</tr> +<tr> + <td><a href="#remove_cross_org"><CopyableCode code="remove_cross_org" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-collection_name"><code>collection_name</code></a>, <a href="#parameter-artifact_org_name"><code>artifact_org_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Remove artifact from the specified collection in the specified org from another org</td> +</tr> +<tr> + <td><a href="#remove_by_team"><CopyableCode code="remove_by_team" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-collection_name"><code>collection_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Remove artifact from the specified collection in the specified org and team</td> +</tr> +<tr> + <td><a href="#remove"><CopyableCode code="remove" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-collection_name"><code>collection_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td></td> + <td>Remove artifact from the specified collection in the specified org</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact name</td> +</tr> +<tr id="parameter-artifact_org_name"> + <td><CopyableCode code="artifact_org_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact organization name</td> +</tr> +<tr id="parameter-artifact_team_name"> + <td><CopyableCode code="artifact_team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact team name</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type</td> +</tr> +<tr id="parameter-collection_name"> + <td><CopyableCode code="collection_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Collection name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-order_by"> + <td><CopyableCode code="order_by" /></td> + <td><code>string (UTF-8)</code></td> + <td>Order by</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-remove_unresolved_labels"> + <td><CopyableCode code="remove_unresolved_labels" /></td> + <td><code>boolean</code></td> + <td>Remove unresolved labels</td> +</tr> +<tr id="parameter-resolve_labels"> + <td><CopyableCode code="resolve_labels" /></td> + <td><code>boolean</code></td> + <td>Resolve labels</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +List collection artifacts the user can access in the specified org and team + +```sql +SELECT +name, +encryption_key_id, +latest_version_id, +display_name, +org_name, +owner_name, +team_name, +access_type, +artifact_type, +attributes, +bias, +built_by, +can_guest_download, +created_date, +description, +explainability, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_size_in_bytes, +license_terms, +logo, +policy_labels, +privacy, +product_names, +publisher, +safety_and_security, +short_description, +updated_date +FROM nvidia.private_registry.collection_artifacts +WHERE team_name = '{{ team_name }}' -- required +AND collection_name = '{{ collection_name }}' -- required +AND artifact_type = '{{ artifact_type }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND order_by = '{{ order_by }}' +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="list"> + +List collection artifacts the user can access in the specified org + +```sql +SELECT +name, +encryption_key_id, +latest_version_id, +display_name, +org_name, +owner_name, +team_name, +access_type, +artifact_type, +attributes, +bias, +built_by, +can_guest_download, +created_date, +description, +explainability, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_size_in_bytes, +license_terms, +logo, +policy_labels, +privacy, +product_names, +publisher, +safety_and_security, +short_description, +updated_date +FROM nvidia.private_registry.collection_artifacts +WHERE collection_name = '{{ collection_name }}' -- required +AND artifact_type = '{{ artifact_type }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND order_by = '{{ order_by }}' +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="add_cross_org_team_by_team" + values={[ + { label: 'add_cross_org_team_by_team', value: 'add_cross_org_team_by_team' }, + { label: 'add_cross_org_team', value: 'add_cross_org_team' }, + { label: 'add_cross_org_by_team', value: 'add_cross_org_by_team' }, + { label: 'add_cross_org', value: 'add_cross_org' }, + { label: 'add_by_team', value: 'add_by_team' }, + { label: 'add', value: 'add' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="add_cross_org_team_by_team"> + +Add artifact to the specified collection in the specified org and team from another org and team + +```sql +INSERT INTO nvidia.private_registry.collection_artifacts ( +team_name, +collection_name, +artifact_org_name, +artifact_team_name, +artifact_type, +artifact_name +) +SELECT +'{{ team_name }}', +'{{ collection_name }}', +'{{ artifact_org_name }}', +'{{ artifact_team_name }}', +'{{ artifact_type }}', +'{{ artifact_name }}' +RETURNING +request_status +; +``` +</TabItem> +<TabItem value="add_cross_org_team"> + +Add artifact to the specified collection in the specified org from another org and team + +```sql +INSERT INTO nvidia.private_registry.collection_artifacts ( +collection_name, +artifact_org_name, +artifact_team_name, +artifact_type, +artifact_name +) +SELECT +'{{ collection_name }}', +'{{ artifact_org_name }}', +'{{ artifact_team_name }}', +'{{ artifact_type }}', +'{{ artifact_name }}' +RETURNING +request_status +; +``` +</TabItem> +<TabItem value="add_cross_org_by_team"> + +Add artifact to the specified collection in the specified org and team from another org + +```sql +INSERT INTO nvidia.private_registry.collection_artifacts ( +team_name, +collection_name, +artifact_org_name, +artifact_type, +artifact_name +) +SELECT +'{{ team_name }}', +'{{ collection_name }}', +'{{ artifact_org_name }}', +'{{ artifact_type }}', +'{{ artifact_name }}' +RETURNING +request_status +; +``` +</TabItem> +<TabItem value="add_cross_org"> + +Add artifact to the specified collection in the specified org from another org + +```sql +INSERT INTO nvidia.private_registry.collection_artifacts ( +collection_name, +artifact_org_name, +artifact_type, +artifact_name +) +SELECT +'{{ collection_name }}', +'{{ artifact_org_name }}', +'{{ artifact_type }}', +'{{ artifact_name }}' +RETURNING +request_status +; +``` +</TabItem> +<TabItem value="add_by_team"> + +Add artifact to the specified collection in the specified org and team + +```sql +INSERT INTO nvidia.private_registry.collection_artifacts ( +team_name, +collection_name, +artifact_type, +artifact_name +) +SELECT +'{{ team_name }}', +'{{ collection_name }}', +'{{ artifact_type }}', +'{{ artifact_name }}' +RETURNING +request_status +; +``` +</TabItem> +<TabItem value="add"> + +Add artifact to the specified collection in the specified org + +```sql +INSERT INTO nvidia.private_registry.collection_artifacts ( +collection_name, +artifact_type, +artifact_name +) +SELECT +'{{ collection_name }}', +'{{ artifact_type }}', +'{{ artifact_name }}' +RETURNING +request_status +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: collection_artifacts + props: + - name: team_name + value: "{{ team_name }}" + description: Required parameter for the collection_artifacts resource. + - name: collection_name + value: "{{ collection_name }}" + description: Required parameter for the collection_artifacts resource. + - name: artifact_org_name + value: "{{ artifact_org_name }}" + description: Required parameter for the collection_artifacts resource. + - name: artifact_team_name + value: "{{ artifact_team_name }}" + description: Required parameter for the collection_artifacts resource. + - name: artifact_type + value: "{{ artifact_type }}" + description: Required parameter for the collection_artifacts resource. + - name: artifact_name + value: "{{ artifact_name }}" + description: Required parameter for the collection_artifacts resource. +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update_bulk_by_team" + values={[ + { label: 'update_bulk_by_team', value: 'update_bulk_by_team' }, + { label: 'update_bulk', value: 'update_bulk' } + ]} +> +<TabItem value="update_bulk_by_team"> + +Patch collection in the specified org and team + +```sql +UPDATE nvidia.private_registry.collection_artifacts +SET +operations = '{{ operations }}' +WHERE +team_name = '{{ team_name }}' --required +AND collection_name = '{{ collection_name }}' --required +RETURNING +request_status; +``` +</TabItem> +<TabItem value="update_bulk"> + +Patch collection in the specified org + +```sql +UPDATE nvidia.private_registry.collection_artifacts +SET +operations = '{{ operations }}' +WHERE +collection_name = '{{ collection_name }}' --required +RETURNING +request_status; +``` +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="remove_cross_org_team_by_team" + values={[ + { label: 'remove_cross_org_team_by_team', value: 'remove_cross_org_team_by_team' }, + { label: 'remove_cross_org_team', value: 'remove_cross_org_team' }, + { label: 'remove_cross_org_by_team', value: 'remove_cross_org_by_team' }, + { label: 'remove_cross_org', value: 'remove_cross_org' }, + { label: 'remove_by_team', value: 'remove_by_team' }, + { label: 'remove', value: 'remove' } + ]} +> +<TabItem value="remove_cross_org_team_by_team"> + +Remove artifact from the specified collection in the specified org and team from another org and team + +```sql +DELETE FROM nvidia.private_registry.collection_artifacts +WHERE team_name = '{{ team_name }}' --required +AND collection_name = '{{ collection_name }}' --required +AND artifact_org_name = '{{ artifact_org_name }}' --required +AND artifact_team_name = '{{ artifact_team_name }}' --required +AND artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +; +``` +</TabItem> +<TabItem value="remove_cross_org_team"> + +Remove artifact from the specified collection in the specified org from another org + +```sql +DELETE FROM nvidia.private_registry.collection_artifacts +WHERE collection_name = '{{ collection_name }}' --required +AND artifact_org_name = '{{ artifact_org_name }}' --required +AND artifact_team_name = '{{ artifact_team_name }}' --required +AND artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +; +``` +</TabItem> +<TabItem value="remove_cross_org_by_team"> + +Remove artifact from the specified collection in the specified org and team from another org + +```sql +DELETE FROM nvidia.private_registry.collection_artifacts +WHERE team_name = '{{ team_name }}' --required +AND collection_name = '{{ collection_name }}' --required +AND artifact_org_name = '{{ artifact_org_name }}' --required +AND artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +; +``` +</TabItem> +<TabItem value="remove_cross_org"> + +Remove artifact from the specified collection in the specified org from another org + +```sql +DELETE FROM nvidia.private_registry.collection_artifacts +WHERE collection_name = '{{ collection_name }}' --required +AND artifact_org_name = '{{ artifact_org_name }}' --required +AND artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +; +``` +</TabItem> +<TabItem value="remove_by_team"> + +Remove artifact from the specified collection in the specified org and team + +```sql +DELETE FROM nvidia.private_registry.collection_artifacts +WHERE team_name = '{{ team_name }}' --required +AND collection_name = '{{ collection_name }}' --required +AND artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +; +``` +</TabItem> +<TabItem value="remove"> + +Remove artifact from the specified collection in the specified org + +```sql +DELETE FROM nvidia.private_registry.collection_artifacts +WHERE collection_name = '{{ collection_name }}' --required +AND artifact_type = '{{ artifact_type }}' --required +AND artifact_name = '{{ artifact_name }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/collection_product_shares/index.md b/website/docs/services/private_registry/collection_product_shares/index.md new file mode 100644 index 0000000..e80e4f4 --- /dev/null +++ b/website/docs/services/private_registry/collection_product_shares/index.md @@ -0,0 +1,184 @@ +--- +title: collection_product_shares +hide_title: false +hide_table_of_contents: false +keywords: + - collection_product_shares + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>collection_product_shares</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="collection_product_shares" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.collection_product_shares" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#add_by_team"><CopyableCode code="add_by_team" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-collection_name"><code>collection_name</code></a></td> + <td></td> + <td>Publish collection to product</td> +</tr> +<tr> + <td><a href="#add"><CopyableCode code="add" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-collection_name"><code>collection_name</code></a></td> + <td></td> + <td>Publish collection to product</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-collection_name"> + <td><CopyableCode code="collection_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Collection name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +</tbody> +</table> + +## `INSERT` examples + +<Tabs + defaultValue="add_by_team" + values={[ + { label: 'add_by_team', value: 'add_by_team' }, + { label: 'add', value: 'add' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="add_by_team"> + +Publish collection to product + +```sql +INSERT INTO nvidia.private_registry.collection_product_shares ( +access_type, +can_guest_pull, +can_public_list, +is_public, +product_names, +team_name, +collection_name +) +SELECT +'{{ access_type }}', +{{ can_guest_pull }}, +{{ can_public_list }}, +{{ is_public }}, +'{{ product_names }}', +'{{ team_name }}', +'{{ collection_name }}' +RETURNING +request_status +; +``` +</TabItem> +<TabItem value="add"> + +Publish collection to product + +```sql +INSERT INTO nvidia.private_registry.collection_product_shares ( +access_type, +can_guest_pull, +can_public_list, +is_public, +product_names, +collection_name +) +SELECT +'{{ access_type }}', +{{ can_guest_pull }}, +{{ can_public_list }}, +{{ is_public }}, +'{{ product_names }}', +'{{ collection_name }}' +RETURNING +request_status +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: collection_product_shares + props: + - name: team_name + value: "{{ team_name }}" + description: Required parameter for the collection_product_shares resource. + - name: collection_name + value: "{{ collection_name }}" + description: Required parameter for the collection_product_shares resource. + - name: access_type + value: "{{ access_type }}" + valid_values: ['LISTED', 'EXCLUSIVE', 'NOT_LISTED'] + - name: can_guest_pull + value: {{ can_guest_pull }} + - name: can_public_list + value: {{ can_public_list }} + - name: is_public + value: {{ is_public }} + - name: product_names + value: + - "{{ product_names }}" +`}</CodeBlock> + +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/collections/index.md b/website/docs/services/private_registry/collections/index.md new file mode 100644 index 0000000..508c931 --- /dev/null +++ b/website/docs/services/private_registry/collections/index.md @@ -0,0 +1,1079 @@ +--- +title: collections +hide_title: false +hide_table_of_contents: false +keywords: + - collections + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>collections</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="collections" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.collections" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the collection</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the collection belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the collection belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the collection (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="category" /></td> + <td><code>string</code></td> + <td> (HEALTHCARE, SMART_CITIES, RETAIL, MANUFACTURING, SUPERCOMPUTING, ROBOTICS, AUTOMOTIVE, TELECOMMUNICATIONS, FINANCE, OIL_AND_GAS, NATURAL_LANGUAGE_PROCESSING, AUTOMATIC_SPEECH_RECOGNITION, INTELLIGENT_VIDEO_ANALYTICS, OBJECT_DETECTION, IMAGE_CLASSIFICATION, ANNOTATION, IMAGE_SYNTHESIS, MACHINE_LEARNING, DEEP_LEARNING, INFRASTRUCTURE, HIGH_PERFORMANCE_COMPUTING, WINDOWS_RTX_ACCELERATED_MODELS, BEGINNER, ADVANCED)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the collection</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this collection is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this collection</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the collection (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="size" /></td> + <td><code>integer (int64)</code></td> + <td>Total count of collection items</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the collection</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the collection belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the collection belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the collection (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="category" /></td> + <td><code>string</code></td> + <td> (HEALTHCARE, SMART_CITIES, RETAIL, MANUFACTURING, SUPERCOMPUTING, ROBOTICS, AUTOMOTIVE, TELECOMMUNICATIONS, FINANCE, OIL_AND_GAS, NATURAL_LANGUAGE_PROCESSING, AUTOMATIC_SPEECH_RECOGNITION, INTELLIGENT_VIDEO_ANALYTICS, OBJECT_DETECTION, IMAGE_CLASSIFICATION, ANNOTATION, IMAGE_SYNTHESIS, MACHINE_LEARNING, DEEP_LEARNING, INFRASTRUCTURE, HIGH_PERFORMANCE_COMPUTING, WINDOWS_RTX_ACCELERATED_MODELS, BEGINNER, ADVANCED)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the collection</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this collection is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this collection</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the collection (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="size" /></td> + <td><code>integer (int64)</code></td> + <td>Total count of collection items</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the collection</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the collection belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the collection belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the collection (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="category" /></td> + <td><code>string</code></td> + <td> (HEALTHCARE, SMART_CITIES, RETAIL, MANUFACTURING, SUPERCOMPUTING, ROBOTICS, AUTOMOTIVE, TELECOMMUNICATIONS, FINANCE, OIL_AND_GAS, NATURAL_LANGUAGE_PROCESSING, AUTOMATIC_SPEECH_RECOGNITION, INTELLIGENT_VIDEO_ANALYTICS, OBJECT_DETECTION, IMAGE_CLASSIFICATION, ANNOTATION, IMAGE_SYNTHESIS, MACHINE_LEARNING, DEEP_LEARNING, INFRASTRUCTURE, HIGH_PERFORMANCE_COMPUTING, WINDOWS_RTX_ACCELERATED_MODELS, BEGINNER, ADVANCED)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the collection</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this collection is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this collection</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the collection (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="size" /></td> + <td><code>integer (int64)</code></td> + <td>Total count of collection items</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the collection</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the collection belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the collection belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the collection (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="category" /></td> + <td><code>string</code></td> + <td> (HEALTHCARE, SMART_CITIES, RETAIL, MANUFACTURING, SUPERCOMPUTING, ROBOTICS, AUTOMOTIVE, TELECOMMUNICATIONS, FINANCE, OIL_AND_GAS, NATURAL_LANGUAGE_PROCESSING, AUTOMATIC_SPEECH_RECOGNITION, INTELLIGENT_VIDEO_ANALYTICS, OBJECT_DETECTION, IMAGE_CLASSIFICATION, ANNOTATION, IMAGE_SYNTHESIS, MACHINE_LEARNING, DEEP_LEARNING, INFRASTRUCTURE, HIGH_PERFORMANCE_COMPUTING, WINDOWS_RTX_ACCELERATED_MODELS, BEGINNER, ADVANCED)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the collection</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this collection is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this collection</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the collection (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="size" /></td> + <td><code>integer (int64)</code></td> + <td>Total count of collection items</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-collection_name"><code>collection_name</code></a></td> + <td><a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>Get collection details in team</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-collection_name"><code>collection_name</code></a></td> + <td><a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>Get collection details in org</td> +</tr> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-order_by"><code>order_by</code></a>, <a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>List collections the user can access in the specified org and team</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-order_by"><code>order_by</code></a></td> + <td>List collections the user can access in the specified org</td> +</tr> +<tr> + <td><a href="#create_by_team"><CopyableCode code="create_by_team" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-category"><code>category</code></a>, <a href="#parameter-name"><code>name</code></a>, <a href="#parameter-short_description"><code>short_description</code></a></td> + <td></td> + <td>Create collection in org and team</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-category"><code>category</code></a>, <a href="#parameter-name"><code>name</code></a>, <a href="#parameter-short_description"><code>short_description</code></a></td> + <td></td> + <td>Create collection in org</td> +</tr> +<tr> + <td><a href="#update_by_team"><CopyableCode code="update_by_team" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-collection_name"><code>collection_name</code></a></td> + <td></td> + <td>Update collection details in team</td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-collection_name"><code>collection_name</code></a></td> + <td></td> + <td>Update collection details in org</td> +</tr> +<tr> + <td><a href="#delete_by_team"><CopyableCode code="delete_by_team" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-collection_name"><code>collection_name</code></a></td> + <td></td> + <td>Delete collection in the specified org and team</td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-collection_name"><code>collection_name</code></a></td> + <td></td> + <td>Delete collection in the specified org</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-collection_name"> + <td><CopyableCode code="collection_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Collection name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-order_by"> + <td><CopyableCode code="order_by" /></td> + <td><code>string (UTF-8)</code></td> + <td>Order by</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-remove_unresolved_labels"> + <td><CopyableCode code="remove_unresolved_labels" /></td> + <td><code>boolean</code></td> + <td>Remove unresolved labels</td> +</tr> +<tr id="parameter-resolve_labels"> + <td><CopyableCode code="resolve_labels" /></td> + <td><code>boolean</code></td> + <td>Resolve labels</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +Get collection details in team + +```sql +SELECT +name, +display_name, +org_name, +owner_name, +team_name, +access_type, +attributes, +built_by, +can_guest_download, +category, +created_date, +description, +is_public, +is_read_only, +labels, +logo, +policy_labels, +product_names, +publisher, +short_description, +size, +updated_date +FROM nvidia.private_registry.collections +WHERE team_name = '{{ team_name }}' -- required +AND collection_name = '{{ collection_name }}' -- required +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="get"> + +Get collection details in org + +```sql +SELECT +name, +display_name, +org_name, +owner_name, +team_name, +access_type, +attributes, +built_by, +can_guest_download, +category, +created_date, +description, +is_public, +is_read_only, +labels, +logo, +policy_labels, +product_names, +publisher, +short_description, +size, +updated_date +FROM nvidia.private_registry.collections +WHERE collection_name = '{{ collection_name }}' -- required +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="list_by_team"> + +List collections the user can access in the specified org and team + +```sql +SELECT +name, +display_name, +org_name, +owner_name, +team_name, +access_type, +attributes, +built_by, +can_guest_download, +category, +created_date, +description, +is_public, +is_read_only, +labels, +logo, +policy_labels, +product_names, +publisher, +short_description, +size, +updated_date +FROM nvidia.private_registry.collections +WHERE team_name = '{{ team_name }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND order_by = '{{ order_by }}' +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="list"> + +List collections the user can access in the specified org + +```sql +SELECT +name, +display_name, +org_name, +owner_name, +team_name, +access_type, +attributes, +built_by, +can_guest_download, +category, +created_date, +description, +is_public, +is_read_only, +labels, +logo, +policy_labels, +product_names, +publisher, +short_description, +size, +updated_date +FROM nvidia.private_registry.collections +WHERE page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND order_by = '{{ order_by }}' +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create_by_team" + values={[ + { label: 'create_by_team', value: 'create_by_team' }, + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create_by_team"> + +Create collection in org and team + +```sql +INSERT INTO nvidia.private_registry.collections ( +attributes, +built_by, +category, +description, +display_name, +labels, +labels_v2, +logo, +name, +owner_name, +publisher, +short_description, +team_name +) +SELECT +'{{ attributes }}', +'{{ built_by }}', +'{{ category }}' /* required */, +'{{ description }}', +'{{ display_name }}', +'{{ labels }}', +'{{ labels_v2 }}', +'{{ logo }}', +'{{ name }}' /* required */, +'{{ owner_name }}', +'{{ publisher }}', +'{{ short_description }}' /* required */, +'{{ team_name }}' +RETURNING +collection, +request_status +; +``` +</TabItem> +<TabItem value="create"> + +Create collection in org + +```sql +INSERT INTO nvidia.private_registry.collections ( +attributes, +built_by, +category, +description, +display_name, +labels, +labels_v2, +logo, +name, +owner_name, +publisher, +short_description +) +SELECT +'{{ attributes }}', +'{{ built_by }}', +'{{ category }}' /* required */, +'{{ description }}', +'{{ display_name }}', +'{{ labels }}', +'{{ labels_v2 }}', +'{{ logo }}', +'{{ name }}' /* required */, +'{{ owner_name }}', +'{{ publisher }}', +'{{ short_description }}' /* required */ +RETURNING +collection, +request_status +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: collections + props: + - name: team_name + value: "{{ team_name }}" + description: Required parameter for the collections resource. + - name: attributes + value: + - key: "{{ key }}" + value: "{{ value }}" + - name: built_by + value: "{{ built_by }}" + description: | + organization that built the collection + - name: category + value: "{{ category }}" + valid_values: ['HEALTHCARE', 'SMART_CITIES', 'RETAIL', 'MANUFACTURING', 'SUPERCOMPUTING', 'ROBOTICS', 'AUTOMOTIVE', 'TELECOMMUNICATIONS', 'FINANCE', 'OIL_AND_GAS', 'NATURAL_LANGUAGE_PROCESSING', 'AUTOMATIC_SPEECH_RECOGNITION', 'INTELLIGENT_VIDEO_ANALYTICS', 'OBJECT_DETECTION', 'IMAGE_CLASSIFICATION', 'ANNOTATION', 'IMAGE_SYNTHESIS', 'MACHINE_LEARNING', 'DEEP_LEARNING', 'INFRASTRUCTURE', 'HIGH_PERFORMANCE_COMPUTING', 'WINDOWS_RTX_ACCELERATED_MODELS', 'BEGINNER', 'ADVANCED'] + - name: description + value: "{{ description }}" + description: | + Description of the collection + - name: display_name + value: "{{ display_name }}" + description: | + Display name + - name: labels + value: + - "{{ labels }}" + - name: labels_v2 + value: + - "{{ labels_v2 }}" + - name: logo + value: "{{ logo }}" + description: | + URL for the logo image + - name: name + value: "{{ name }}" + description: | + Unique name of the collection + - name: owner_name + value: "{{ owner_name }}" + description: | + Name of the user who owns this collection + - name: publisher + value: "{{ publisher }}" + description: | + organization that published the collection + - name: short_description + value: "{{ short_description }}" + description: | + Short description of the collection +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update_by_team" + values={[ + { label: 'update_by_team', value: 'update_by_team' }, + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update_by_team"> + +Update collection details in team + +```sql +UPDATE nvidia.private_registry.collections +SET +attributes = '{{ attributes }}', +built_by = '{{ built_by }}', +category = '{{ category }}', +description = '{{ description }}', +display_name = '{{ display_name }}', +labels = '{{ labels }}', +labels_v2 = '{{ labels_v2 }}', +logo = '{{ logo }}', +owner_name = '{{ owner_name }}', +publisher = '{{ publisher }}', +short_description = '{{ short_description }}' +WHERE +team_name = '{{ team_name }}' --required +AND collection_name = '{{ collection_name }}' --required +RETURNING +collection, +request_status; +``` +</TabItem> +<TabItem value="update"> + +Update collection details in org + +```sql +UPDATE nvidia.private_registry.collections +SET +attributes = '{{ attributes }}', +built_by = '{{ built_by }}', +category = '{{ category }}', +description = '{{ description }}', +display_name = '{{ display_name }}', +labels = '{{ labels }}', +labels_v2 = '{{ labels_v2 }}', +logo = '{{ logo }}', +owner_name = '{{ owner_name }}', +publisher = '{{ publisher }}', +short_description = '{{ short_description }}' +WHERE +collection_name = '{{ collection_name }}' --required +RETURNING +collection, +request_status; +``` +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete_by_team" + values={[ + { label: 'delete_by_team', value: 'delete_by_team' }, + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete_by_team"> + +Delete collection in the specified org and team + +```sql +DELETE FROM nvidia.private_registry.collections +WHERE team_name = '{{ team_name }}' --required +AND collection_name = '{{ collection_name }}' --required +; +``` +</TabItem> +<TabItem value="delete"> + +Delete collection in the specified org + +```sql +DELETE FROM nvidia.private_registry.collections +WHERE collection_name = '{{ collection_name }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/encryption_keys/index.md b/website/docs/services/private_registry/encryption_keys/index.md new file mode 100644 index 0000000..94acc18 --- /dev/null +++ b/website/docs/services/private_registry/encryption_keys/index.md @@ -0,0 +1,372 @@ +--- +title: encryption_keys +hide_title: false +hide_table_of_contents: false +keywords: + - encryption_keys + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an <code>encryption_keys</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="encryption_keys" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.encryption_keys" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Name of the artifact</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name of the artifact (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string</code></td> + <td>Artifact type (MODEL, MODEL_SCRIPT, HELM_CHART, REPOSITORY, COLLECTION, ENDPOINT, BLUEPRINT, PLAYBOOK, AGENT, API, SKILL) (wire: artifactType)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the artifact</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Name of the artifact</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name of the artifact (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string</code></td> + <td>Artifact type (MODEL, MODEL_SCRIPT, HELM_CHART, REPOSITORY, COLLECTION, ENDPOINT, BLUEPRINT, PLAYBOOK, AGENT, API, SKILL) (wire: artifactType)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the artifact</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="encryption_key_id" /></td> + <td><code>string (regex)</code></td> + <td>The encryption key identifier in UUID format. (example: 196afcf4-d6c8-4116-aa25-34a718a14f43, pattern: <code>^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$</code>) (wire: encryptionKeyId)</td> +</tr> +<tr> + <td><CopyableCode code="created" /></td> + <td><code>string (regex)</code></td> + <td>The creation timestamp of the key item in ISO-8601 format. Format: YYYY-MM-DDTHH:mm:ss.sssZ. (example: 2025-04-19T22:30:00.123Z, pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the encryption key</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="encryption_key_id" /></td> + <td><code>string (regex)</code></td> + <td>The encryption key identifier in UUID format. (example: 196afcf4-d6c8-4116-aa25-34a718a14f43, pattern: <code>^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$</code>) (wire: encryptionKeyId)</td> +</tr> +<tr> + <td><CopyableCode code="created" /></td> + <td><code>string (regex)</code></td> + <td>The creation timestamp of the key item in ISO-8601 format. Format: YYYY-MM-DDTHH:mm:ss.sssZ. (example: 2025-04-19T22:30:00.123Z, pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the encryption key</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-key_id"><code>key_id</code></a></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a></td> + <td>List artifacts for encryption key in org/team</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-key_id"><code>key_id</code></a></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a></td> + <td>List artifacts for encryption key in org</td> +</tr> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a></td> + <td></td> + <td>List encryption keys in org/team</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td></td> + <td>List encryption keys in org</td> +</tr> +<tr> + <td><a href="#delete_by_team"><CopyableCode code="delete_by_team" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-key_id"><code>key_id</code></a></td> + <td></td> + <td>Revoke encryption key and disassociate from all artifacts in org/team</td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-key_id"><code>key_id</code></a></td> + <td></td> + <td>Revoke encryption key and disassociate from all artifacts in org</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-key_id"> + <td><CopyableCode code="key_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Key ID</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type (wire: artifactType)</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +List artifacts for encryption key in org/team + +```sql +SELECT +name, +display_name, +artifact_type, +description +FROM nvidia.private_registry.encryption_keys +WHERE team_name = '{{ team_name }}' -- required +AND key_id = '{{ key_id }}' -- required +AND artifact_type = '{{ artifact_type }}' +; +``` +</TabItem> +<TabItem value="get"> + +List artifacts for encryption key in org + +```sql +SELECT +name, +display_name, +artifact_type, +description +FROM nvidia.private_registry.encryption_keys +WHERE key_id = '{{ key_id }}' -- required +AND artifact_type = '{{ artifact_type }}' +; +``` +</TabItem> +<TabItem value="list_by_team"> + +List encryption keys in org/team + +```sql +SELECT +encryption_key_id, +created, +description +FROM nvidia.private_registry.encryption_keys +WHERE team_name = '{{ team_name }}' -- required +; +``` +</TabItem> +<TabItem value="list"> + +List encryption keys in org + +```sql +SELECT +encryption_key_id, +created, +description +FROM nvidia.private_registry.encryption_keys +; +``` +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete_by_team" + values={[ + { label: 'delete_by_team', value: 'delete_by_team' }, + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete_by_team"> + +Revoke encryption key and disassociate from all artifacts in org/team + +```sql +DELETE FROM nvidia.private_registry.encryption_keys +WHERE team_name = '{{ team_name }}' --required +AND key_id = '{{ key_id }}' --required +; +``` +</TabItem> +<TabItem value="delete"> + +Revoke encryption key and disassociate from all artifacts in org + +```sql +DELETE FROM nvidia.private_registry.encryption_keys +WHERE key_id = '{{ key_id }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/helm_chart_versions/index.md b/website/docs/services/private_registry/helm_chart_versions/index.md new file mode 100644 index 0000000..d604920 --- /dev/null +++ b/website/docs/services/private_registry/helm_chart_versions/index.md @@ -0,0 +1,715 @@ +--- +title: helm_chart_versions +hide_title: false +hide_table_of_contents: false +keywords: + - helm_chart_versions + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>helm_chart_versions</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="helm_chart_versions" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.helm_chart_versions" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>string</code></td> + <td>Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this version (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the version</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the version in bytes (wire: totalSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>string</code></td> + <td>Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this version (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the version</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the version in bytes (wire: totalSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>string</code></td> + <td>Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this version (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the version</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the version in bytes (wire: totalSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>string</code></td> + <td>Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="attributes" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this version (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the version</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the version in bytes (wire: totalSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Get chart version in team</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Get chart version in org</td> +</tr> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-sort_order"><code>sort_order</code></a>, <a href="#parameter-release_type"><code>release_type</code></a></td> + <td>List chart versions in team</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-artifact_name"><code>artifact_name</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-sort_order"><code>sort_order</code></a>, <a href="#parameter-release_type"><code>release_type</code></a></td> + <td>List chart versions in org</td> +</tr> +<tr> + <td><a href="#update_by_team"><CopyableCode code="update_by_team" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Update chart version information in team e.g. upload status</td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Update chart version information in org e.g. upload status</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-release_type"> + <td><CopyableCode code="release_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Release Type</td> +</tr> +<tr id="parameter-sort_order"> + <td><CopyableCode code="sort_order" /></td> + <td><code>string (UTF-8)</code></td> + <td>Sort order</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +Get chart version in team + +```sql +SELECT +id, +attributes, +created_by_user, +created_date, +custom_metrics, +description, +is_signed, +malware_scan_date, +malware_scan_status, +policy, +release_type, +status, +storage_version, +total_file_count, +total_size_in_bytes, +updated_date +FROM nvidia.private_registry.helm_chart_versions +WHERE team_name = '{{ team_name }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND version_id = '{{ version_id }}' -- required +; +``` +</TabItem> +<TabItem value="get"> + +Get chart version in org + +```sql +SELECT +id, +attributes, +created_by_user, +created_date, +custom_metrics, +description, +is_signed, +malware_scan_date, +malware_scan_status, +policy, +release_type, +status, +storage_version, +total_file_count, +total_size_in_bytes, +updated_date +FROM nvidia.private_registry.helm_chart_versions +WHERE artifact_name = '{{ artifact_name }}' -- required +AND version_id = '{{ version_id }}' -- required +; +``` +</TabItem> +<TabItem value="list_by_team"> + +List chart versions in team + +```sql +SELECT +id, +attributes, +created_by_user, +created_date, +custom_metrics, +description, +is_signed, +malware_scan_date, +malware_scan_status, +policy, +release_type, +status, +storage_version, +total_file_count, +total_size_in_bytes, +updated_date +FROM nvidia.private_registry.helm_chart_versions +WHERE team_name = '{{ team_name }}' -- required +AND artifact_name = '{{ artifact_name }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND sort_order = '{{ sort_order }}' +AND release_type = '{{ release_type }}' +; +``` +</TabItem> +<TabItem value="list"> + +List chart versions in org + +```sql +SELECT +id, +attributes, +created_by_user, +created_date, +custom_metrics, +description, +is_signed, +malware_scan_date, +malware_scan_status, +policy, +release_type, +status, +storage_version, +total_file_count, +total_size_in_bytes, +updated_date +FROM nvidia.private_registry.helm_chart_versions +WHERE artifact_name = '{{ artifact_name }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND sort_order = '{{ sort_order }}' +AND release_type = '{{ release_type }}' +; +``` +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update_by_team" + values={[ + { label: 'update_by_team', value: 'update_by_team' }, + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update_by_team"> + +Update chart version information in team e.g. upload status + +```sql +UPDATE nvidia.private_registry.helm_chart_versions +SET +attributes = '{{ attributes }}', +description = '{{ description }}', +status = '{{ status }}' +WHERE +team_name = '{{ team_name }}' --required +AND artifact_name = '{{ artifact_name }}' --required +AND version_id = '{{ version_id }}' --required +RETURNING +artifact, +artifact_version, +request_status; +``` +</TabItem> +<TabItem value="update"> + +Update chart version information in org e.g. upload status + +```sql +UPDATE nvidia.private_registry.helm_chart_versions +SET +attributes = '{{ attributes }}', +description = '{{ description }}', +status = '{{ status }}' +WHERE +artifact_name = '{{ artifact_name }}' --required +AND version_id = '{{ version_id }}' --required +RETURNING +artifact, +artifact_version, +request_status; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/index.md b/website/docs/services/private_registry/index.md new file mode 100644 index 0000000..6519a38 --- /dev/null +++ b/website/docs/services/private_registry/index.md @@ -0,0 +1,61 @@ +--- +title: private_registry +hide_title: false +hide_table_of_contents: false +keywords: + - private_registry + - nvidia + - stackql + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +private_registry service documentation. + +:::info[Service Summary] + +total resources: __30__ + +::: + +## Resources +<div class="row"> +<div class="providerDocColumn"> +<a href="/services/private_registry/artifact_catalog_flags/">artifact_catalog_flags</a><br /> +<a href="/services/private_registry/artifact_collections/">artifact_collections</a><br /> +<a href="/services/private_registry/artifact_deployment_params/">artifact_deployment_params</a><br /> +<a href="/services/private_registry/artifact_deployments/">artifact_deployments</a><br /> +<a href="/services/private_registry/artifact_files/">artifact_files</a><br /> +<a href="/services/private_registry/artifact_product_shares/">artifact_product_shares</a><br /> +<a href="/services/private_registry/artifact_shares/">artifact_shares</a><br /> +<a href="/services/private_registry/artifact_signatures/">artifact_signatures</a><br /> +<a href="/services/private_registry/artifact_specs/">artifact_specs</a><br /> +<a href="/services/private_registry/artifact_version_configs/">artifact_version_configs</a><br /> +<a href="/services/private_registry/artifact_versions/">artifact_versions</a><br /> +<a href="/services/private_registry/artifacts/">artifacts</a><br /> +<a href="/services/private_registry/collection_artifacts/">collection_artifacts</a><br /> +<a href="/services/private_registry/collection_product_shares/">collection_product_shares</a><br /> +<a href="/services/private_registry/collections/">collections</a> +</div> +<div class="providerDocColumn"> +<a href="/services/private_registry/encryption_keys/">encryption_keys</a><br /> +<a href="/services/private_registry/helm_chart_versions/">helm_chart_versions</a><br /> +<a href="/services/private_registry/license_acceptances/">license_acceptances</a><br /> +<a href="/services/private_registry/model_encryption_keys/">model_encryption_keys</a><br /> +<a href="/services/private_registry/model_files/">model_files</a><br /> +<a href="/services/private_registry/model_versions/">model_versions</a><br /> +<a href="/services/private_registry/models/">models</a><br /> +<a href="/services/private_registry/recipe_files/">recipe_files</a><br /> +<a href="/services/private_registry/recipe_versions/">recipe_versions</a><br /> +<a href="/services/private_registry/recipes/">recipes</a><br /> +<a href="/services/private_registry/repository_associated_models/">repository_associated_models</a><br /> +<a href="/services/private_registry/resource_files/">resource_files</a><br /> +<a href="/services/private_registry/resource_versions/">resource_versions</a><br /> +<a href="/services/private_registry/resources/">resources</a><br /> +<a href="/services/private_registry/workflows/">workflows</a> +</div> +</div> \ No newline at end of file diff --git a/website/docs/services/private_registry/license_acceptances/index.md b/website/docs/services/private_registry/license_acceptances/index.md new file mode 100644 index 0000000..a6d2120 --- /dev/null +++ b/website/docs/services/private_registry/license_acceptances/index.md @@ -0,0 +1,180 @@ +--- +title: license_acceptances +hide_title: false +hide_table_of_contents: false +keywords: + - license_acceptances + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>license_acceptances</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="license_acceptances" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.license_acceptances" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#create_by_team"><CopyableCode code="create_by_team" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-license_id"><code>license_id</code></a>, <a href="#parameter-license_version"><code>license_version</code></a></td> + <td></td> + <td>Record license acceptance for an org artifact.</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-artifact_type"><code>artifact_type</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-license_id"><code>license_id</code></a>, <a href="#parameter-license_version"><code>license_version</code></a></td> + <td></td> + <td>Record license acceptance for an org artifact.</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact name</td> +</tr> +<tr id="parameter-artifact_type"> + <td><CopyableCode code="artifact_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact type</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +</tbody> +</table> + +## `INSERT` examples + +<Tabs + defaultValue="create_by_team" + values={[ + { label: 'create_by_team', value: 'create_by_team' }, + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create_by_team"> + +Record license acceptance for an org artifact. + +```sql +INSERT INTO nvidia.private_registry.license_acceptances ( +license_id, +license_version, +team_name, +artifact_type, +artifact_name +) +SELECT +'{{ license_id }}' /* required */, +'{{ license_version }}' /* required */, +'{{ team_name }}', +'{{ artifact_type }}', +'{{ artifact_name }}' +RETURNING +request_status +; +``` +</TabItem> +<TabItem value="create"> + +Record license acceptance for an org artifact. + +```sql +INSERT INTO nvidia.private_registry.license_acceptances ( +license_id, +license_version, +artifact_type, +artifact_name +) +SELECT +'{{ license_id }}' /* required */, +'{{ license_version }}' /* required */, +'{{ artifact_type }}', +'{{ artifact_name }}' +RETURNING +request_status +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: license_acceptances + props: + - name: team_name + value: "{{ team_name }}" + description: Required parameter for the license_acceptances resource. + - name: artifact_type + value: "{{ artifact_type }}" + description: Required parameter for the license_acceptances resource. + - name: artifact_name + value: "{{ artifact_name }}" + description: Required parameter for the license_acceptances resource. + - name: license_id + value: "{{ license_id }}" + description: | + License identifier to accept (must match a licenseId from the artifact's published licenseTerms). + - name: license_version + value: "{{ license_version }}" + description: | + License version to accept (must match licenseVersion for that license on the artifact). +`}</CodeBlock> + +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/model_encryption_keys/index.md b/website/docs/services/private_registry/model_encryption_keys/index.md new file mode 100644 index 0000000..f947c82 --- /dev/null +++ b/website/docs/services/private_registry/model_encryption_keys/index.md @@ -0,0 +1,126 @@ +--- +title: model_encryption_keys +hide_title: false +hide_table_of_contents: false +keywords: + - model_encryption_keys + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>model_encryption_keys</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="model_encryption_keys" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.model_encryption_keys" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#delete_by_team"><CopyableCode code="delete_by_team" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-model_name"><code>model_name</code></a></td> + <td></td> + <td>Disassociate encryption key from model in team and mark it for offline deletion</td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-model_name"><code>model_name</code></a></td> + <td></td> + <td>Disassociate encryption key from model in org and mark it for offline deletion</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-model_name"> + <td><CopyableCode code="model_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Model name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +</tbody> +</table> + +## `DELETE` examples + +<Tabs + defaultValue="delete_by_team" + values={[ + { label: 'delete_by_team', value: 'delete_by_team' }, + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete_by_team"> + +Disassociate encryption key from model in team and mark it for offline deletion + +```sql +DELETE FROM nvidia.private_registry.model_encryption_keys +WHERE team_name = '{{ team_name }}' --required +AND model_name = '{{ model_name }}' --required +; +``` +</TabItem> +<TabItem value="delete"> + +Disassociate encryption key from model in org and mark it for offline deletion + +```sql +DELETE FROM nvidia.private_registry.model_encryption_keys +WHERE model_name = '{{ model_name }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/model_files/index.md b/website/docs/services/private_registry/model_files/index.md new file mode 100644 index 0000000..587b56a --- /dev/null +++ b/website/docs/services/private_registry/model_files/index.md @@ -0,0 +1,250 @@ +--- +title: model_files +hide_title: false +hide_table_of_contents: false +keywords: + - model_files + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>model_files</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="model_files" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.model_files" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the file</td> +</tr> +<tr> + <td><CopyableCode code="path" /></td> + <td><code>string</code></td> + <td>Relative file path from the root of the model</td> +</tr> +<tr> + <td><CopyableCode code="sha256_base64" /></td> + <td><code>string</code></td> + <td>Base64 encoded sha256 hash of the artifact file</td> +</tr> +<tr> + <td><CopyableCode code="size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the file in bytes (wire: sizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the file</td> +</tr> +<tr> + <td><CopyableCode code="path" /></td> + <td><code>string</code></td> + <td>Relative file path from the root of the model</td> +</tr> +<tr> + <td><CopyableCode code="sha256_base64" /></td> + <td><code>string</code></td> + <td>Base64 encoded sha256 hash of the artifact file</td> +</tr> +<tr> + <td><CopyableCode code="size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the file in bytes (wire: sizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-model_name"><code>model_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_reference"><code>page_reference</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>List files of the model version in team</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-model_name"><code>model_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_reference"><code>page_reference</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>List files of the model version in org</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-model_name"> + <td><CopyableCode code="model_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Model name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_reference"> + <td><CopyableCode code="page_reference" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page reference</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +List files of the model version in team + +```sql +SELECT +created_date, +description, +path, +sha256_base64, +size_in_bytes +FROM nvidia.private_registry.model_files +WHERE team_name = '{{ team_name }}' -- required +AND model_name = '{{ model_name }}' -- required +AND version_id = '{{ version_id }}' -- required +AND page_size = '{{ page_size }}' +AND page_reference = '{{ page_reference }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +<TabItem value="list"> + +List files of the model version in org + +```sql +SELECT +created_date, +description, +path, +sha256_base64, +size_in_bytes +FROM nvidia.private_registry.model_files +WHERE model_name = '{{ model_name }}' -- required +AND version_id = '{{ version_id }}' -- required +AND page_size = '{{ page_size }}' +AND page_reference = '{{ page_reference }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/model_versions/index.md b/website/docs/services/private_registry/model_versions/index.md new file mode 100644 index 0000000..515967b --- /dev/null +++ b/website/docs/services/private_registry/model_versions/index.md @@ -0,0 +1,1217 @@ +--- +title: model_versions +hide_title: false +hide_table_of_contents: false +keywords: + - model_versions + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>model_versions</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="model_versions" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.model_versions" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this model reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this model was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this model (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the model version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>Model size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this model trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_container_configuration" /></td> + <td><code>object</code></td> + <td>NVCF container configuration parameters (wire: nvcfContainerConfiguration)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_deployment_specification" /></td> + <td><code>object</code></td> + <td>NVCF deployment specification (wire: nvcfDeploymentSpecification)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the model in bytes (wire: totalSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this model reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this model was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this model (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the model version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>Model size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this model trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_container_configuration" /></td> + <td><code>object</code></td> + <td>NVCF container configuration parameters (wire: nvcfContainerConfiguration)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_deployment_specification" /></td> + <td><code>object</code></td> + <td>NVCF deployment specification (wire: nvcfDeploymentSpecification)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the model in bytes (wire: totalSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this model reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this model was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this model (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the model version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>Model size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this model trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_container_configuration" /></td> + <td><code>object</code></td> + <td>NVCF container configuration parameters (wire: nvcfContainerConfiguration)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_deployment_specification" /></td> + <td><code>object</code></td> + <td>NVCF deployment specification (wire: nvcfDeploymentSpecification)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the model in bytes (wire: totalSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this model reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this model was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this model (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the model version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>Model size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this model trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_container_configuration" /></td> + <td><code>object</code></td> + <td>NVCF container configuration parameters (wire: nvcfContainerConfiguration)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_deployment_specification" /></td> + <td><code>object</code></td> + <td>NVCF deployment specification (wire: nvcfDeploymentSpecification)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the model in bytes (wire: totalSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-model_name"><code>model_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Get model version in team</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-model_name"><code>model_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Get model version in org</td> +</tr> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-model_name"><code>model_name</code></a></td> + <td><a href="#parameter-release_type"><code>release_type</code></a>, <a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-sort_order"><code>sort_order</code></a></td> + <td>List model versions in team</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-model_name"><code>model_name</code></a></td> + <td><a href="#parameter-release_type"><code>release_type</code></a>, <a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-sort_order"><code>sort_order</code></a></td> + <td>List model versions in org</td> +</tr> +<tr> + <td><a href="#create_by_team"><CopyableCode code="create_by_team" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-model_name"><code>model_name</code></a></td> + <td></td> + <td>Create model version in team. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https:​//semver.org</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-model_name"><code>model_name</code></a></td> + <td></td> + <td>Create a new and empty model version in org. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https:​//semver.org</td> +</tr> +<tr> + <td><a href="#update_by_team"><CopyableCode code="update_by_team" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-model_name"><code>model_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-create_zip"><code>create_zip</code></a>, <a href="#parameter-set_latest"><code>set_latest</code></a></td> + <td>Update model version information in team e.g. upload status</td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-model_name"><code>model_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-create_zip"><code>create_zip</code></a>, <a href="#parameter-set_latest"><code>set_latest</code></a></td> + <td>Update model version information in org e.g. upload status</td> +</tr> +<tr> + <td><a href="#stash"><CopyableCode code="stash" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Stash artifact version information in org during upload paused state</td> +</tr> +<tr> + <td><a href="#stash_by_team"><CopyableCode code="stash_by_team" /></a></td> + <td><CopyableCode code="exec" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-artifact_name"><code>artifact_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Stash artifact version information in team in model version upload paused state</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-artifact_name"> + <td><CopyableCode code="artifact_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Artifact name</td> +</tr> +<tr id="parameter-model_name"> + <td><CopyableCode code="model_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Model name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +<tr id="parameter-create_zip"> + <td><CopyableCode code="create_zip" /></td> + <td><code>boolean</code></td> + <td>Create zip of version content</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-release_type"> + <td><CopyableCode code="release_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Release Type</td> +</tr> +<tr id="parameter-set_latest"> + <td><CopyableCode code="set_latest" /></td> + <td><code>boolean</code></td> + <td>Set version to latest</td> +</tr> +<tr id="parameter-sort_order"> + <td><CopyableCode code="sort_order" /></td> + <td><code>string (UTF-8)</code></td> + <td>Sort order</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +Get model version in team + +```sql +SELECT +id, +version_id, +owner_name, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +nvcf_container_configuration, +nvcf_deployment_specification, +other_contents, +policy, +release_type, +status, +storage_version, +total_file_count, +total_size_in_bytes, +updated_date +FROM nvidia.private_registry.model_versions +WHERE team_name = '{{ team_name }}' -- required +AND model_name = '{{ model_name }}' -- required +AND version_id = '{{ version_id }}' -- required +; +``` +</TabItem> +<TabItem value="get"> + +Get model version in org + +```sql +SELECT +id, +version_id, +owner_name, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +nvcf_container_configuration, +nvcf_deployment_specification, +other_contents, +policy, +release_type, +status, +storage_version, +total_file_count, +total_size_in_bytes, +updated_date +FROM nvidia.private_registry.model_versions +WHERE model_name = '{{ model_name }}' -- required +AND version_id = '{{ version_id }}' -- required +; +``` +</TabItem> +<TabItem value="list_by_team"> + +List model versions in team + +```sql +SELECT +id, +version_id, +owner_name, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +nvcf_container_configuration, +nvcf_deployment_specification, +other_contents, +policy, +release_type, +status, +storage_version, +total_file_count, +total_size_in_bytes, +updated_date +FROM nvidia.private_registry.model_versions +WHERE team_name = '{{ team_name }}' -- required +AND model_name = '{{ model_name }}' -- required +AND release_type = '{{ release_type }}' +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND sort_order = '{{ sort_order }}' +; +``` +</TabItem> +<TabItem value="list"> + +List model versions in org + +```sql +SELECT +id, +version_id, +owner_name, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +nvcf_container_configuration, +nvcf_deployment_specification, +other_contents, +policy, +release_type, +status, +storage_version, +total_file_count, +total_size_in_bytes, +updated_date +FROM nvidia.private_registry.model_versions +WHERE model_name = '{{ model_name }}' -- required +AND release_type = '{{ release_type }}' +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND sort_order = '{{ sort_order }}' +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create_by_team" + values={[ + { label: 'create_by_team', value: 'create_by_team' }, + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create_by_team"> + +Create model version in team. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org + +```sql +INSERT INTO nvidia.private_registry.model_versions ( +accuracy_reached, +batch_size, +custom_metrics, +description, +gpu_model, +id, +memory_footprint, +number_of_epochs, +nvcf_container_configuration, +nvcf_deployment_specification, +other_contents, +owner_name, +version_id, +team_name, +model_name +) +SELECT +{{ accuracy_reached }}, +{{ batch_size }}, +'{{ custom_metrics }}', +'{{ description }}', +'{{ gpu_model }}', +{{ id }}, +'{{ memory_footprint }}', +{{ number_of_epochs }}, +'{{ nvcf_container_configuration }}', +'{{ nvcf_deployment_specification }}', +'{{ other_contents }}', +'{{ owner_name }}', +'{{ version_id }}', +'{{ team_name }}', +'{{ model_name }}' +RETURNING +model, +model_version, +request_status +; +``` +</TabItem> +<TabItem value="create"> + +Create a new and empty model version in org. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org + +```sql +INSERT INTO nvidia.private_registry.model_versions ( +accuracy_reached, +batch_size, +custom_metrics, +description, +gpu_model, +id, +memory_footprint, +number_of_epochs, +nvcf_container_configuration, +nvcf_deployment_specification, +other_contents, +owner_name, +version_id, +model_name +) +SELECT +{{ accuracy_reached }}, +{{ batch_size }}, +'{{ custom_metrics }}', +'{{ description }}', +'{{ gpu_model }}', +{{ id }}, +'{{ memory_footprint }}', +{{ number_of_epochs }}, +'{{ nvcf_container_configuration }}', +'{{ nvcf_deployment_specification }}', +'{{ other_contents }}', +'{{ owner_name }}', +'{{ version_id }}', +'{{ model_name }}' +RETURNING +model, +model_version, +request_status +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: model_versions + props: + - name: team_name + value: "{{ team_name }}" + description: Required parameter for the model_versions resource. + - name: model_name + value: "{{ model_name }}" + description: Required parameter for the model_versions resource. + - name: accuracy_reached + value: {{ accuracy_reached }} + description: | + Accuracy this model reached + - name: batch_size + value: {{ batch_size }} + description: | + Batch size this model was trained with + - name: custom_metrics + value: + - attributes: "{{ attributes }}" + name: "{{ name }}" + - name: description + value: "{{ description }}" + description: | + Description of the model version + - name: gpu_model + value: "{{ gpu_model }}" + description: | + GPU model and memory + - name: id + value: {{ id }} + description: | + Deprecated: Please use version instead. Unique ID of the version + - name: memory_footprint + value: "{{ memory_footprint }}" + description: | + Model size/memory footprint for inference + - name: number_of_epochs + value: {{ number_of_epochs }} + description: | + Number of epochs this model trained + - name: nvcf_container_configuration + description: | + NVCF container configuration parameters + value: + apiBodyFormat: "{{ apiBodyFormat }}" + containerArgs: "{{ containerArgs }}" + containerEnvironment: + - key: "{{ key }}" + value: "{{ value }}" + containerImage: "{{ containerImage }}" + healthUri: "{{ healthUri }}" + inferencePort: "{{ inferencePort }}" + inferenceUrl: "{{ inferenceUrl }}" + models: + - name: "{{ name }}" + uri: "{{ uri }}" + version: "{{ version }}" + - name: nvcf_deployment_specification + description: | + NVCF deployment specification + value: + gpuCount: {{ gpuCount }} + gpuType: "{{ gpuType }}" + instanceType: "{{ instanceType }}" + maxConcurrency: {{ maxConcurrency }} + - name: other_contents + value: + - key: "{{ key }}" + value: "{{ value }}" + - name: owner_name + value: "{{ owner_name }}" + description: | + Name of the user who owns this version + - name: version_id + value: "{{ version_id }}" + description: | + Unique version id. Please use this instead of 'id' +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update_by_team" + values={[ + { label: 'update_by_team', value: 'update_by_team' }, + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update_by_team"> + +Update model version information in team e.g. upload status + +```sql +UPDATE nvidia.private_registry.model_versions +SET +accuracy_reached = {{ accuracy_reached }}, +batch_size = {{ batch_size }}, +custom_metrics = '{{ custom_metrics }}', +description = '{{ description }}', +gpu_model = '{{ gpu_model }}', +memory_footprint = '{{ memory_footprint }}', +number_of_epochs = {{ number_of_epochs }}, +nvcf_container_configuration = '{{ nvcf_container_configuration }}', +nvcf_deployment_specification = '{{ nvcf_deployment_specification }}', +other_contents = '{{ other_contents }}', +owner_name = '{{ owner_name }}', +status = '{{ status }}' +WHERE +team_name = '{{ team_name }}' --required +AND model_name = '{{ model_name }}' --required +AND version_id = '{{ version_id }}' --required +AND create-zip = {{ create-zip}} +AND set-latest = {{ set-latest}} +RETURNING +model, +model_version, +request_status; +``` +</TabItem> +<TabItem value="update"> + +Update model version information in org e.g. upload status + +```sql +UPDATE nvidia.private_registry.model_versions +SET +accuracy_reached = {{ accuracy_reached }}, +batch_size = {{ batch_size }}, +custom_metrics = '{{ custom_metrics }}', +description = '{{ description }}', +gpu_model = '{{ gpu_model }}', +memory_footprint = '{{ memory_footprint }}', +number_of_epochs = {{ number_of_epochs }}, +nvcf_container_configuration = '{{ nvcf_container_configuration }}', +nvcf_deployment_specification = '{{ nvcf_deployment_specification }}', +other_contents = '{{ other_contents }}', +owner_name = '{{ owner_name }}', +status = '{{ status }}' +WHERE +model_name = '{{ model_name }}' --required +AND version_id = '{{ version_id }}' --required +AND create-zip = {{ create-zip}} +AND set-latest = {{ set-latest}} +RETURNING +model, +model_version, +request_status; +``` +</TabItem> +</Tabs> + + +## Lifecycle Methods + +EXEC variables use wire (API) names. + +<Tabs + defaultValue="stash" + values={[ + { label: 'stash', value: 'stash' }, + { label: 'stash_by_team', value: 'stash_by_team' } + ]} +> +<TabItem value="stash"> + +Stash artifact version information in org during upload paused state + +```sql +EXEC nvidia.private_registry.model_versions.stash +@artifact_name='{{ artifact_name }}' --required, +@version_id='{{ version_id }}' --required +; +``` +</TabItem> +<TabItem value="stash_by_team"> + +Stash artifact version information in team in model version upload paused state + +```sql +EXEC nvidia.private_registry.model_versions.stash_by_team +@team_name='{{ team_name }}' --required, +@artifact_name='{{ artifact_name }}' --required, +@version_id='{{ version_id }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/models/index.md b/website/docs/services/private_registry/models/index.md new file mode 100644 index 0000000..e45f14f --- /dev/null +++ b/website/docs/services/private_registry/models/index.md @@ -0,0 +1,1630 @@ +--- +title: models +hide_title: false +hide_table_of_contents: false +keywords: + - models + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>models</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="models" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.models" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the model</td> +</tr> +<tr> + <td><CopyableCode code="encryption_key_id" /></td> + <td><code>string</code></td> + <td>ID of the customer managed encryption key associated with this artifact (wire: encryptionKeyId)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the model belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of model's owner (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the model belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td>Application of the model</td> +</tr> +<tr> + <td><CopyableCode code="bias" /></td> + <td><code>string</code></td> + <td>Text describing bias in the model</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>organization that built the repository (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the model</td> +</tr> +<tr> + <td><CopyableCode code="explainability" /></td> + <td><code>string</code></td> + <td>Text describing explainability for this model</td> +</tr> +<tr> + <td><CopyableCode code="framework" /></td> + <td><code>string</code></td> + <td>Framework used to train this model</td> +</tr> +<tr> + <td><CopyableCode code="has_playground" /></td> + <td><code>boolean</code></td> + <td>indicate if the Model has AI Playground configured (wire: hasPlayground)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the model has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if model is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_playground_enabled" /></td> + <td><code>boolean</code></td> + <td>indicate if AI Playground is enabled in the catalog (wire: isPlaygroundEnabled)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if model is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory used for the latest version (wire: latestVersionGpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td>Precision this model was trained with</td> +</tr> +<tr> + <td><CopyableCode code="privacy" /></td> + <td><code>string</code></td> + <td>Text describing the privacy for this model</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>organization that published the repository</td> +</tr> +<tr> + <td><CopyableCode code="safety_and_security" /></td> + <td><code>string</code></td> + <td>Text for describing the safety and security in the model (wire: safetyAndSecurity)</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the model (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +<tr> + <td><CopyableCode code="versions" /></td> + <td><code>array</code></td> + <td></td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the model</td> +</tr> +<tr> + <td><CopyableCode code="encryption_key_id" /></td> + <td><code>string</code></td> + <td>ID of the customer managed encryption key associated with this artifact (wire: encryptionKeyId)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the model belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of model's owner (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the model belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td>Application of the model</td> +</tr> +<tr> + <td><CopyableCode code="bias" /></td> + <td><code>string</code></td> + <td>Text describing bias in the model</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>organization that built the repository (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the model</td> +</tr> +<tr> + <td><CopyableCode code="explainability" /></td> + <td><code>string</code></td> + <td>Text describing explainability for this model</td> +</tr> +<tr> + <td><CopyableCode code="framework" /></td> + <td><code>string</code></td> + <td>Framework used to train this model</td> +</tr> +<tr> + <td><CopyableCode code="has_playground" /></td> + <td><code>boolean</code></td> + <td>indicate if the Model has AI Playground configured (wire: hasPlayground)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the model has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if model is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_playground_enabled" /></td> + <td><code>boolean</code></td> + <td>indicate if AI Playground is enabled in the catalog (wire: isPlaygroundEnabled)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if model is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory used for the latest version (wire: latestVersionGpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td>Precision this model was trained with</td> +</tr> +<tr> + <td><CopyableCode code="privacy" /></td> + <td><code>string</code></td> + <td>Text describing the privacy for this model</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>organization that published the repository</td> +</tr> +<tr> + <td><CopyableCode code="safety_and_security" /></td> + <td><code>string</code></td> + <td>Text for describing the safety and security in the model (wire: safetyAndSecurity)</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the model (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +<tr> + <td><CopyableCode code="versions" /></td> + <td><code>array</code></td> + <td></td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the model</td> +</tr> +<tr> + <td><CopyableCode code="encryption_key_id" /></td> + <td><code>string</code></td> + <td>ID of the customer managed encryption key associated with this artifact (wire: encryptionKeyId)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the model belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of model's owner (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the model belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td>Application of the model</td> +</tr> +<tr> + <td><CopyableCode code="bias" /></td> + <td><code>string</code></td> + <td>Text describing bias in the model</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>organization that built the repository (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the model</td> +</tr> +<tr> + <td><CopyableCode code="explainability" /></td> + <td><code>string</code></td> + <td>Text describing explainability for this model</td> +</tr> +<tr> + <td><CopyableCode code="framework" /></td> + <td><code>string</code></td> + <td>Framework used to train this model</td> +</tr> +<tr> + <td><CopyableCode code="has_playground" /></td> + <td><code>boolean</code></td> + <td>indicate if the Model has AI Playground configured (wire: hasPlayground)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the model has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if model is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_playground_enabled" /></td> + <td><code>boolean</code></td> + <td>indicate if AI Playground is enabled in the catalog (wire: isPlaygroundEnabled)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if model is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory used for the latest version (wire: latestVersionGpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td>Precision this model was trained with</td> +</tr> +<tr> + <td><CopyableCode code="privacy" /></td> + <td><code>string</code></td> + <td>Text describing the privacy for this model</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>organization that published the repository</td> +</tr> +<tr> + <td><CopyableCode code="safety_and_security" /></td> + <td><code>string</code></td> + <td>Text for describing the safety and security in the model (wire: safetyAndSecurity)</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the model (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +<tr> + <td><CopyableCode code="versions" /></td> + <td><code>array</code></td> + <td></td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the model</td> +</tr> +<tr> + <td><CopyableCode code="encryption_key_id" /></td> + <td><code>string</code></td> + <td>ID of the customer managed encryption key associated with this artifact (wire: encryptionKeyId)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the model belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of model's owner (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the model belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td>Application of the model</td> +</tr> +<tr> + <td><CopyableCode code="bias" /></td> + <td><code>string</code></td> + <td>Text describing bias in the model</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>organization that built the repository (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the model</td> +</tr> +<tr> + <td><CopyableCode code="explainability" /></td> + <td><code>string</code></td> + <td>Text describing explainability for this model</td> +</tr> +<tr> + <td><CopyableCode code="framework" /></td> + <td><code>string</code></td> + <td>Framework used to train this model</td> +</tr> +<tr> + <td><CopyableCode code="has_playground" /></td> + <td><code>boolean</code></td> + <td>indicate if the Model has AI Playground configured (wire: hasPlayground)</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the model has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if model is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_playground_enabled" /></td> + <td><code>boolean</code></td> + <td>indicate if AI Playground is enabled in the catalog (wire: isPlaygroundEnabled)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if model is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory used for the latest version (wire: latestVersionGpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td>Precision this model was trained with</td> +</tr> +<tr> + <td><CopyableCode code="privacy" /></td> + <td><code>string</code></td> + <td>Text describing the privacy for this model</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>organization that published the repository</td> +</tr> +<tr> + <td><CopyableCode code="safety_and_security" /></td> + <td><code>string</code></td> + <td>Text for describing the safety and security in the model (wire: safetyAndSecurity)</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the model (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +<tr> + <td><CopyableCode code="versions" /></td> + <td><code>array</code></td> + <td></td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-model_name"><code>model_name</code></a></td> + <td><a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>This operation gets info of a model in the org/team.</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-model_name"><code>model_name</code></a></td> + <td><a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>This operation gets info of a model in the org.</td> +</tr> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a></td> + <td><a href="#parameter-app_name"><code>app_name</code></a>, <a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_reference"><code>page_reference</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>This operation lists models the user can access in the org/team.</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td><a href="#parameter-app_name"><code>app_name</code></a>, <a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_reference"><code>page_reference</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>This operation lists models the user can access in the org.</td> +</tr> +<tr> + <td><a href="#create_by_team"><CopyableCode code="create_by_team" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-framework"><code>framework</code></a>, <a href="#parameter-name"><code>name</code></a>, <a href="#parameter-precision"><code>precision</code></a></td> + <td></td> + <td>This operation creates a model in the org/team.</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-framework"><code>framework</code></a>, <a href="#parameter-name"><code>name</code></a>, <a href="#parameter-precision"><code>precision</code></a></td> + <td></td> + <td>This operation creates a model in the org.</td> +</tr> +<tr> + <td><a href="#update_by_team"><CopyableCode code="update_by_team" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-model_name"><code>model_name</code></a></td> + <td></td> + <td>This operation updates details of a model in the org/team.</td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-model_name"><code>model_name</code></a></td> + <td></td> + <td>This operation updates details of a model in the org.</td> +</tr> +<tr> + <td><a href="#delete_by_team"><CopyableCode code="delete_by_team" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-model_name"><code>model_name</code></a></td> + <td></td> + <td>This operation deletes a model in the org/team (SDK evidence: ngcsdk registry/api/models.py remove_model; not declared in the published definition).</td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-model_name"><code>model_name</code></a></td> + <td></td> + <td>This operation deletes a model in the org (SDK evidence: ngcsdk registry/api/models.py remove_model; not declared in the published definition).</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-model_name"> + <td><CopyableCode code="model_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Model name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-app_name"> + <td><CopyableCode code="app_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Application name</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_reference"> + <td><CopyableCode code="page_reference" /></td> + <td><code>string (UTF-8)</code></td> + <td>[Deprecated] Page reference, Use page-number instead</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-remove_unresolved_labels"> + <td><CopyableCode code="remove_unresolved_labels" /></td> + <td><code>boolean</code></td> + <td>Remove unresolved labels</td> +</tr> +<tr id="parameter-resolve_labels"> + <td><CopyableCode code="resolve_labels" /></td> + <td><code>boolean</code></td> + <td>Resolve labels</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +This operation gets info of a model in the org/team. + +```sql +SELECT +name, +encryption_key_id, +latest_version_id, +display_name, +org_name, +owner_name, +team_name, +access_type, +application, +bias, +built_by, +can_guest_download, +created_date, +description, +explainability, +framework, +has_playground, +has_signed_version, +is_favourite, +is_playground_enabled, +is_public, +is_read_only, +labels, +latest_version_gpu_model, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +policy_labels, +precision, +privacy, +product_names, +public_dataset_used, +publisher, +safety_and_security, +short_description, +updated_date, +versions +FROM nvidia.private_registry.models +WHERE team_name = '{{ team_name }}' -- required +AND model_name = '{{ model_name }}' -- required +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="get"> + +This operation gets info of a model in the org. + +```sql +SELECT +name, +encryption_key_id, +latest_version_id, +display_name, +org_name, +owner_name, +team_name, +access_type, +application, +bias, +built_by, +can_guest_download, +created_date, +description, +explainability, +framework, +has_playground, +has_signed_version, +is_favourite, +is_playground_enabled, +is_public, +is_read_only, +labels, +latest_version_gpu_model, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +policy_labels, +precision, +privacy, +product_names, +public_dataset_used, +publisher, +safety_and_security, +short_description, +updated_date, +versions +FROM nvidia.private_registry.models +WHERE model_name = '{{ model_name }}' -- required +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="list_by_team"> + +This operation lists models the user can access in the org/team. + +```sql +SELECT +name, +encryption_key_id, +latest_version_id, +display_name, +org_name, +owner_name, +team_name, +access_type, +application, +bias, +built_by, +can_guest_download, +created_date, +description, +explainability, +framework, +has_playground, +has_signed_version, +is_favourite, +is_playground_enabled, +is_public, +is_read_only, +labels, +latest_version_gpu_model, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +policy_labels, +precision, +privacy, +product_names, +public_dataset_used, +publisher, +safety_and_security, +short_description, +updated_date, +versions +FROM nvidia.private_registry.models +WHERE team_name = '{{ team_name }}' -- required +AND app_name = '{{ app_name }}' +AND page_size = '{{ page_size }}' +AND page_reference = '{{ page_reference }}' +AND page_number = '{{ page_number }}' +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="list"> + +This operation lists models the user can access in the org. + +```sql +SELECT +name, +encryption_key_id, +latest_version_id, +display_name, +org_name, +owner_name, +team_name, +access_type, +application, +bias, +built_by, +can_guest_download, +created_date, +description, +explainability, +framework, +has_playground, +has_signed_version, +is_favourite, +is_playground_enabled, +is_public, +is_read_only, +labels, +latest_version_gpu_model, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +policy_labels, +precision, +privacy, +product_names, +public_dataset_used, +publisher, +safety_and_security, +short_description, +updated_date, +versions +FROM nvidia.private_registry.models +WHERE app_name = '{{ app_name }}' +AND page_size = '{{ page_size }}' +AND page_reference = '{{ page_reference }}' +AND page_number = '{{ page_number }}' +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create_by_team" + values={[ + { label: 'create_by_team', value: 'create_by_team' }, + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create_by_team"> + +This operation creates a model in the org/team. + +```sql +INSERT INTO nvidia.private_registry.models ( +application, +bias, +built_by, +description, +display_name, +encryption_key, +explainability, +framework, +has_playground, +is_playground_enabled, +labels, +labels_v2, +license_terms, +logo, +model_format, +name, +owner_name, +precision, +privacy, +public_dataset_used, +publisher, +safety_and_security, +short_description, +team_name +) +SELECT +'{{ application }}', +'{{ bias }}', +'{{ built_by }}', +'{{ description }}', +'{{ display_name }}', +'{{ encryption_key }}', +'{{ explainability }}', +'{{ framework }}' /* required */, +{{ has_playground }}, +{{ is_playground_enabled }}, +'{{ labels }}', +'{{ labels_v2 }}', +'{{ license_terms }}', +'{{ logo }}', +'{{ model_format }}', +'{{ name }}' /* required */, +'{{ owner_name }}', +'{{ precision }}' /* required */, +'{{ privacy }}', +'{{ public_dataset_used }}', +'{{ publisher }}', +'{{ safety_and_security }}', +'{{ short_description }}', +'{{ team_name }}' +RETURNING +model, +request_status +; +``` +</TabItem> +<TabItem value="create"> + +This operation creates a model in the org. + +```sql +INSERT INTO nvidia.private_registry.models ( +application, +bias, +built_by, +description, +display_name, +encryption_key, +explainability, +framework, +has_playground, +is_playground_enabled, +labels, +labels_v2, +license_terms, +logo, +model_format, +name, +owner_name, +precision, +privacy, +public_dataset_used, +publisher, +safety_and_security, +short_description +) +SELECT +'{{ application }}', +'{{ bias }}', +'{{ built_by }}', +'{{ description }}', +'{{ display_name }}', +'{{ encryption_key }}', +'{{ explainability }}', +'{{ framework }}' /* required */, +{{ has_playground }}, +{{ is_playground_enabled }}, +'{{ labels }}', +'{{ labels_v2 }}', +'{{ license_terms }}', +'{{ logo }}', +'{{ model_format }}', +'{{ name }}' /* required */, +'{{ owner_name }}', +'{{ precision }}' /* required */, +'{{ privacy }}', +'{{ public_dataset_used }}', +'{{ publisher }}', +'{{ safety_and_security }}', +'{{ short_description }}' +RETURNING +model, +request_status +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: models + props: + - name: team_name + value: "{{ team_name }}" + description: Required parameter for the models resource. + - name: application + value: "{{ application }}" + description: | + Application of the model + - name: bias + value: "{{ bias }}" + description: | + Text describing bias in the model + - name: built_by + value: "{{ built_by }}" + description: | + organization that built the repository + - name: description + value: "{{ description }}" + description: | + Description of the model + - name: display_name + value: "{{ display_name }}" + description: | + Display name + - name: encryption_key + description: | + Customer Managed Key shard configuration for the model + value: + description: "{{ description }}" + encryptionKeyId: "{{ encryptionKeyId }}" + useExistingKey: {{ useExistingKey }} + - name: explainability + value: "{{ explainability }}" + description: | + Text describing explainability for this model + - name: framework + value: "{{ framework }}" + description: | + Framework used to train this model + - name: has_playground + value: {{ has_playground }} + description: | + indicate if the Model has AI Playground configured + - name: is_playground_enabled + value: {{ is_playground_enabled }} + description: | + indicate if AI Playground is enabled in the catalog + - name: labels + value: + - "{{ labels }}" + - name: labels_v2 + value: + - "{{ labels_v2 }}" + - name: license_terms + value: + - configuredLicenseTerms: + download: + artifactType: "{{ artifactType }}" + generatedHtml: "{{ generatedHtml }}" + tags: + - category: "{{ category }}" + key: "{{ key }}" + label: "{{ label }}" + tag: "{{ tag }}" + url: "{{ url }}" + hosting: + artifactType: "{{ artifactType }}" + generatedHtml: "{{ generatedHtml }}" + tags: + - category: "{{ category }}" + key: "{{ key }}" + label: "{{ label }}" + tag: "{{ tag }}" + url: "{{ url }}" + governingTerms: "{{ governingTerms }}" + licenseId: "{{ licenseId }}" + licenseVersion: "{{ licenseVersion }}" + needsAcceptance: {{ needsAcceptance }} + - name: logo + value: "{{ logo }}" + description: | + URL for the logo image + - name: model_format + value: "{{ model_format }}" + description: | + Format of the model + - name: name + value: "{{ name }}" + description: | + Unique name of the model + - name: owner_name + value: "{{ owner_name }}" + description: | + Name of the user who owns this model + - name: precision + value: "{{ precision }}" + description: | + Precision this model was trained with + - name: privacy + value: "{{ privacy }}" + description: | + Text describing the privacy for this model + - name: public_dataset_used + value: + license: "{{ license }}" + link: "{{ link }}" + name: "{{ name }}" + - name: publisher + value: "{{ publisher }}" + description: | + organization that published the repository + - name: safety_and_security + value: "{{ safety_and_security }}" + description: | + Text for describing the safety and security in the model + - name: short_description + value: "{{ short_description }}" + description: | + Short description of the model +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update_by_team" + values={[ + { label: 'update_by_team', value: 'update_by_team' }, + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update_by_team"> + +This operation updates details of a model in the org/team. + +```sql +UPDATE nvidia.private_registry.models +SET +application = '{{ application }}', +bias = '{{ bias }}', +built_by = '{{ built_by }}', +description = '{{ description }}', +display_name = '{{ display_name }}', +explainability = '{{ explainability }}', +framework = '{{ framework }}', +has_playground = {{ has_playground }}, +is_playground_enabled = {{ is_playground_enabled }}, +labels = '{{ labels }}', +labels_v2 = '{{ labels_v2 }}', +license_terms = '{{ license_terms }}', +logo = '{{ logo }}', +model_format = '{{ model_format }}', +owner_name = '{{ owner_name }}', +precision = '{{ precision }}', +privacy = '{{ privacy }}', +public_dataset_used = '{{ public_dataset_used }}', +publisher = '{{ publisher }}', +safety_and_security = '{{ safety_and_security }}', +short_description = '{{ short_description }}' +WHERE +team_name = '{{ team_name }}' --required +AND model_name = '{{ model_name }}' --required +RETURNING +model, +request_status; +``` +</TabItem> +<TabItem value="update"> + +This operation updates details of a model in the org. + +```sql +UPDATE nvidia.private_registry.models +SET +application = '{{ application }}', +bias = '{{ bias }}', +built_by = '{{ built_by }}', +description = '{{ description }}', +display_name = '{{ display_name }}', +explainability = '{{ explainability }}', +framework = '{{ framework }}', +has_playground = {{ has_playground }}, +is_playground_enabled = {{ is_playground_enabled }}, +labels = '{{ labels }}', +labels_v2 = '{{ labels_v2 }}', +license_terms = '{{ license_terms }}', +logo = '{{ logo }}', +model_format = '{{ model_format }}', +owner_name = '{{ owner_name }}', +precision = '{{ precision }}', +privacy = '{{ privacy }}', +public_dataset_used = '{{ public_dataset_used }}', +publisher = '{{ publisher }}', +safety_and_security = '{{ safety_and_security }}', +short_description = '{{ short_description }}' +WHERE +model_name = '{{ model_name }}' --required +RETURNING +model, +request_status; +``` +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete_by_team" + values={[ + { label: 'delete_by_team', value: 'delete_by_team' }, + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete_by_team"> + +This operation deletes a model in the org/team (SDK evidence: ngcsdk registry/api/models.py remove_model; not declared in the published definition). + +```sql +DELETE FROM nvidia.private_registry.models +WHERE team_name = '{{ team_name }}' --required +AND model_name = '{{ model_name }}' --required +; +``` +</TabItem> +<TabItem value="delete"> + +This operation deletes a model in the org (SDK evidence: ngcsdk registry/api/models.py remove_model; not declared in the published definition). + +```sql +DELETE FROM nvidia.private_registry.models +WHERE model_name = '{{ model_name }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/recipe_files/index.md b/website/docs/services/private_registry/recipe_files/index.md new file mode 100644 index 0000000..2851c75 --- /dev/null +++ b/website/docs/services/private_registry/recipe_files/index.md @@ -0,0 +1,250 @@ +--- +title: recipe_files +hide_title: false +hide_table_of_contents: false +keywords: + - recipe_files + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>recipe_files</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="recipe_files" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.recipe_files" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the file</td> +</tr> +<tr> + <td><CopyableCode code="path" /></td> + <td><code>string</code></td> + <td>Relative file path from the root of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="sha256_base64" /></td> + <td><code>string</code></td> + <td>Base64 encoded sha256 hash of the artifact file</td> +</tr> +<tr> + <td><CopyableCode code="size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the file in bytes (wire: sizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the file</td> +</tr> +<tr> + <td><CopyableCode code="path" /></td> + <td><code>string</code></td> + <td>Relative file path from the root of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="sha256_base64" /></td> + <td><code>string</code></td> + <td>Base64 encoded sha256 hash of the artifact file</td> +</tr> +<tr> + <td><CopyableCode code="size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the file in bytes (wire: sizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_reference"><code>page_reference</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>List recipe files in team</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-recipe_name"><code>recipe_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_reference"><code>page_reference</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>List recipe files in org</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-recipe_name"> + <td><CopyableCode code="recipe_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Recipe name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_reference"> + <td><CopyableCode code="page_reference" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page reference</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +List recipe files in team + +```sql +SELECT +created_date, +description, +path, +sha256_base64, +size_in_bytes +FROM nvidia.private_registry.recipe_files +WHERE team_name = '{{ team_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND version_id = '{{ version_id }}' -- required +AND page_size = '{{ page_size }}' +AND page_reference = '{{ page_reference }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +<TabItem value="list"> + +List recipe files in org + +```sql +SELECT +created_date, +description, +path, +sha256_base64, +size_in_bytes +FROM nvidia.private_registry.recipe_files +WHERE recipe_name = '{{ recipe_name }}' -- required +AND version_id = '{{ version_id }}' -- required +AND page_size = '{{ page_size }}' +AND page_reference = '{{ page_reference }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/recipe_versions/index.md b/website/docs/services/private_registry/recipe_versions/index.md new file mode 100644 index 0000000..075b817 --- /dev/null +++ b/website/docs/services/private_registry/recipe_versions/index.md @@ -0,0 +1,1154 @@ +--- +title: recipe_versions +hide_title: false +hide_table_of_contents: false +keywords: + - recipe_versions + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>recipe_versions</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="recipe_versions" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.recipe_versions" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this recipe reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this recipe was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this recipe (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>recipe size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this recipe trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="release_notes" /></td> + <td><code>string</code></td> + <td>Text describing this release (wire: releaseNotes)</td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the recipe in bytes (wire: totalSizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this recipe reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this recipe was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this recipe (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>recipe size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this recipe trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="release_notes" /></td> + <td><code>string</code></td> + <td>Text describing this release (wire: releaseNotes)</td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the recipe in bytes (wire: totalSizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this recipe reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this recipe was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this recipe (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>recipe size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this recipe trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="release_notes" /></td> + <td><code>string</code></td> + <td>Text describing this release (wire: releaseNotes)</td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the recipe in bytes (wire: totalSizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this recipe reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this recipe was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this recipe (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>recipe size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this recipe trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="release_notes" /></td> + <td><code>string</code></td> + <td>Text describing this release (wire: releaseNotes)</td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the recipe in bytes (wire: totalSizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Get recipe version in team</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-recipe_name"><code>recipe_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Get recipe version in org</td> +</tr> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-sort_order"><code>sort_order</code></a>, <a href="#parameter-release_type"><code>release_type</code></a></td> + <td>List recipe versions in team</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-sort_order"><code>sort_order</code></a>, <a href="#parameter-release_type"><code>release_type</code></a></td> + <td>List recipe versions in org</td> +</tr> +<tr> + <td><a href="#create_by_team"><CopyableCode code="create_by_team" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td></td> + <td>Create recipe version in team. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https:​//semver.org</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td></td> + <td>Create recipe version in org. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https:​//semver.org</td> +</tr> +<tr> + <td><a href="#update_by_team"><CopyableCode code="update_by_team" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-create_zip"><code>create_zip</code></a>, <a href="#parameter-set_latest"><code>set_latest</code></a></td> + <td>Update recipe version information in team e.g. upload status</td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-recipe_name"><code>recipe_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-create_zip"><code>create_zip</code></a>, <a href="#parameter-set_latest"><code>set_latest</code></a></td> + <td>Update recipe version information in org e.g. upload status</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-recipe_name"> + <td><CopyableCode code="recipe_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Recipe name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +<tr id="parameter-create_zip"> + <td><CopyableCode code="create_zip" /></td> + <td><code>boolean</code></td> + <td>Create zip of version content</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-release_type"> + <td><CopyableCode code="release_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Release Type</td> +</tr> +<tr id="parameter-set_latest"> + <td><CopyableCode code="set_latest" /></td> + <td><code>boolean</code></td> + <td>Set version to latest</td> +</tr> +<tr id="parameter-sort_order"> + <td><CopyableCode code="sort_order" /></td> + <td><code>string (UTF-8)</code></td> + <td>Sort order</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +Get recipe version in team + +```sql +SELECT +id, +version_id, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +other_contents, +performance, +policy, +quick_start_guide, +release_notes, +release_type, +setup, +status, +storage_version, +total_file_count, +total_size_in_bytes +FROM nvidia.private_registry.recipe_versions +WHERE team_name = '{{ team_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND version_id = '{{ version_id }}' -- required +; +``` +</TabItem> +<TabItem value="get"> + +Get recipe version in org + +```sql +SELECT +id, +version_id, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +other_contents, +performance, +policy, +quick_start_guide, +release_notes, +release_type, +setup, +status, +storage_version, +total_file_count, +total_size_in_bytes +FROM nvidia.private_registry.recipe_versions +WHERE recipe_name = '{{ recipe_name }}' -- required +AND version_id = '{{ version_id }}' -- required +; +``` +</TabItem> +<TabItem value="list_by_team"> + +List recipe versions in team + +```sql +SELECT +id, +version_id, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +other_contents, +performance, +policy, +quick_start_guide, +release_notes, +release_type, +setup, +status, +storage_version, +total_file_count, +total_size_in_bytes +FROM nvidia.private_registry.recipe_versions +WHERE team_name = '{{ team_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND sort_order = '{{ sort_order }}' +AND release_type = '{{ release_type }}' +; +``` +</TabItem> +<TabItem value="list"> + +List recipe versions in org + +```sql +SELECT +id, +version_id, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +other_contents, +performance, +policy, +quick_start_guide, +release_notes, +release_type, +setup, +status, +storage_version, +total_file_count, +total_size_in_bytes +FROM nvidia.private_registry.recipe_versions +WHERE recipe_name = '{{ recipe_name }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND sort_order = '{{ sort_order }}' +AND release_type = '{{ release_type }}' +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create_by_team" + values={[ + { label: 'create_by_team', value: 'create_by_team' }, + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create_by_team"> + +Create recipe version in team. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org + +```sql +INSERT INTO nvidia.private_registry.recipe_versions ( +accuracy_reached, +batch_size, +custom_metrics, +description, +gpu_model, +id, +memory_footprint, +number_of_epochs, +other_contents, +performance, +quick_start_guide, +release_notes, +setup, +version_id, +team_name, +recipe_name +) +SELECT +{{ accuracy_reached }}, +{{ batch_size }}, +'{{ custom_metrics }}', +'{{ description }}', +'{{ gpu_model }}', +{{ id }}, +'{{ memory_footprint }}', +{{ number_of_epochs }}, +'{{ other_contents }}', +'{{ performance }}', +'{{ quick_start_guide }}', +'{{ release_notes }}', +'{{ setup }}', +'{{ version_id }}', +'{{ team_name }}', +'{{ recipe_name }}' +RETURNING +recipe, +recipe_version, +request_status +; +``` +</TabItem> +<TabItem value="create"> + +Create recipe version in org. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org + +```sql +INSERT INTO nvidia.private_registry.recipe_versions ( +accuracy_reached, +batch_size, +custom_metrics, +description, +gpu_model, +id, +memory_footprint, +number_of_epochs, +other_contents, +performance, +quick_start_guide, +release_notes, +setup, +version_id, +recipe_name +) +SELECT +{{ accuracy_reached }}, +{{ batch_size }}, +'{{ custom_metrics }}', +'{{ description }}', +'{{ gpu_model }}', +{{ id }}, +'{{ memory_footprint }}', +{{ number_of_epochs }}, +'{{ other_contents }}', +'{{ performance }}', +'{{ quick_start_guide }}', +'{{ release_notes }}', +'{{ setup }}', +'{{ version_id }}', +'{{ recipe_name }}' +RETURNING +recipe, +recipe_version, +request_status +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: recipe_versions + props: + - name: team_name + value: "{{ team_name }}" + description: Required parameter for the recipe_versions resource. + - name: recipe_name + value: "{{ recipe_name }}" + description: Required parameter for the recipe_versions resource. + - name: accuracy_reached + value: {{ accuracy_reached }} + description: | + Accuracy this recipe reached + - name: batch_size + value: {{ batch_size }} + description: | + Batch size this recipe was trained with + - name: custom_metrics + value: + - attributes: "{{ attributes }}" + name: "{{ name }}" + - name: description + value: "{{ description }}" + description: | + Description of the recipe version + - name: gpu_model + value: "{{ gpu_model }}" + description: | + GPU model and memory + - name: id + value: {{ id }} + description: | + Deprecated: Please use version instead. Unique ID of the version + - name: memory_footprint + value: "{{ memory_footprint }}" + description: | + Recipe size/memory footprint for inference + - name: number_of_epochs + value: {{ number_of_epochs }} + description: | + Number of epochs this recipe trained + - name: other_contents + value: + - key: "{{ key }}" + value: "{{ value }}" + - name: performance + value: "{{ performance }}" + description: | + Text describing performance of the recipe results + - name: quick_start_guide + value: "{{ quick_start_guide }}" + description: | + Text with a guide to getting started + - name: release_notes + value: "{{ release_notes }}" + description: | + Text describing this release + - name: setup + value: "{{ setup }}" + description: | + Text describing recipe setup + - name: version_id + value: "{{ version_id }}" + description: | + Unique version id. Please use this instead of 'id' +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update_by_team" + values={[ + { label: 'update_by_team', value: 'update_by_team' }, + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update_by_team"> + +Update recipe version information in team e.g. upload status + +```sql +UPDATE nvidia.private_registry.recipe_versions +SET +accuracy_reached = {{ accuracy_reached }}, +batch_size = {{ batch_size }}, +custom_metrics = '{{ custom_metrics }}', +description = '{{ description }}', +gpu_model = '{{ gpu_model }}', +memory_footprint = '{{ memory_footprint }}', +number_of_epochs = {{ number_of_epochs }}, +other_contents = '{{ other_contents }}', +performance = '{{ performance }}', +quick_start_guide = '{{ quick_start_guide }}', +release_notes = '{{ release_notes }}', +setup = '{{ setup }}', +status = '{{ status }}' +WHERE +team_name = '{{ team_name }}' --required +AND recipe_name = '{{ recipe_name }}' --required +AND version_id = '{{ version_id }}' --required +AND create-zip = {{ create-zip}} +AND set-latest = {{ set-latest}} +RETURNING +recipe, +recipe_version, +request_status; +``` +</TabItem> +<TabItem value="update"> + +Update recipe version information in org e.g. upload status + +```sql +UPDATE nvidia.private_registry.recipe_versions +SET +accuracy_reached = {{ accuracy_reached }}, +batch_size = {{ batch_size }}, +custom_metrics = '{{ custom_metrics }}', +description = '{{ description }}', +gpu_model = '{{ gpu_model }}', +memory_footprint = '{{ memory_footprint }}', +number_of_epochs = {{ number_of_epochs }}, +other_contents = '{{ other_contents }}', +performance = '{{ performance }}', +quick_start_guide = '{{ quick_start_guide }}', +release_notes = '{{ release_notes }}', +setup = '{{ setup }}', +status = '{{ status }}' +WHERE +recipe_name = '{{ recipe_name }}' --required +AND version_id = '{{ version_id }}' --required +AND create-zip = {{ create-zip}} +AND set-latest = {{ set-latest}} +RETURNING +recipe, +recipe_version, +request_status; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/recipes/index.md b/website/docs/services/private_registry/recipes/index.md new file mode 100644 index 0000000..07abd7e --- /dev/null +++ b/website/docs/services/private_registry/recipes/index.md @@ -0,0 +1,1414 @@ +--- +title: recipes +hide_title: false +hide_table_of_contents: false +keywords: + - recipes + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>recipes</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="recipes" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.recipes" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the recipe belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the recipe belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="advanced" /></td> + <td><code>string</code></td> + <td>Text for describing advanced information</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td> (CLASSIFICATION, OBJECT_DETECTION, SEGMENTATION, TRANSLATION, TEXT_TO_SPEECH, RECOMMENDER, SENTIMENT, NLP, KUBEFLOW_PIPELINE, OTHER, SPEAKER_VERIFICATION, PUNCTUATION_AND_CAPITALIZATION, DIALOG_STATE_TRACKING, SPEAKER_DIARIZATION, SPEAKER_RECOGNITION, SPEECH_SYNTHESIS, VOICE_ACTIVITY_DETECTION, SPEECH_RECOGNITION, LANGUAGE_MODELING, NAMED_ENTITY_RECOGNITION, TEXT_CLASSIFICATION, TEXT_PROCESSING, QUESTION_ANSWERING, CONTENT_GENERATION)</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the recipe (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the recipe has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if recipe is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this recipe is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model this recipe produces (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td> (FP16, FP32, INT8, FPBOTH, OTHER, ALL)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this recipe</td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="related_models" /></td> + <td><code>array</code></td> + <td> (wire: relatedModels)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the recipe (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="training_framework" /></td> + <td><code>string</code></td> + <td> (TensorFlow, Caffe2, CNTK, Torch, PyTorch, MXNet, Keras, Other, TransferLearningToolkit, TensorFlow2) (wire: trainingFramework)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the recipe belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the recipe belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="advanced" /></td> + <td><code>string</code></td> + <td>Text for describing advanced information</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td> (CLASSIFICATION, OBJECT_DETECTION, SEGMENTATION, TRANSLATION, TEXT_TO_SPEECH, RECOMMENDER, SENTIMENT, NLP, KUBEFLOW_PIPELINE, OTHER, SPEAKER_VERIFICATION, PUNCTUATION_AND_CAPITALIZATION, DIALOG_STATE_TRACKING, SPEAKER_DIARIZATION, SPEAKER_RECOGNITION, SPEECH_SYNTHESIS, VOICE_ACTIVITY_DETECTION, SPEECH_RECOGNITION, LANGUAGE_MODELING, NAMED_ENTITY_RECOGNITION, TEXT_CLASSIFICATION, TEXT_PROCESSING, QUESTION_ANSWERING, CONTENT_GENERATION)</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the recipe (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the recipe has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if recipe is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this recipe is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model this recipe produces (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td> (FP16, FP32, INT8, FPBOTH, OTHER, ALL)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this recipe</td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="related_models" /></td> + <td><code>array</code></td> + <td> (wire: relatedModels)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the recipe (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="training_framework" /></td> + <td><code>string</code></td> + <td> (TensorFlow, Caffe2, CNTK, Torch, PyTorch, MXNet, Keras, Other, TransferLearningToolkit, TensorFlow2) (wire: trainingFramework)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the recipe belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the recipe belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="advanced" /></td> + <td><code>string</code></td> + <td>Text for describing advanced information</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td> (CLASSIFICATION, OBJECT_DETECTION, SEGMENTATION, TRANSLATION, TEXT_TO_SPEECH, RECOMMENDER, SENTIMENT, NLP, KUBEFLOW_PIPELINE, OTHER, SPEAKER_VERIFICATION, PUNCTUATION_AND_CAPITALIZATION, DIALOG_STATE_TRACKING, SPEAKER_DIARIZATION, SPEAKER_RECOGNITION, SPEECH_SYNTHESIS, VOICE_ACTIVITY_DETECTION, SPEECH_RECOGNITION, LANGUAGE_MODELING, NAMED_ENTITY_RECOGNITION, TEXT_CLASSIFICATION, TEXT_PROCESSING, QUESTION_ANSWERING, CONTENT_GENERATION)</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the recipe (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the recipe has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if recipe is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this recipe is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model this recipe produces (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td> (FP16, FP32, INT8, FPBOTH, OTHER, ALL)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this recipe</td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="related_models" /></td> + <td><code>array</code></td> + <td> (wire: relatedModels)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the recipe (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="training_framework" /></td> + <td><code>string</code></td> + <td> (TensorFlow, Caffe2, CNTK, Torch, PyTorch, MXNet, Keras, Other, TransferLearningToolkit, TensorFlow2) (wire: trainingFramework)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the recipe belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the recipe belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="advanced" /></td> + <td><code>string</code></td> + <td>Text for describing advanced information</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td> (CLASSIFICATION, OBJECT_DETECTION, SEGMENTATION, TRANSLATION, TEXT_TO_SPEECH, RECOMMENDER, SENTIMENT, NLP, KUBEFLOW_PIPELINE, OTHER, SPEAKER_VERIFICATION, PUNCTUATION_AND_CAPITALIZATION, DIALOG_STATE_TRACKING, SPEAKER_DIARIZATION, SPEAKER_RECOGNITION, SPEECH_SYNTHESIS, VOICE_ACTIVITY_DETECTION, SPEECH_RECOGNITION, LANGUAGE_MODELING, NAMED_ENTITY_RECOGNITION, TEXT_CLASSIFICATION, TEXT_PROCESSING, QUESTION_ANSWERING, CONTENT_GENERATION)</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the recipe (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the recipe has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if recipe is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this recipe is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model this recipe produces (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td> (FP16, FP32, INT8, FPBOTH, OTHER, ALL)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this recipe</td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="related_models" /></td> + <td><code>array</code></td> + <td> (wire: relatedModels)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the recipe (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="training_framework" /></td> + <td><code>string</code></td> + <td> (TensorFlow, Caffe2, CNTK, Torch, PyTorch, MXNet, Keras, Other, TransferLearningToolkit, TensorFlow2) (wire: trainingFramework)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td><a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>Get recipe details in team</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td><a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>Get recipe in org</td> +</tr> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a></td> + <td><a href="#parameter-app_name"><code>app_name</code></a>, <a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>List recipes the user can access in the specified org and team</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td><a href="#parameter-app_name"><code>app_name</code></a>, <a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>List recipes the user can access in the specified org</td> +</tr> +<tr> + <td><a href="#create_by_team"><CopyableCode code="create_by_team" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-application"><code>application</code></a>, <a href="#parameter-model_format"><code>model_format</code></a>, <a href="#parameter-name"><code>name</code></a>, <a href="#parameter-precision"><code>precision</code></a>, <a href="#parameter-public_dataset_used"><code>public_dataset_used</code></a>, <a href="#parameter-short_description"><code>short_description</code></a>, <a href="#parameter-training_framework"><code>training_framework</code></a></td> + <td></td> + <td>Create recipe in team</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-application"><code>application</code></a>, <a href="#parameter-model_format"><code>model_format</code></a>, <a href="#parameter-name"><code>name</code></a>, <a href="#parameter-precision"><code>precision</code></a>, <a href="#parameter-public_dataset_used"><code>public_dataset_used</code></a>, <a href="#parameter-short_description"><code>short_description</code></a>, <a href="#parameter-training_framework"><code>training_framework</code></a></td> + <td></td> + <td>Create recipe in org</td> +</tr> +<tr> + <td><a href="#update_by_team"><CopyableCode code="update_by_team" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td></td> + <td>Update recipe details in team</td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td></td> + <td>Update recipe details in org</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-recipe_name"> + <td><CopyableCode code="recipe_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Recipe name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-app_name"> + <td><CopyableCode code="app_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Application name</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-remove_unresolved_labels"> + <td><CopyableCode code="remove_unresolved_labels" /></td> + <td><code>boolean</code></td> + <td>Remove unresolved labels</td> +</tr> +<tr id="parameter-resolve_labels"> + <td><CopyableCode code="resolve_labels" /></td> + <td><code>boolean</code></td> + <td>Resolve labels</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +Get recipe details in team + +```sql +SELECT +name, +latest_version_id, +display_name, +org_name, +team_name, +access_type, +advanced, +application, +built_by, +can_guest_download, +created_date, +description, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +performance, +policy_labels, +precision, +product_names, +public_dataset_used, +publisher, +quick_start_guide, +related_models, +setup, +short_description, +training_framework, +updated_date +FROM nvidia.private_registry.recipes +WHERE team_name = '{{ team_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="get"> + +Get recipe in org + +```sql +SELECT +name, +latest_version_id, +display_name, +org_name, +team_name, +access_type, +advanced, +application, +built_by, +can_guest_download, +created_date, +description, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +performance, +policy_labels, +precision, +product_names, +public_dataset_used, +publisher, +quick_start_guide, +related_models, +setup, +short_description, +training_framework, +updated_date +FROM nvidia.private_registry.recipes +WHERE recipe_name = '{{ recipe_name }}' -- required +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="list_by_team"> + +List recipes the user can access in the specified org and team + +```sql +SELECT +name, +latest_version_id, +display_name, +org_name, +team_name, +access_type, +advanced, +application, +built_by, +can_guest_download, +created_date, +description, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +performance, +policy_labels, +precision, +product_names, +public_dataset_used, +publisher, +quick_start_guide, +related_models, +setup, +short_description, +training_framework, +updated_date +FROM nvidia.private_registry.recipes +WHERE team_name = '{{ team_name }}' -- required +AND app_name = '{{ app_name }}' +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="list"> + +List recipes the user can access in the specified org + +```sql +SELECT +name, +latest_version_id, +display_name, +org_name, +team_name, +access_type, +advanced, +application, +built_by, +can_guest_download, +created_date, +description, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +performance, +policy_labels, +precision, +product_names, +public_dataset_used, +publisher, +quick_start_guide, +related_models, +setup, +short_description, +training_framework, +updated_date +FROM nvidia.private_registry.recipes +WHERE app_name = '{{ app_name }}' +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create_by_team" + values={[ + { label: 'create_by_team', value: 'create_by_team' }, + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create_by_team"> + +Create recipe in team + +```sql +INSERT INTO nvidia.private_registry.recipes ( +advanced, +application, +built_by, +description, +display_name, +labels, +labels_v2, +license_terms, +logo, +model_format, +name, +performance, +precision, +public_dataset_used, +publisher, +quick_start_guide, +setup, +short_description, +training_framework, +team_name +) +SELECT +'{{ advanced }}', +'{{ application }}' /* required */, +'{{ built_by }}', +'{{ description }}', +'{{ display_name }}', +'{{ labels }}', +'{{ labels_v2 }}', +'{{ license_terms }}', +'{{ logo }}', +'{{ model_format }}' /* required */, +'{{ name }}' /* required */, +'{{ performance }}', +'{{ precision }}' /* required */, +'{{ public_dataset_used }}' /* required */, +'{{ publisher }}', +'{{ quick_start_guide }}', +'{{ setup }}', +'{{ short_description }}' /* required */, +'{{ training_framework }}' /* required */, +'{{ team_name }}' +RETURNING +recipe, +request_status +; +``` +</TabItem> +<TabItem value="create"> + +Create recipe in org + +```sql +INSERT INTO nvidia.private_registry.recipes ( +advanced, +application, +built_by, +description, +display_name, +labels, +labels_v2, +license_terms, +logo, +model_format, +name, +performance, +precision, +public_dataset_used, +publisher, +quick_start_guide, +setup, +short_description, +training_framework +) +SELECT +'{{ advanced }}', +'{{ application }}' /* required */, +'{{ built_by }}', +'{{ description }}', +'{{ display_name }}', +'{{ labels }}', +'{{ labels_v2 }}', +'{{ license_terms }}', +'{{ logo }}', +'{{ model_format }}' /* required */, +'{{ name }}' /* required */, +'{{ performance }}', +'{{ precision }}' /* required */, +'{{ public_dataset_used }}' /* required */, +'{{ publisher }}', +'{{ quick_start_guide }}', +'{{ setup }}', +'{{ short_description }}' /* required */, +'{{ training_framework }}' /* required */ +RETURNING +recipe, +request_status +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: recipes + props: + - name: team_name + value: "{{ team_name }}" + description: Required parameter for the recipes resource. + - name: advanced + value: "{{ advanced }}" + description: | + Text for describing advanced information + - name: application + value: "{{ application }}" + valid_values: ['CLASSIFICATION', 'OBJECT_DETECTION', 'SEGMENTATION', 'TRANSLATION', 'TEXT_TO_SPEECH', 'RECOMMENDER', 'SENTIMENT', 'NLP', 'KUBEFLOW_PIPELINE', 'OTHER', 'SPEAKER_VERIFICATION', 'PUNCTUATION_AND_CAPITALIZATION', 'DIALOG_STATE_TRACKING', 'SPEAKER_DIARIZATION', 'SPEAKER_RECOGNITION', 'SPEECH_SYNTHESIS', 'VOICE_ACTIVITY_DETECTION', 'SPEECH_RECOGNITION', 'LANGUAGE_MODELING', 'NAMED_ENTITY_RECOGNITION', 'TEXT_CLASSIFICATION', 'TEXT_PROCESSING', 'QUESTION_ANSWERING', 'CONTENT_GENERATION'] + - name: built_by + value: "{{ built_by }}" + description: | + organization that built the recipe + - name: description + value: "{{ description }}" + description: | + Description of the recipe + - name: display_name + value: "{{ display_name }}" + description: | + Display name + - name: labels + value: + - "{{ labels }}" + - name: labels_v2 + value: + - "{{ labels_v2 }}" + - name: license_terms + value: + - configuredLicenseTerms: + download: + artifactType: "{{ artifactType }}" + generatedHtml: "{{ generatedHtml }}" + tags: + - category: "{{ category }}" + key: "{{ key }}" + label: "{{ label }}" + tag: "{{ tag }}" + url: "{{ url }}" + hosting: + artifactType: "{{ artifactType }}" + generatedHtml: "{{ generatedHtml }}" + tags: + - category: "{{ category }}" + key: "{{ key }}" + label: "{{ label }}" + tag: "{{ tag }}" + url: "{{ url }}" + governingTerms: "{{ governingTerms }}" + licenseId: "{{ licenseId }}" + licenseVersion: "{{ licenseVersion }}" + needsAcceptance: {{ needsAcceptance }} + - name: logo + value: "{{ logo }}" + description: | + URL for the logo image + - name: model_format + value: "{{ model_format }}" + description: | + Format of the model this recipe produces + - name: name + value: "{{ name }}" + description: | + Unique name of the recipe + - name: performance + value: "{{ performance }}" + description: | + Text describing performance of the recipe results + - name: precision + value: "{{ precision }}" + valid_values: ['FP16', 'FP32', 'INT8', 'FPBOTH', 'OTHER', 'ALL'] + - name: public_dataset_used + value: + license: "{{ license }}" + link: "{{ link }}" + name: "{{ name }}" + - name: publisher + value: "{{ publisher }}" + description: | + organization that published the recipe + - name: quick_start_guide + value: "{{ quick_start_guide }}" + description: | + Text with a guide to getting started + - name: setup + value: "{{ setup }}" + description: | + Text describing recipe setup + - name: short_description + value: "{{ short_description }}" + description: | + Short description of the recipe + - name: training_framework + value: "{{ training_framework }}" + valid_values: ['TensorFlow', 'Caffe2', 'CNTK', 'Torch', 'PyTorch', 'MXNet', 'Keras', 'Other', 'TransferLearningToolkit', 'TensorFlow2'] +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update_by_team" + values={[ + { label: 'update_by_team', value: 'update_by_team' }, + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update_by_team"> + +Update recipe details in team + +```sql +UPDATE nvidia.private_registry.recipes +SET +advanced = '{{ advanced }}', +application = '{{ application }}', +built_by = '{{ built_by }}', +description = '{{ description }}', +display_name = '{{ display_name }}', +labels = '{{ labels }}', +labels_v2 = '{{ labels_v2 }}', +license_terms = '{{ license_terms }}', +logo = '{{ logo }}', +model_format = '{{ model_format }}', +performance = '{{ performance }}', +precision = '{{ precision }}', +public_dataset_used = '{{ public_dataset_used }}', +publisher = '{{ publisher }}', +quick_start_guide = '{{ quick_start_guide }}', +related_models = '{{ related_models }}', +setup = '{{ setup }}', +short_description = '{{ short_description }}', +training_framework = '{{ training_framework }}' +WHERE +team_name = '{{ team_name }}' --required +AND recipe_name = '{{ recipe_name }}' --required +RETURNING +recipe, +request_status; +``` +</TabItem> +<TabItem value="update"> + +Update recipe details in org + +```sql +UPDATE nvidia.private_registry.recipes +SET +advanced = '{{ advanced }}', +application = '{{ application }}', +built_by = '{{ built_by }}', +description = '{{ description }}', +display_name = '{{ display_name }}', +labels = '{{ labels }}', +labels_v2 = '{{ labels_v2 }}', +license_terms = '{{ license_terms }}', +logo = '{{ logo }}', +model_format = '{{ model_format }}', +performance = '{{ performance }}', +precision = '{{ precision }}', +public_dataset_used = '{{ public_dataset_used }}', +publisher = '{{ publisher }}', +quick_start_guide = '{{ quick_start_guide }}', +related_models = '{{ related_models }}', +setup = '{{ setup }}', +short_description = '{{ short_description }}', +training_framework = '{{ training_framework }}' +WHERE +recipe_name = '{{ recipe_name }}' --required +RETURNING +recipe, +request_status; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/repository_associated_models/index.md b/website/docs/services/private_registry/repository_associated_models/index.md new file mode 100644 index 0000000..4e44d5f --- /dev/null +++ b/website/docs/services/private_registry/repository_associated_models/index.md @@ -0,0 +1,865 @@ +--- +title: repository_associated_models +hide_title: false +hide_table_of_contents: false +keywords: + - repository_associated_models + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>repository_associated_models</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="repository_associated_models" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.repository_associated_models" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list_by_tag_by_team" + values={[ + { label: 'list_by_tag_by_team', value: 'list_by_tag_by_team' }, + { label: 'list_by_tag', value: 'list_by_tag' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_tag_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this model reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this model was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this model (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the model version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>Model size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this model trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_container_configuration" /></td> + <td><code>object</code></td> + <td>NVCF container configuration parameters (wire: nvcfContainerConfiguration)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_deployment_specification" /></td> + <td><code>object</code></td> + <td>NVCF deployment specification (wire: nvcfDeploymentSpecification)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the model in bytes (wire: totalSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list_by_tag"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this model reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this model was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this model (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the model version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>Model size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this model trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_container_configuration" /></td> + <td><code>object</code></td> + <td>NVCF container configuration parameters (wire: nvcfContainerConfiguration)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_deployment_specification" /></td> + <td><code>object</code></td> + <td>NVCF deployment specification (wire: nvcfDeploymentSpecification)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the model in bytes (wire: totalSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this model reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this model was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this model (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the model version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>Model size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this model trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_container_configuration" /></td> + <td><code>object</code></td> + <td>NVCF container configuration parameters (wire: nvcfContainerConfiguration)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_deployment_specification" /></td> + <td><code>object</code></td> + <td>NVCF deployment specification (wire: nvcfDeploymentSpecification)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the model in bytes (wire: totalSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="owner_name" /></td> + <td><code>string</code></td> + <td>Name of the user who owns this version (wire: ownerName)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this model reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this model was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this model (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the model version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>Model size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this model trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_container_configuration" /></td> + <td><code>object</code></td> + <td>NVCF container configuration parameters (wire: nvcfContainerConfiguration)</td> +</tr> +<tr> + <td><CopyableCode code="nvcf_deployment_specification" /></td> + <td><code>object</code></td> + <td>NVCF deployment specification (wire: nvcfDeploymentSpecification)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the model in bytes (wire: totalSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list_by_tag_by_team"><CopyableCode code="list_by_tag_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-container_name"><code>container_name</code></a>, <a href="#parameter-container_tag"><code>container_tag</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-sort_order"><code>sort_order</code></a></td> + <td>List associated model versions by container</td> +</tr> +<tr> + <td><a href="#list_by_tag"><CopyableCode code="list_by_tag" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-container_name"><code>container_name</code></a>, <a href="#parameter-container_tag"><code>container_tag</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-sort_order"><code>sort_order</code></a></td> + <td>List associated model versions by container</td> +</tr> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-container_name"><code>container_name</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-sort_order"><code>sort_order</code></a></td> + <td>List associated model versions by container</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-container_name"><code>container_name</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-sort_order"><code>sort_order</code></a></td> + <td>List associated model versions by container</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-container_name"> + <td><CopyableCode code="container_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Container name</td> +</tr> +<tr id="parameter-container_tag"> + <td><CopyableCode code="container_tag" /></td> + <td><code>string (UTF-8)</code></td> + <td>Container tag</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-sort_order"> + <td><CopyableCode code="sort_order" /></td> + <td><code>string (UTF-8)</code></td> + <td>Sort order</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list_by_tag_by_team" + values={[ + { label: 'list_by_tag_by_team', value: 'list_by_tag_by_team' }, + { label: 'list_by_tag', value: 'list_by_tag' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_tag_by_team"> + +List associated model versions by container + +```sql +SELECT +id, +version_id, +owner_name, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +nvcf_container_configuration, +nvcf_deployment_specification, +other_contents, +policy, +release_type, +status, +storage_version, +total_file_count, +total_size_in_bytes, +updated_date +FROM nvidia.private_registry.repository_associated_models +WHERE team_name = '{{ team_name }}' -- required +AND container_name = '{{ container_name }}' -- required +AND container_tag = '{{ container_tag }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND sort_order = '{{ sort_order }}' +; +``` +</TabItem> +<TabItem value="list_by_tag"> + +List associated model versions by container + +```sql +SELECT +id, +version_id, +owner_name, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +nvcf_container_configuration, +nvcf_deployment_specification, +other_contents, +policy, +release_type, +status, +storage_version, +total_file_count, +total_size_in_bytes, +updated_date +FROM nvidia.private_registry.repository_associated_models +WHERE container_name = '{{ container_name }}' -- required +AND container_tag = '{{ container_tag }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND sort_order = '{{ sort_order }}' +; +``` +</TabItem> +<TabItem value="list_by_team"> + +List associated model versions by container + +```sql +SELECT +id, +version_id, +owner_name, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +nvcf_container_configuration, +nvcf_deployment_specification, +other_contents, +policy, +release_type, +status, +storage_version, +total_file_count, +total_size_in_bytes, +updated_date +FROM nvidia.private_registry.repository_associated_models +WHERE team_name = '{{ team_name }}' -- required +AND container_name = '{{ container_name }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND sort_order = '{{ sort_order }}' +; +``` +</TabItem> +<TabItem value="list"> + +List associated model versions by container + +```sql +SELECT +id, +version_id, +owner_name, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +nvcf_container_configuration, +nvcf_deployment_specification, +other_contents, +policy, +release_type, +status, +storage_version, +total_file_count, +total_size_in_bytes, +updated_date +FROM nvidia.private_registry.repository_associated_models +WHERE container_name = '{{ container_name }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND sort_order = '{{ sort_order }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/resource_files/index.md b/website/docs/services/private_registry/resource_files/index.md new file mode 100644 index 0000000..0d4fbe5 --- /dev/null +++ b/website/docs/services/private_registry/resource_files/index.md @@ -0,0 +1,250 @@ +--- +title: resource_files +hide_title: false +hide_table_of_contents: false +keywords: + - resource_files + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>resource_files</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="resource_files" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.resource_files" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the file</td> +</tr> +<tr> + <td><CopyableCode code="path" /></td> + <td><code>string</code></td> + <td>Relative file path from the root of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="sha256_base64" /></td> + <td><code>string</code></td> + <td>Base64 encoded sha256 hash of the artifact file</td> +</tr> +<tr> + <td><CopyableCode code="size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the file in bytes (wire: sizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the file</td> +</tr> +<tr> + <td><CopyableCode code="path" /></td> + <td><code>string</code></td> + <td>Relative file path from the root of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="sha256_base64" /></td> + <td><code>string</code></td> + <td>Base64 encoded sha256 hash of the artifact file</td> +</tr> +<tr> + <td><CopyableCode code="size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the file in bytes (wire: sizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_reference"><code>page_reference</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>List recipe files in team</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-recipe_name"><code>recipe_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_reference"><code>page_reference</code></a>, <a href="#parameter-page_number"><code>page_number</code></a></td> + <td>List recipe files in org</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-recipe_name"> + <td><CopyableCode code="recipe_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Recipe name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_reference"> + <td><CopyableCode code="page_reference" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page reference</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="list_by_team" + values={[ + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="list_by_team"> + +List recipe files in team + +```sql +SELECT +created_date, +description, +path, +sha256_base64, +size_in_bytes +FROM nvidia.private_registry.resource_files +WHERE team_name = '{{ team_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND version_id = '{{ version_id }}' -- required +AND page_size = '{{ page_size }}' +AND page_reference = '{{ page_reference }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +<TabItem value="list"> + +List recipe files in org + +```sql +SELECT +created_date, +description, +path, +sha256_base64, +size_in_bytes +FROM nvidia.private_registry.resource_files +WHERE recipe_name = '{{ recipe_name }}' -- required +AND version_id = '{{ version_id }}' -- required +AND page_size = '{{ page_size }}' +AND page_reference = '{{ page_reference }}' +AND page_number = '{{ page_number }}' +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/resource_versions/index.md b/website/docs/services/private_registry/resource_versions/index.md new file mode 100644 index 0000000..24c495a --- /dev/null +++ b/website/docs/services/private_registry/resource_versions/index.md @@ -0,0 +1,1154 @@ +--- +title: resource_versions +hide_title: false +hide_table_of_contents: false +keywords: + - resource_versions + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>resource_versions</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="resource_versions" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.resource_versions" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this recipe reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this recipe was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this recipe (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>recipe size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this recipe trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="release_notes" /></td> + <td><code>string</code></td> + <td>Text describing this release (wire: releaseNotes)</td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the recipe in bytes (wire: totalSizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this recipe reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this recipe was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this recipe (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>recipe size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this recipe trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="release_notes" /></td> + <td><code>string</code></td> + <td>Text describing this release (wire: releaseNotes)</td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the recipe in bytes (wire: totalSizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this recipe reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this recipe was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this recipe (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>recipe size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this recipe trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="release_notes" /></td> + <td><code>string</code></td> + <td>Text describing this release (wire: releaseNotes)</td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the recipe in bytes (wire: totalSizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use versionId instead. Unique ID of the version</td> +</tr> +<tr> + <td><CopyableCode code="version_id" /></td> + <td><code>string</code></td> + <td>Unique version id. Please use this instead of 'id' (wire: versionId)</td> +</tr> +<tr> + <td><CopyableCode code="accuracy_reached" /></td> + <td><code>number (float)</code></td> + <td>Accuracy this recipe reached (wire: accuracyReached)</td> +</tr> +<tr> + <td><CopyableCode code="batch_size" /></td> + <td><code>integer (int64)</code></td> + <td>Batch size this recipe was trained with (wire: batchSize)</td> +</tr> +<tr> + <td><CopyableCode code="created_by_user" /></td> + <td><code>string</code></td> + <td>Id of the user who created this recipe (wire: createdByUser)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="custom_metrics" /></td> + <td><code>array</code></td> + <td> (wire: customMetrics)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe version</td> +</tr> +<tr> + <td><CopyableCode code="gpu_model" /></td> + <td><code>string</code></td> + <td>GPU model and memory (wire: gpuModel)</td> +</tr> +<tr> + <td><CopyableCode code="is_signed" /></td> + <td><code>boolean</code></td> + <td>Indicates if the version is signed (wire: isSigned)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_date" /></td> + <td><code>string</code></td> + <td>Scan date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: malwareScanDate)</td> +</tr> +<tr> + <td><CopyableCode code="malware_scan_status" /></td> + <td><code>string</code></td> + <td>Malware scan status (NOT_SCANNED, IN_PROGRESS, CLEAN, SUSPICIOUS, FAILED, MALICIOUS) (wire: malwareScanStatus)</td> +</tr> +<tr> + <td><CopyableCode code="memory_footprint" /></td> + <td><code>string</code></td> + <td>recipe size/memory footprint for inference (wire: memoryFootprint)</td> +</tr> +<tr> + <td><CopyableCode code="number_of_epochs" /></td> + <td><code>integer (int64)</code></td> + <td>Number of epochs this recipe trained (wire: numberOfEpochs)</td> +</tr> +<tr> + <td><CopyableCode code="other_contents" /></td> + <td><code>array</code></td> + <td> (wire: otherContents)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="release_notes" /></td> + <td><code>string</code></td> + <td>Text describing this release (wire: releaseNotes)</td> +</tr> +<tr> + <td><CopyableCode code="release_type" /></td> + <td><code>string</code></td> + <td>Release type enum for the artifact version in the product lifecycle. (BETA, GA, EA, FEATURE, PRODUCTION, LTSB) (wire: releaseType)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Version status (UPLOAD_PENDING, UPLOAD_COMPLETE)</td> +</tr> +<tr> + <td><CopyableCode code="storage_version" /></td> + <td><code>string</code></td> + <td>The storage version i.e. the format the file and their contents are persisted in in object store. Possible values include V1 - for legacy artifact versions with files, V2 - for new artifact versions with blob registry, `` - for artifact versions without any files. (wire: storageVersion)</td> +</tr> +<tr> + <td><CopyableCode code="total_file_count" /></td> + <td><code>integer (int64)</code></td> + <td>Total file count (wire: totalFileCount)</td> +</tr> +<tr> + <td><CopyableCode code="total_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Total size of the recipe in bytes (wire: totalSizeInBytes)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Get recipe version in team</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-recipe_name"><code>recipe_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td></td> + <td>Get recipe version in org</td> +</tr> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-sort_order"><code>sort_order</code></a>, <a href="#parameter-release_type"><code>release_type</code></a></td> + <td>List recipe versions in team</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td><a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-sort_order"><code>sort_order</code></a>, <a href="#parameter-release_type"><code>release_type</code></a></td> + <td>List recipe versions in org</td> +</tr> +<tr> + <td><a href="#create_by_team"><CopyableCode code="create_by_team" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td></td> + <td>Create recipe version in team. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https:​//semver.org</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td></td> + <td>Create recipe version in org. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https:​//semver.org</td> +</tr> +<tr> + <td><a href="#update_by_team"><CopyableCode code="update_by_team" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-create_zip"><code>create_zip</code></a>, <a href="#parameter-set_latest"><code>set_latest</code></a></td> + <td>Update recipe version information in team e.g. upload status</td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-recipe_name"><code>recipe_name</code></a>, <a href="#parameter-version_id"><code>version_id</code></a></td> + <td><a href="#parameter-create_zip"><code>create_zip</code></a>, <a href="#parameter-set_latest"><code>set_latest</code></a></td> + <td>Update recipe version information in org e.g. upload status</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-recipe_name"> + <td><CopyableCode code="recipe_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Recipe name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-version_id"> + <td><CopyableCode code="version_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Version ID</td> +</tr> +<tr id="parameter-create_zip"> + <td><CopyableCode code="create_zip" /></td> + <td><code>boolean</code></td> + <td>Create zip of version content</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-release_type"> + <td><CopyableCode code="release_type" /></td> + <td><code>string (UTF-8)</code></td> + <td>Release Type</td> +</tr> +<tr id="parameter-set_latest"> + <td><CopyableCode code="set_latest" /></td> + <td><code>boolean</code></td> + <td>Set version to latest</td> +</tr> +<tr id="parameter-sort_order"> + <td><CopyableCode code="sort_order" /></td> + <td><code>string (UTF-8)</code></td> + <td>Sort order</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +Get recipe version in team + +```sql +SELECT +id, +version_id, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +other_contents, +performance, +policy, +quick_start_guide, +release_notes, +release_type, +setup, +status, +storage_version, +total_file_count, +total_size_in_bytes +FROM nvidia.private_registry.resource_versions +WHERE team_name = '{{ team_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND version_id = '{{ version_id }}' -- required +; +``` +</TabItem> +<TabItem value="get"> + +Get recipe version in org + +```sql +SELECT +id, +version_id, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +other_contents, +performance, +policy, +quick_start_guide, +release_notes, +release_type, +setup, +status, +storage_version, +total_file_count, +total_size_in_bytes +FROM nvidia.private_registry.resource_versions +WHERE recipe_name = '{{ recipe_name }}' -- required +AND version_id = '{{ version_id }}' -- required +; +``` +</TabItem> +<TabItem value="list_by_team"> + +List recipe versions in team + +```sql +SELECT +id, +version_id, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +other_contents, +performance, +policy, +quick_start_guide, +release_notes, +release_type, +setup, +status, +storage_version, +total_file_count, +total_size_in_bytes +FROM nvidia.private_registry.resource_versions +WHERE team_name = '{{ team_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND sort_order = '{{ sort_order }}' +AND release_type = '{{ release_type }}' +; +``` +</TabItem> +<TabItem value="list"> + +List recipe versions in org + +```sql +SELECT +id, +version_id, +accuracy_reached, +batch_size, +created_by_user, +created_date, +custom_metrics, +description, +gpu_model, +is_signed, +malware_scan_date, +malware_scan_status, +memory_footprint, +number_of_epochs, +other_contents, +performance, +policy, +quick_start_guide, +release_notes, +release_type, +setup, +status, +storage_version, +total_file_count, +total_size_in_bytes +FROM nvidia.private_registry.resource_versions +WHERE recipe_name = '{{ recipe_name }}' -- required +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND sort_order = '{{ sort_order }}' +AND release_type = '{{ release_type }}' +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create_by_team" + values={[ + { label: 'create_by_team', value: 'create_by_team' }, + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create_by_team"> + +Create recipe version in team. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org + +```sql +INSERT INTO nvidia.private_registry.resource_versions ( +accuracy_reached, +batch_size, +custom_metrics, +description, +gpu_model, +id, +memory_footprint, +number_of_epochs, +other_contents, +performance, +quick_start_guide, +release_notes, +setup, +version_id, +team_name, +recipe_name +) +SELECT +{{ accuracy_reached }}, +{{ batch_size }}, +'{{ custom_metrics }}', +'{{ description }}', +'{{ gpu_model }}', +{{ id }}, +'{{ memory_footprint }}', +{{ number_of_epochs }}, +'{{ other_contents }}', +'{{ performance }}', +'{{ quick_start_guide }}', +'{{ release_notes }}', +'{{ setup }}', +'{{ version_id }}', +'{{ team_name }}', +'{{ recipe_name }}' +RETURNING +recipe, +recipe_version, +request_status +; +``` +</TabItem> +<TabItem value="create"> + +Create recipe version in org. Please use the string versionId and not the deprecated numeric id. Semantic Versioning is recommended https://semver.org + +```sql +INSERT INTO nvidia.private_registry.resource_versions ( +accuracy_reached, +batch_size, +custom_metrics, +description, +gpu_model, +id, +memory_footprint, +number_of_epochs, +other_contents, +performance, +quick_start_guide, +release_notes, +setup, +version_id, +recipe_name +) +SELECT +{{ accuracy_reached }}, +{{ batch_size }}, +'{{ custom_metrics }}', +'{{ description }}', +'{{ gpu_model }}', +{{ id }}, +'{{ memory_footprint }}', +{{ number_of_epochs }}, +'{{ other_contents }}', +'{{ performance }}', +'{{ quick_start_guide }}', +'{{ release_notes }}', +'{{ setup }}', +'{{ version_id }}', +'{{ recipe_name }}' +RETURNING +recipe, +recipe_version, +request_status +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: resource_versions + props: + - name: team_name + value: "{{ team_name }}" + description: Required parameter for the resource_versions resource. + - name: recipe_name + value: "{{ recipe_name }}" + description: Required parameter for the resource_versions resource. + - name: accuracy_reached + value: {{ accuracy_reached }} + description: | + Accuracy this recipe reached + - name: batch_size + value: {{ batch_size }} + description: | + Batch size this recipe was trained with + - name: custom_metrics + value: + - attributes: "{{ attributes }}" + name: "{{ name }}" + - name: description + value: "{{ description }}" + description: | + Description of the recipe version + - name: gpu_model + value: "{{ gpu_model }}" + description: | + GPU model and memory + - name: id + value: {{ id }} + description: | + Deprecated: Please use version instead. Unique ID of the version + - name: memory_footprint + value: "{{ memory_footprint }}" + description: | + Recipe size/memory footprint for inference + - name: number_of_epochs + value: {{ number_of_epochs }} + description: | + Number of epochs this recipe trained + - name: other_contents + value: + - key: "{{ key }}" + value: "{{ value }}" + - name: performance + value: "{{ performance }}" + description: | + Text describing performance of the recipe results + - name: quick_start_guide + value: "{{ quick_start_guide }}" + description: | + Text with a guide to getting started + - name: release_notes + value: "{{ release_notes }}" + description: | + Text describing this release + - name: setup + value: "{{ setup }}" + description: | + Text describing recipe setup + - name: version_id + value: "{{ version_id }}" + description: | + Unique version id. Please use this instead of 'id' +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update_by_team" + values={[ + { label: 'update_by_team', value: 'update_by_team' }, + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update_by_team"> + +Update recipe version information in team e.g. upload status + +```sql +UPDATE nvidia.private_registry.resource_versions +SET +accuracy_reached = {{ accuracy_reached }}, +batch_size = {{ batch_size }}, +custom_metrics = '{{ custom_metrics }}', +description = '{{ description }}', +gpu_model = '{{ gpu_model }}', +memory_footprint = '{{ memory_footprint }}', +number_of_epochs = {{ number_of_epochs }}, +other_contents = '{{ other_contents }}', +performance = '{{ performance }}', +quick_start_guide = '{{ quick_start_guide }}', +release_notes = '{{ release_notes }}', +setup = '{{ setup }}', +status = '{{ status }}' +WHERE +team_name = '{{ team_name }}' --required +AND recipe_name = '{{ recipe_name }}' --required +AND version_id = '{{ version_id }}' --required +AND create-zip = {{ create-zip}} +AND set-latest = {{ set-latest}} +RETURNING +recipe, +recipe_version, +request_status; +``` +</TabItem> +<TabItem value="update"> + +Update recipe version information in org e.g. upload status + +```sql +UPDATE nvidia.private_registry.resource_versions +SET +accuracy_reached = {{ accuracy_reached }}, +batch_size = {{ batch_size }}, +custom_metrics = '{{ custom_metrics }}', +description = '{{ description }}', +gpu_model = '{{ gpu_model }}', +memory_footprint = '{{ memory_footprint }}', +number_of_epochs = {{ number_of_epochs }}, +other_contents = '{{ other_contents }}', +performance = '{{ performance }}', +quick_start_guide = '{{ quick_start_guide }}', +release_notes = '{{ release_notes }}', +setup = '{{ setup }}', +status = '{{ status }}' +WHERE +recipe_name = '{{ recipe_name }}' --required +AND version_id = '{{ version_id }}' --required +AND create-zip = {{ create-zip}} +AND set-latest = {{ set-latest}} +RETURNING +recipe, +recipe_version, +request_status; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/resources/index.md b/website/docs/services/private_registry/resources/index.md new file mode 100644 index 0000000..994d166 --- /dev/null +++ b/website/docs/services/private_registry/resources/index.md @@ -0,0 +1,1461 @@ +--- +title: resources +hide_title: false +hide_table_of_contents: false +keywords: + - resources + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>resources</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="resources" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.resources" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the recipe belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the recipe belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="advanced" /></td> + <td><code>string</code></td> + <td>Text for describing advanced information</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td> (CLASSIFICATION, OBJECT_DETECTION, SEGMENTATION, TRANSLATION, TEXT_TO_SPEECH, RECOMMENDER, SENTIMENT, NLP, KUBEFLOW_PIPELINE, OTHER, SPEAKER_VERIFICATION, PUNCTUATION_AND_CAPITALIZATION, DIALOG_STATE_TRACKING, SPEAKER_DIARIZATION, SPEAKER_RECOGNITION, SPEECH_SYNTHESIS, VOICE_ACTIVITY_DETECTION, SPEECH_RECOGNITION, LANGUAGE_MODELING, NAMED_ENTITY_RECOGNITION, TEXT_CLASSIFICATION, TEXT_PROCESSING, QUESTION_ANSWERING, CONTENT_GENERATION)</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the recipe (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the recipe has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if recipe is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this recipe is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model this recipe produces (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td> (FP16, FP32, INT8, FPBOTH, OTHER, ALL)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this recipe</td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="related_models" /></td> + <td><code>array</code></td> + <td> (wire: relatedModels)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the recipe (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="training_framework" /></td> + <td><code>string</code></td> + <td> (TensorFlow, Caffe2, CNTK, Torch, PyTorch, MXNet, Keras, Other, TransferLearningToolkit, TensorFlow2) (wire: trainingFramework)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the recipe belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the recipe belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="advanced" /></td> + <td><code>string</code></td> + <td>Text for describing advanced information</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td> (CLASSIFICATION, OBJECT_DETECTION, SEGMENTATION, TRANSLATION, TEXT_TO_SPEECH, RECOMMENDER, SENTIMENT, NLP, KUBEFLOW_PIPELINE, OTHER, SPEAKER_VERIFICATION, PUNCTUATION_AND_CAPITALIZATION, DIALOG_STATE_TRACKING, SPEAKER_DIARIZATION, SPEAKER_RECOGNITION, SPEECH_SYNTHESIS, VOICE_ACTIVITY_DETECTION, SPEECH_RECOGNITION, LANGUAGE_MODELING, NAMED_ENTITY_RECOGNITION, TEXT_CLASSIFICATION, TEXT_PROCESSING, QUESTION_ANSWERING, CONTENT_GENERATION)</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the recipe (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the recipe has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if recipe is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this recipe is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model this recipe produces (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td> (FP16, FP32, INT8, FPBOTH, OTHER, ALL)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this recipe</td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="related_models" /></td> + <td><code>array</code></td> + <td> (wire: relatedModels)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the recipe (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="training_framework" /></td> + <td><code>string</code></td> + <td> (TensorFlow, Caffe2, CNTK, Torch, PyTorch, MXNet, Keras, Other, TransferLearningToolkit, TensorFlow2) (wire: trainingFramework)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the recipe belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the recipe belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="advanced" /></td> + <td><code>string</code></td> + <td>Text for describing advanced information</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td> (CLASSIFICATION, OBJECT_DETECTION, SEGMENTATION, TRANSLATION, TEXT_TO_SPEECH, RECOMMENDER, SENTIMENT, NLP, KUBEFLOW_PIPELINE, OTHER, SPEAKER_VERIFICATION, PUNCTUATION_AND_CAPITALIZATION, DIALOG_STATE_TRACKING, SPEAKER_DIARIZATION, SPEAKER_RECOGNITION, SPEECH_SYNTHESIS, VOICE_ACTIVITY_DETECTION, SPEECH_RECOGNITION, LANGUAGE_MODELING, NAMED_ENTITY_RECOGNITION, TEXT_CLASSIFICATION, TEXT_PROCESSING, QUESTION_ANSWERING, CONTENT_GENERATION)</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the recipe (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the recipe has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if recipe is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this recipe is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model this recipe produces (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td> (FP16, FP32, INT8, FPBOTH, OTHER, ALL)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this recipe</td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="related_models" /></td> + <td><code>array</code></td> + <td> (wire: relatedModels)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the recipe (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="training_framework" /></td> + <td><code>string</code></td> + <td> (TensorFlow, Caffe2, CNTK, Torch, PyTorch, MXNet, Keras, Other, TransferLearningToolkit, TensorFlow2) (wire: trainingFramework)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="list"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="name" /></td> + <td><code>string</code></td> + <td>Unique name of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id" /></td> + <td><code>integer (int64)</code></td> + <td>Deprecated: Please use latestVersionIdStr instead. ID of the latest version (wire: latestVersionId)</td> +</tr> +<tr> + <td><CopyableCode code="display_name" /></td> + <td><code>string</code></td> + <td>Display name (wire: displayName)</td> +</tr> +<tr> + <td><CopyableCode code="org_name" /></td> + <td><code>string</code></td> + <td>Name of the org that the recipe belongs to (wire: orgName)</td> +</tr> +<tr> + <td><CopyableCode code="team_name" /></td> + <td><code>string</code></td> + <td>Name of the team that the recipe belongs to (wire: teamName)</td> +</tr> +<tr> + <td><CopyableCode code="access_type" /></td> + <td><code>string</code></td> + <td> (LISTED, EXCLUSIVE, NOT_LISTED) (wire: accessType)</td> +</tr> +<tr> + <td><CopyableCode code="advanced" /></td> + <td><code>string</code></td> + <td>Text for describing advanced information</td> +</tr> +<tr> + <td><CopyableCode code="application" /></td> + <td><code>string</code></td> + <td> (CLASSIFICATION, OBJECT_DETECTION, SEGMENTATION, TRANSLATION, TEXT_TO_SPEECH, RECOMMENDER, SENTIMENT, NLP, KUBEFLOW_PIPELINE, OTHER, SPEAKER_VERIFICATION, PUNCTUATION_AND_CAPITALIZATION, DIALOG_STATE_TRACKING, SPEAKER_DIARIZATION, SPEAKER_RECOGNITION, SPEECH_SYNTHESIS, VOICE_ACTIVITY_DETECTION, SPEECH_RECOGNITION, LANGUAGE_MODELING, NAMED_ENTITY_RECOGNITION, TEXT_CLASSIFICATION, TEXT_PROCESSING, QUESTION_ANSWERING, CONTENT_GENERATION)</td> +</tr> +<tr> + <td><CopyableCode code="built_by" /></td> + <td><code>string</code></td> + <td>Organization that built the recipe (wire: builtBy)</td> +</tr> +<tr> + <td><CopyableCode code="can_guest_download" /></td> + <td><code>boolean</code></td> + <td>Indicates if a guest user can download (wire: canGuestDownload)</td> +</tr> +<tr> + <td><CopyableCode code="created_date" /></td> + <td><code>string</code></td> + <td>Creation date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: createdDate)</td> +</tr> +<tr> + <td><CopyableCode code="description" /></td> + <td><code>string</code></td> + <td>Description of the recipe</td> +</tr> +<tr> + <td><CopyableCode code="has_signed_version" /></td> + <td><code>boolean</code></td> + <td>Indicates if the recipe has any signed versions (wire: hasSignedVersion)</td> +</tr> +<tr> + <td><CopyableCode code="is_favourite" /></td> + <td><code>boolean</code></td> + <td>Flag indicating if recipe is user's favorite (wire: isFavourite)</td> +</tr> +<tr> + <td><CopyableCode code="is_public" /></td> + <td><code>boolean</code></td> + <td>Determines if this recipe is publicly accessible (wire: isPublic)</td> +</tr> +<tr> + <td><CopyableCode code="is_read_only" /></td> + <td><code>boolean</code></td> + <td>indicate if current user has read only permissions (deprecated) (wire: isReadOnly)</td> +</tr> +<tr> + <td><CopyableCode code="labels" /></td> + <td><code>array</code></td> + <td></td> +</tr> +<tr> + <td><CopyableCode code="latest_version_id_str" /></td> + <td><code>string</code></td> + <td>ID of the latest version (wire: latestVersionIdStr)</td> +</tr> +<tr> + <td><CopyableCode code="latest_version_size_in_bytes" /></td> + <td><code>integer (int64)</code></td> + <td>Size of the latest version in bytes (wire: latestVersionSizeInBytes)</td> +</tr> +<tr> + <td><CopyableCode code="license_terms" /></td> + <td><code>array</code></td> + <td> (wire: licenseTerms)</td> +</tr> +<tr> + <td><CopyableCode code="logo" /></td> + <td><code>string</code></td> + <td>URL for the logo image</td> +</tr> +<tr> + <td><CopyableCode code="model_format" /></td> + <td><code>string</code></td> + <td>Format of the model this recipe produces (wire: modelFormat)</td> +</tr> +<tr> + <td><CopyableCode code="performance" /></td> + <td><code>string</code></td> + <td>Text describing performance of the recipe results</td> +</tr> +<tr> + <td><CopyableCode code="policy_labels" /></td> + <td><code>array</code></td> + <td> (wire: policyLabels)</td> +</tr> +<tr> + <td><CopyableCode code="precision" /></td> + <td><code>string</code></td> + <td> (FP16, FP32, INT8, FPBOTH, OTHER, ALL)</td> +</tr> +<tr> + <td><CopyableCode code="product_names" /></td> + <td><code>array</code></td> + <td> (wire: productNames)</td> +</tr> +<tr> + <td><CopyableCode code="public_dataset_used" /></td> + <td><code>object</code></td> + <td> (wire: publicDatasetUsed)</td> +</tr> +<tr> + <td><CopyableCode code="publisher" /></td> + <td><code>string</code></td> + <td>Organization that published this recipe</td> +</tr> +<tr> + <td><CopyableCode code="quick_start_guide" /></td> + <td><code>string</code></td> + <td>Text with a guide to getting started (wire: quickStartGuide)</td> +</tr> +<tr> + <td><CopyableCode code="related_models" /></td> + <td><code>array</code></td> + <td> (wire: relatedModels)</td> +</tr> +<tr> + <td><CopyableCode code="setup" /></td> + <td><code>string</code></td> + <td>Text describing recipe setup</td> +</tr> +<tr> + <td><CopyableCode code="short_description" /></td> + <td><code>string</code></td> + <td>Short description of the recipe (wire: shortDescription)</td> +</tr> +<tr> + <td><CopyableCode code="training_framework" /></td> + <td><code>string</code></td> + <td> (TensorFlow, Caffe2, CNTK, Torch, PyTorch, MXNet, Keras, Other, TransferLearningToolkit, TensorFlow2) (wire: trainingFramework)</td> +</tr> +<tr> + <td><CopyableCode code="updated_date" /></td> + <td><code>string</code></td> + <td>Updated date in ISO-8601 format (pattern: <code>\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+Z</code>) (wire: updatedDate)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td><a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>Get recipe details in team</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td><a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>Get recipe in org</td> +</tr> +<tr> + <td><a href="#list_by_team"><CopyableCode code="list_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a></td> + <td><a href="#parameter-app_name"><code>app_name</code></a>, <a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>List recipes the user can access in the specified org and team</td> +</tr> +<tr> + <td><a href="#list"><CopyableCode code="list" /></a></td> + <td><CopyableCode code="select" /></td> + <td></td> + <td><a href="#parameter-app_name"><code>app_name</code></a>, <a href="#parameter-page_size"><code>page_size</code></a>, <a href="#parameter-page_number"><code>page_number</code></a>, <a href="#parameter-resolve_labels"><code>resolve_labels</code></a>, <a href="#parameter-remove_unresolved_labels"><code>remove_unresolved_labels</code></a></td> + <td>List recipes the user can access in the specified org</td> +</tr> +<tr> + <td><a href="#create_by_team"><CopyableCode code="create_by_team" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-application"><code>application</code></a>, <a href="#parameter-model_format"><code>model_format</code></a>, <a href="#parameter-name"><code>name</code></a>, <a href="#parameter-precision"><code>precision</code></a>, <a href="#parameter-public_dataset_used"><code>public_dataset_used</code></a>, <a href="#parameter-short_description"><code>short_description</code></a>, <a href="#parameter-training_framework"><code>training_framework</code></a></td> + <td></td> + <td>Create recipe in team</td> +</tr> +<tr> + <td><a href="#create"><CopyableCode code="create" /></a></td> + <td><CopyableCode code="insert" /></td> + <td><a href="#parameter-application"><code>application</code></a>, <a href="#parameter-model_format"><code>model_format</code></a>, <a href="#parameter-name"><code>name</code></a>, <a href="#parameter-precision"><code>precision</code></a>, <a href="#parameter-public_dataset_used"><code>public_dataset_used</code></a>, <a href="#parameter-short_description"><code>short_description</code></a>, <a href="#parameter-training_framework"><code>training_framework</code></a></td> + <td></td> + <td>Create recipe in org</td> +</tr> +<tr> + <td><a href="#update_by_team"><CopyableCode code="update_by_team" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td></td> + <td>Update recipe details in team</td> +</tr> +<tr> + <td><a href="#update"><CopyableCode code="update" /></a></td> + <td><CopyableCode code="update" /></td> + <td><a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td></td> + <td>Update recipe details in org</td> +</tr> +<tr> + <td><a href="#delete_by_team"><CopyableCode code="delete_by_team" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-team_name"><code>team_name</code></a>, <a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td></td> + <td>This operation deletes a resource in the org/team (SDK evidence: ngcsdk registry/api/resources.py remove; not declared in the published definition).</td> +</tr> +<tr> + <td><a href="#delete"><CopyableCode code="delete" /></a></td> + <td><CopyableCode code="delete" /></td> + <td><a href="#parameter-recipe_name"><code>recipe_name</code></a></td> + <td></td> + <td>This operation deletes a resource in the org (SDK evidence: ngcsdk registry/api/resources.py remove; not declared in the published definition).</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-recipe_name"> + <td><CopyableCode code="recipe_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Recipe name</td> +</tr> +<tr id="parameter-team_name"> + <td><CopyableCode code="team_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-app_name"> + <td><CopyableCode code="app_name" /></td> + <td><code>string (UTF-8)</code></td> + <td>Application name</td> +</tr> +<tr id="parameter-page_number"> + <td><CopyableCode code="page_number" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page number - zero based index</td> +</tr> +<tr id="parameter-page_size"> + <td><CopyableCode code="page_size" /></td> + <td><code>string (UTF-8)</code></td> + <td>Page size</td> +</tr> +<tr id="parameter-remove_unresolved_labels"> + <td><CopyableCode code="remove_unresolved_labels" /></td> + <td><code>boolean</code></td> + <td>Remove unresolved labels</td> +</tr> +<tr id="parameter-resolve_labels"> + <td><CopyableCode code="resolve_labels" /></td> + <td><code>boolean</code></td> + <td>Resolve labels</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' }, + { label: 'list_by_team', value: 'list_by_team' }, + { label: 'list', value: 'list' } + ]} +> +<TabItem value="get_by_team"> + +Get recipe details in team + +```sql +SELECT +name, +latest_version_id, +display_name, +org_name, +team_name, +access_type, +advanced, +application, +built_by, +can_guest_download, +created_date, +description, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +performance, +policy_labels, +precision, +product_names, +public_dataset_used, +publisher, +quick_start_guide, +related_models, +setup, +short_description, +training_framework, +updated_date +FROM nvidia.private_registry.resources +WHERE team_name = '{{ team_name }}' -- required +AND recipe_name = '{{ recipe_name }}' -- required +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="get"> + +Get recipe in org + +```sql +SELECT +name, +latest_version_id, +display_name, +org_name, +team_name, +access_type, +advanced, +application, +built_by, +can_guest_download, +created_date, +description, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +performance, +policy_labels, +precision, +product_names, +public_dataset_used, +publisher, +quick_start_guide, +related_models, +setup, +short_description, +training_framework, +updated_date +FROM nvidia.private_registry.resources +WHERE recipe_name = '{{ recipe_name }}' -- required +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="list_by_team"> + +List recipes the user can access in the specified org and team + +```sql +SELECT +name, +latest_version_id, +display_name, +org_name, +team_name, +access_type, +advanced, +application, +built_by, +can_guest_download, +created_date, +description, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +performance, +policy_labels, +precision, +product_names, +public_dataset_used, +publisher, +quick_start_guide, +related_models, +setup, +short_description, +training_framework, +updated_date +FROM nvidia.private_registry.resources +WHERE team_name = '{{ team_name }}' -- required +AND app_name = '{{ app_name }}' +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +<TabItem value="list"> + +List recipes the user can access in the specified org + +```sql +SELECT +name, +latest_version_id, +display_name, +org_name, +team_name, +access_type, +advanced, +application, +built_by, +can_guest_download, +created_date, +description, +has_signed_version, +is_favourite, +is_public, +is_read_only, +labels, +latest_version_id_str, +latest_version_size_in_bytes, +license_terms, +logo, +model_format, +performance, +policy_labels, +precision, +product_names, +public_dataset_used, +publisher, +quick_start_guide, +related_models, +setup, +short_description, +training_framework, +updated_date +FROM nvidia.private_registry.resources +WHERE app_name = '{{ app_name }}' +AND page_size = '{{ page_size }}' +AND page_number = '{{ page_number }}' +AND resolve_labels = '{{ resolve_labels }}' +AND remove_unresolved_labels = '{{ remove_unresolved_labels }}' +; +``` +</TabItem> +</Tabs> + + +## `INSERT` examples + +<Tabs + defaultValue="create_by_team" + values={[ + { label: 'create_by_team', value: 'create_by_team' }, + { label: 'create', value: 'create' }, + { label: 'Manifest', value: 'manifest' } + ]} +> +<TabItem value="create_by_team"> + +Create recipe in team + +```sql +INSERT INTO nvidia.private_registry.resources ( +advanced, +application, +built_by, +description, +display_name, +labels, +labels_v2, +license_terms, +logo, +model_format, +name, +performance, +precision, +public_dataset_used, +publisher, +quick_start_guide, +setup, +short_description, +training_framework, +team_name +) +SELECT +'{{ advanced }}', +'{{ application }}' /* required */, +'{{ built_by }}', +'{{ description }}', +'{{ display_name }}', +'{{ labels }}', +'{{ labels_v2 }}', +'{{ license_terms }}', +'{{ logo }}', +'{{ model_format }}' /* required */, +'{{ name }}' /* required */, +'{{ performance }}', +'{{ precision }}' /* required */, +'{{ public_dataset_used }}' /* required */, +'{{ publisher }}', +'{{ quick_start_guide }}', +'{{ setup }}', +'{{ short_description }}' /* required */, +'{{ training_framework }}' /* required */, +'{{ team_name }}' +RETURNING +recipe, +request_status +; +``` +</TabItem> +<TabItem value="create"> + +Create recipe in org + +```sql +INSERT INTO nvidia.private_registry.resources ( +advanced, +application, +built_by, +description, +display_name, +labels, +labels_v2, +license_terms, +logo, +model_format, +name, +performance, +precision, +public_dataset_used, +publisher, +quick_start_guide, +setup, +short_description, +training_framework +) +SELECT +'{{ advanced }}', +'{{ application }}' /* required */, +'{{ built_by }}', +'{{ description }}', +'{{ display_name }}', +'{{ labels }}', +'{{ labels_v2 }}', +'{{ license_terms }}', +'{{ logo }}', +'{{ model_format }}' /* required */, +'{{ name }}' /* required */, +'{{ performance }}', +'{{ precision }}' /* required */, +'{{ public_dataset_used }}' /* required */, +'{{ publisher }}', +'{{ quick_start_guide }}', +'{{ setup }}', +'{{ short_description }}' /* required */, +'{{ training_framework }}' /* required */ +RETURNING +recipe, +request_status +; +``` +</TabItem> +<TabItem value="manifest"> + +<CodeBlock language="yaml">{`# Description fields are for documentation purposes +- name: resources + props: + - name: team_name + value: "{{ team_name }}" + description: Required parameter for the resources resource. + - name: advanced + value: "{{ advanced }}" + description: | + Text for describing advanced information + - name: application + value: "{{ application }}" + valid_values: ['CLASSIFICATION', 'OBJECT_DETECTION', 'SEGMENTATION', 'TRANSLATION', 'TEXT_TO_SPEECH', 'RECOMMENDER', 'SENTIMENT', 'NLP', 'KUBEFLOW_PIPELINE', 'OTHER', 'SPEAKER_VERIFICATION', 'PUNCTUATION_AND_CAPITALIZATION', 'DIALOG_STATE_TRACKING', 'SPEAKER_DIARIZATION', 'SPEAKER_RECOGNITION', 'SPEECH_SYNTHESIS', 'VOICE_ACTIVITY_DETECTION', 'SPEECH_RECOGNITION', 'LANGUAGE_MODELING', 'NAMED_ENTITY_RECOGNITION', 'TEXT_CLASSIFICATION', 'TEXT_PROCESSING', 'QUESTION_ANSWERING', 'CONTENT_GENERATION'] + - name: built_by + value: "{{ built_by }}" + description: | + organization that built the recipe + - name: description + value: "{{ description }}" + description: | + Description of the recipe + - name: display_name + value: "{{ display_name }}" + description: | + Display name + - name: labels + value: + - "{{ labels }}" + - name: labels_v2 + value: + - "{{ labels_v2 }}" + - name: license_terms + value: + - configuredLicenseTerms: + download: + artifactType: "{{ artifactType }}" + generatedHtml: "{{ generatedHtml }}" + tags: + - category: "{{ category }}" + key: "{{ key }}" + label: "{{ label }}" + tag: "{{ tag }}" + url: "{{ url }}" + hosting: + artifactType: "{{ artifactType }}" + generatedHtml: "{{ generatedHtml }}" + tags: + - category: "{{ category }}" + key: "{{ key }}" + label: "{{ label }}" + tag: "{{ tag }}" + url: "{{ url }}" + governingTerms: "{{ governingTerms }}" + licenseId: "{{ licenseId }}" + licenseVersion: "{{ licenseVersion }}" + needsAcceptance: {{ needsAcceptance }} + - name: logo + value: "{{ logo }}" + description: | + URL for the logo image + - name: model_format + value: "{{ model_format }}" + description: | + Format of the model this recipe produces + - name: name + value: "{{ name }}" + description: | + Unique name of the recipe + - name: performance + value: "{{ performance }}" + description: | + Text describing performance of the recipe results + - name: precision + value: "{{ precision }}" + valid_values: ['FP16', 'FP32', 'INT8', 'FPBOTH', 'OTHER', 'ALL'] + - name: public_dataset_used + value: + license: "{{ license }}" + link: "{{ link }}" + name: "{{ name }}" + - name: publisher + value: "{{ publisher }}" + description: | + organization that published the recipe + - name: quick_start_guide + value: "{{ quick_start_guide }}" + description: | + Text with a guide to getting started + - name: setup + value: "{{ setup }}" + description: | + Text describing recipe setup + - name: short_description + value: "{{ short_description }}" + description: | + Short description of the recipe + - name: training_framework + value: "{{ training_framework }}" + valid_values: ['TensorFlow', 'Caffe2', 'CNTK', 'Torch', 'PyTorch', 'MXNet', 'Keras', 'Other', 'TransferLearningToolkit', 'TensorFlow2'] +`}</CodeBlock> + +</TabItem> +</Tabs> + + +## `UPDATE` examples + +<Tabs + defaultValue="update_by_team" + values={[ + { label: 'update_by_team', value: 'update_by_team' }, + { label: 'update', value: 'update' } + ]} +> +<TabItem value="update_by_team"> + +Update recipe details in team + +```sql +UPDATE nvidia.private_registry.resources +SET +advanced = '{{ advanced }}', +application = '{{ application }}', +built_by = '{{ built_by }}', +description = '{{ description }}', +display_name = '{{ display_name }}', +labels = '{{ labels }}', +labels_v2 = '{{ labels_v2 }}', +license_terms = '{{ license_terms }}', +logo = '{{ logo }}', +model_format = '{{ model_format }}', +performance = '{{ performance }}', +precision = '{{ precision }}', +public_dataset_used = '{{ public_dataset_used }}', +publisher = '{{ publisher }}', +quick_start_guide = '{{ quick_start_guide }}', +related_models = '{{ related_models }}', +setup = '{{ setup }}', +short_description = '{{ short_description }}', +training_framework = '{{ training_framework }}' +WHERE +team_name = '{{ team_name }}' --required +AND recipe_name = '{{ recipe_name }}' --required +RETURNING +recipe, +request_status; +``` +</TabItem> +<TabItem value="update"> + +Update recipe details in org + +```sql +UPDATE nvidia.private_registry.resources +SET +advanced = '{{ advanced }}', +application = '{{ application }}', +built_by = '{{ built_by }}', +description = '{{ description }}', +display_name = '{{ display_name }}', +labels = '{{ labels }}', +labels_v2 = '{{ labels_v2 }}', +license_terms = '{{ license_terms }}', +logo = '{{ logo }}', +model_format = '{{ model_format }}', +performance = '{{ performance }}', +precision = '{{ precision }}', +public_dataset_used = '{{ public_dataset_used }}', +publisher = '{{ publisher }}', +quick_start_guide = '{{ quick_start_guide }}', +related_models = '{{ related_models }}', +setup = '{{ setup }}', +short_description = '{{ short_description }}', +training_framework = '{{ training_framework }}' +WHERE +recipe_name = '{{ recipe_name }}' --required +RETURNING +recipe, +request_status; +``` +</TabItem> +</Tabs> + + +## `DELETE` examples + +<Tabs + defaultValue="delete_by_team" + values={[ + { label: 'delete_by_team', value: 'delete_by_team' }, + { label: 'delete', value: 'delete' } + ]} +> +<TabItem value="delete_by_team"> + +This operation deletes a resource in the org/team (SDK evidence: ngcsdk registry/api/resources.py remove; not declared in the published definition). + +```sql +DELETE FROM nvidia.private_registry.resources +WHERE team_name = '{{ team_name }}' --required +AND recipe_name = '{{ recipe_name }}' --required +; +``` +</TabItem> +<TabItem value="delete"> + +This operation deletes a resource in the org (SDK evidence: ngcsdk registry/api/resources.py remove; not declared in the published definition). + +```sql +DELETE FROM nvidia.private_registry.resources +WHERE recipe_name = '{{ recipe_name }}' --required +; +``` +</TabItem> +</Tabs> diff --git a/website/docs/services/private_registry/workflows/index.md b/website/docs/services/private_registry/workflows/index.md new file mode 100644 index 0000000..5803ba9 --- /dev/null +++ b/website/docs/services/private_registry/workflows/index.md @@ -0,0 +1,258 @@ +--- +title: workflows +hide_title: false +hide_table_of_contents: false +keywords: + - workflows + - private_registry + - nvidia + - infrastructure_as_code + - configuration_as_data + - cloud inventory +description: Query, deploy and manage nvidia resources using SQL +custom_edit_url: null +image: /img/stackql-nvidia-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a <code>workflows</code> resource. + +## Overview +<table><tbody> +<tr><td><b>Name</b></td><td><CopyableCode code="workflows" /></td></tr> +<tr><td><b>Type</b></td><td>Resource</td></tr> +<tr><td><b>Id</b></td><td><CopyableCode code="nvidia.private_registry.workflows" /></td></tr> +</tbody></table> + +## Fields + +The following fields are returned by `SELECT` queries: + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' } + ]} +> +<TabItem value="get_by_team"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="clone_status" /></td> + <td><code>object</code></td> + <td>Progress of cloning artifact version files (wire: cloneStatus)</td> +</tr> +<tr> + <td><CopyableCode code="duration" /></td> + <td><code>string</code></td> + <td>Wall-clock execution duration as an ISO-8601 duration (e.g. PT1H30M5S, PT0.001S); Omitted while IN_PROGRESS.</td> +</tr> +<tr> + <td><CopyableCode code="end_time" /></td> + <td><code>string (date_time)</code></td> + <td>UTC instant when the workflow reached a closed state; omitted while IN_PROGRESS. (wire: endTime)</td> +</tr> +<tr> + <td><CopyableCode code="message" /></td> + <td><code>string</code></td> + <td>Human-readable message about the workflow status</td> +</tr> +<tr> + <td><CopyableCode code="request_status" /></td> + <td><code>object</code></td> + <td>Request status information (wire: requestStatus)</td> +</tr> +<tr> + <td><CopyableCode code="start_time" /></td> + <td><code>string (date_time)</code></td> + <td>UTC instant when the workflow execution started. (wire: startTime)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Current status of the workflow (IN_PROGRESS, COMPLETED, FAILED, CANCELED, TERMINATED, CONTINUED_AS_NEW, TIMED_OUT, UNKNOWN)</td> +</tr> +<tr> + <td><CopyableCode code="workflow_type" /></td> + <td><code>string</code></td> + <td>Workflow type. (CLONE, CUSTOMER_MANAGED_KEY) (wire: workflowType)</td> +</tr> +</tbody> +</table> +</TabItem> +<TabItem value="get"> + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><CopyableCode code="clone_status" /></td> + <td><code>object</code></td> + <td>Progress of cloning artifact version files (wire: cloneStatus)</td> +</tr> +<tr> + <td><CopyableCode code="duration" /></td> + <td><code>string</code></td> + <td>Wall-clock execution duration as an ISO-8601 duration (e.g. PT1H30M5S, PT0.001S); Omitted while IN_PROGRESS.</td> +</tr> +<tr> + <td><CopyableCode code="end_time" /></td> + <td><code>string (date_time)</code></td> + <td>UTC instant when the workflow reached a closed state; omitted while IN_PROGRESS. (wire: endTime)</td> +</tr> +<tr> + <td><CopyableCode code="message" /></td> + <td><code>string</code></td> + <td>Human-readable message about the workflow status</td> +</tr> +<tr> + <td><CopyableCode code="request_status" /></td> + <td><code>object</code></td> + <td>Request status information (wire: requestStatus)</td> +</tr> +<tr> + <td><CopyableCode code="start_time" /></td> + <td><code>string (date_time)</code></td> + <td>UTC instant when the workflow execution started. (wire: startTime)</td> +</tr> +<tr> + <td><CopyableCode code="status" /></td> + <td><code>string</code></td> + <td>Current status of the workflow (IN_PROGRESS, COMPLETED, FAILED, CANCELED, TERMINATED, CONTINUED_AS_NEW, TIMED_OUT, UNKNOWN)</td> +</tr> +<tr> + <td><CopyableCode code="workflow_type" /></td> + <td><code>string</code></td> + <td>Workflow type. (CLONE, CUSTOMER_MANAGED_KEY) (wire: workflowType)</td> +</tr> +</tbody> +</table> +</TabItem> +</Tabs> + +## Methods + +The following methods are available for this resource: + +<table> +<thead> + <tr> + <th>Name</th> + <th>Accessible by</th> + <th>Required Params</th> + <th>Optional Params</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr> + <td><a href="#get_by_team"><CopyableCode code="get_by_team" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-team"><code>team</code></a>, <a href="#parameter-workflow_id"><code>workflow_id</code></a></td> + <td></td> + <td>Returns the current status (pending, running, completed, or failed) of an artifact-registry Temporal workflow execution within the specified organization and team.</td> +</tr> +<tr> + <td><a href="#get"><CopyableCode code="get" /></a></td> + <td><CopyableCode code="select" /></td> + <td><a href="#parameter-workflow_id"><code>workflow_id</code></a></td> + <td></td> + <td>Returns the current status (pending, running, completed, or failed) of an artifact-registry Temporal workflow execution within the specified organization.</td> +</tr> +</tbody> +</table> + +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + +<table> +<thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> +</thead> +<tbody> +<tr id="parameter-team"> + <td><CopyableCode code="team" /></td> + <td><code>string (UTF-8)</code></td> + <td>Team name</td> +</tr> +<tr id="parameter-workflow_id"> + <td><CopyableCode code="workflow_id" /></td> + <td><code>string (UTF-8)</code></td> + <td>Workflow identifier</td> +</tr> +</tbody> +</table> + +## `SELECT` examples + +<Tabs + defaultValue="get_by_team" + values={[ + { label: 'get_by_team', value: 'get_by_team' }, + { label: 'get', value: 'get' } + ]} +> +<TabItem value="get_by_team"> + +Returns the current status (pending, running, completed, or failed) of an artifact-registry Temporal workflow execution within the specified organization and team. + +```sql +SELECT +clone_status, +duration, +end_time, +message, +request_status, +start_time, +status, +workflow_type +FROM nvidia.private_registry.workflows +WHERE team = '{{ team }}' -- required +AND workflow_id = '{{ workflow_id }}' -- required +; +``` +</TabItem> +<TabItem value="get"> + +Returns the current status (pending, running, completed, or failed) of an artifact-registry Temporal workflow execution within the specified organization. + +```sql +SELECT +clone_status, +duration, +end_time, +message, +request_status, +start_time, +status, +workflow_type +FROM nvidia.private_registry.workflows +WHERE workflow_id = '{{ workflow_id }}' -- required +; +``` +</TabItem> +</Tabs> diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js new file mode 100644 index 0000000..01d3ea6 --- /dev/null +++ b/website/docusaurus.config.js @@ -0,0 +1,43 @@ +import {themes as prismThemes} from 'prism-react-renderer'; +import { createConfig } from './.shared-config/index.js'; +import { providerName, providerTitle } from './provider.js'; + +const config = createConfig({ + providerName, + providerTitle, + prismThemes, + overrides: { + // Docusaurus Faster (rspack + swc, via @docusaurus/faster), consistent + // with the other provider microsites. + future: { + v4: true, + faster: true, + }, + }, +}); + +// Date-stamp every doc page ("Last updated on ..."). The pages are +// regenerated and committed on every provider refresh, so the stamp is the +// regeneration date. +config.presets[0][1].docs.showLastUpdateTime = true; + +// Use the locally vendored registry-branded logos (STACKQL>> | REGISTRY) +// instead of the shared config's hotlinked main-site wordmark - +// self-contained assets, no cross-origin fetch. global.css swaps in the +// -mobile variants below 996px. +const registryLogo = { + alt: 'StackQL', + href: '/', + src: 'img/stackql-registry-logo.svg', + srcDark: 'img/stackql-registry-logo-white.svg', +}; +config.themeConfig.navbar.logo = { ...registryLogo }; +config.themeConfig.footer.logo = { ...registryLogo }; + +// URL form. Keep the Docusaurus default (pages emitted as <route>/index.html) +// regardless of the shared config's trailingSlash setting, so GitHub Pages +// serves both /services/x/y and /services/x/y/. A trailingSlash: false site +// emits <route>.html instead, which returns 404 for the trailing-slash URL. +delete config.trailingSlash; + +export default config; diff --git a/website/package.json b/website/package.json new file mode 100644 index 0000000..7f17b06 --- /dev/null +++ b/website/package.json @@ -0,0 +1,73 @@ +{ + "name": "website", + "version": "0.0.0", + "private": true, + "scripts": { + "docusaurus": "docusaurus", + "vendor-config": "rimraf .shared-config && git clone --depth 1 --branch main https://github.com/stackql/docusaurus-config.git .shared-config", + "prestart": "yarn vendor-config", + "prebuild": "yarn vendor-config", + "sanitize-docs": "node scripts/sanitize-docs.mjs", + "start": "docusaurus start", + "build": "docusaurus build", + "swizzle": "docusaurus swizzle", + "deploy": "docusaurus deploy", + "clear": "docusaurus clear", + "serve": "docusaurus serve", + "write-translations": "docusaurus write-translations", + "write-heading-ids": "docusaurus write-heading-ids" + }, + "dependencies": { + "@docusaurus/core": "^3.10.2", + "@docusaurus/faster": "^3.10.2", + "@docusaurus/plugin-ideal-image": "^3.10.2", + "@docusaurus/preset-classic": "^3.10.2", + "@docusaurus/theme-mermaid": "^3.10.2", + "@emotion/react": "^11.14.0", + "@emotion/styled": "^11.14.1", + "@iconify/react": "^6.0.0", + "@mdx-js/react": "^3.0.0", + "@mui/icons-material": "^7.3.1", + "@mui/material": "^7.3.1", + "clipboard": "^2.0.11", + "clsx": "^2.0.0", + "prism-react-renderer": "^2.3.0", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "^3.10.2", + "@docusaurus/types": "^3.10.2", + "rimraf": "^6.0.1" + }, + "overrides": { + "rimraf": "^6.0.1", + "glob": "^13.0.0", + "memfs": "^4.17.0", + "uuid": "^11.0.0", + "@ungap/structured-clone": "^1.3.1" + }, + "resolutions": { + "rimraf": "^6.0.1", + "glob": "^13.0.0", + "memfs": "^4.17.0", + "uuid": "^11.0.0", + "@ungap/structured-clone": "^1.3.1" + }, + "browserslist": { + "production": [ + ">0.5%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 3 chrome version", + "last 3 firefox version", + "last 5 safari version" + ] + }, + "engines": { + "node": ">=22.19" + }, + "license": "MIT" +} diff --git a/website/provider.js b/website/provider.js new file mode 100644 index 0000000..a9d75d8 --- /dev/null +++ b/website/provider.js @@ -0,0 +1,17 @@ +// The only site-local identity the microsite needs. Everything else comes +// from the shared stackql/docusaurus-config, vendored to .shared-config/ at +// build time (see package.json vendor-config). +export const providerName = 'nvidia'; +export const providerTitle = 'NVIDIA NGC'; + +// The scoping server variable and its environment variable +// (x-stackQL-envVar), read by scripts/sanitize-docs.mjs to annotate +// generated examples "required unless <env var> is set". Deliberately null +// here: the org_name scope rides path-level server templates, which docgen +// does not render into the examples of the scoped (private_registry, orgs) +// pages at all, while the org_name that does appear in examples - the +// public catalog's /v2/models/{org_name}/... and the root path +// /v2/orgs/{org_name} - is a plain path parameter that NGC_ORG never +// resolves. Annotating would mark the wrong pages (NOTES.md 22). +export const scopeVariable = null; +export const scopeEnvVar = null; diff --git a/website/scripts/sanitize-docs.mjs b/website/scripts/sanitize-docs.mjs new file mode 100644 index 0000000..609957a --- /dev/null +++ b/website/scripts/sanitize-docs.mjs @@ -0,0 +1,237 @@ +#!/usr/bin/env node +// Post-docgen sanitizer for the generated provider docs. Run after +// `generate-docs`, before building the website (`make docs` does both). +// +// 1. MDX safety. Vendor descriptions carry literal angle-bracket placeholders +// (<region>), stray unpaired HTML, XML samples and regex fragments. MDX v3 +// parses any raw <token> as JSX and fails the build on the first +// mismatch; braces parse as JSX expressions. The generator's structure is +// line-shaped (one <td>...</td> per line; description text only ever +// appears as td inner content or TabItem prose), so: inside every +// description cell escape angle brackets, braces and square brackets +// (protecting backtick-wrapped `<placeholder>` tokens as <code>), and +// leave every structural line byte-for-byte untouched. +// +// 2. Scope annotations (when provider.js exports scopeVariable and +// scopeEnvVar). docgen merges server variables into every method's +// required parameters and example WHERE clauses, which is right only +// when the env var is unset; every `<var> = '{{ <var> }}' -- required` +// example is annotated "required unless <ENV> is set". +// +// 3. Landing-page resource count. docgen's total includes each service +// index page; recount from the generated service directories. +// +// 4. nvidia-specific: the NGC core query parameters are kebab-case on the +// wire (page-size, resolve-labels, exclude-from-team) and the engine +// accepts their snake_case spelling (request.nativeCasing: kebab), which +// is the user surface the rest of the docs present. The kebab parameter +// tokens in the parameter tables, the method tables' parameter links, the +// anchors and the SQL examples of the resource pages are rewritten to +// snake_case; description prose is left alone. + +import fs from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const siteDir = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +const docsDir = path.join(siteDir, 'docs'); +// provider.js is an ES module in a package without "type": "module" (the +// vendored shared config is CommonJS), so read the two exports as text. +const providerJs = fs.readFileSync(path.join(siteDir, 'provider.js'), 'utf8'); +const exportOf = (name) => { + const m = providerJs.match(new RegExp(`export\\s+const\\s+${name}\\s*=\\s*(?:'([^']*)'|"([^"]*)"|(null))`)); + return m ? (m[1] ?? m[2] ?? null) : null; +}; +const SCOPE_VAR = exportOf('scopeVariable'); +const SCOPE_ENV = exportOf('scopeEnvVar'); + +const TD_LINE = /^(\s*<td>)(.*)(<\/td>\s*)$/; +const LINK_TOKEN = '<a href="#[^"]*">(?:<CopyableCode\\b[^<>]*\\/>|<code>[^<>]*<\\/code>)<\\/a>'; +const LINK_TOKEN_CELL = new RegExp(`^${LINK_TOKEN}(?:,\\s*${LINK_TOKEN})*$`); +const BACKTICKED = /`<([A-Za-z][A-Za-z0-9_.:-]*)>`/g; +// Control-char sentinels: cannot occur in generated markdown. +const OPEN = '\u0001'; +const CLOSE = '\u0002'; + +let filesChanged = 0; +let cellsEscaped = 0; +let scopeAnnotated = 0; + +function annotateScope(lines) { + if (!SCOPE_VAR || !SCOPE_ENV) return false; + const sqlRe = new RegExp(`(${SCOPE_VAR}\\s*=\\s*'\\{\\{ ${SCOPE_VAR} \\}\\}'\\s*--\\s*required)(?!\\s+unless)`); + const execRe = new RegExp(`(@${SCOPE_VAR}='\\{\\{ ${SCOPE_VAR} \\}\\}'\\s*--required)(?!\\s+unless)`); + let changed = false; + for (let i = 0; i < lines.length; i++) { + if (sqlRe.test(lines[i])) { lines[i] = lines[i].replace(sqlRe, `$1 unless ${SCOPE_ENV} is set`); changed = true; scopeAnnotated++; } + else if (execRe.test(lines[i])) { lines[i] = lines[i].replace(execRe, `$1 unless ${SCOPE_ENV} is set`); changed = true; scopeAnnotated++; } + } + return changed; +} + +function escapeDescription(inner) { + let out = inner.replace(BACKTICKED, (m, name) => OPEN + name + CLOSE); + out = out + .replace(/</g, '<') + .replace(/>/g, '>') + .replace(/\{/g, '{') + .replace(/\}/g, '}') + // Regex fragments in descriptions ("s3://([^/]+)(/.*)?") read as + // markdown links and crash the link resolver. + .replace(/\[/g, '[') + .replace(/\]/g, ']') + // GFM autolinks bare "scheme://..." literals on the DECODED text tree + // and Docusaurus crashes on regex-shaped ones. A zero-width space inside + // "://" is invisible in rendering but breaks the autolink prefix match. + .replace(/:\/\//g, ':​//'); + out = out.split(OPEN).join('<code><').split(CLOSE).join('></code>'); + return out; +} + +// Inside a CodeBlock template literal, a lone backslash before u/x is a JS +// string escape and ${ starts interpolation. Double the backslash / escape +// the $ so the source text renders verbatim. The (?<!\\) guards skip +// sequences that are already escaped in the source. +function escapeTemplateLiteral(line) { + return line + .replace(/(?<!\\)\\(?=[ux])/g, '\\\\') + .replace(/(?<!\\)\$\{/g, '\\${'); +} + +function sanitize(text) { + const lines = text.split('\n'); + let changed = annotateScope(lines); + let inFence = false; + let inTabItemProse = false; + let inCodeBlock = false; + for (let i = 0; i < lines.length; i++) { + const line = lines[i]; + const trimmed = line.trim(); + if (trimmed.startsWith('```')) { inFence = !inFence; continue; } + if (inFence) continue; + // <CodeBlock>{`...`}</CodeBlock> spans hold verbatim SQL in a JSX + // template literal: the MDX/HTML escapes must not touch these lines, + // but JS still evaluates the literal, so neutralize escape starts. + if (inCodeBlock) { + if (/<\/CodeBlock>/.test(line)) inCodeBlock = false; + const esc = escapeTemplateLiteral(line); + if (esc !== line) { lines[i] = esc; changed = true; } + continue; + } + if (/<CodeBlock\b/.test(line)) { + if (!/<\/CodeBlock>/.test(line)) inCodeBlock = true; + const esc = escapeTemplateLiteral(line); + if (esc !== line) { lines[i] = esc; changed = true; } + continue; + } + if (/^<TabItem\b/.test(trimmed)) { inTabItemProse = true; continue; } + if (/^<\/TabItem>/.test(trimmed)) { inTabItemProse = false; continue; } + + // Description table cells (one <td>...</td> per line). + const m = TD_LINE.exec(line); + if (m) { + const inner = m[2]; + if (/^<CopyableCode\b[^<>]*\/>$/.test(inner)) continue; + // Structural link cells in the Methods/Parameters tables stay verbatim. + if (LINK_TOKEN_CELL.test(inner)) continue; + const codeCell = /^<code>([^<>]*)<\/code>$/.exec(inner); + if (codeCell) { + // Type/pattern cells: regex patterns form accidental markdown links + // and MDX brace expressions ({4,7} quantifiers). + const escaped = codeCell[1] + .replace(/\[/g, '[') + .replace(/\]/g, ']') + .replace(/\{/g, '{') + .replace(/\}/g, '}') + .replace(/:\/\//g, ':​//'); + if (escaped !== codeCell[1]) { + lines[i] = m[1] + '<code>' + escaped + '</code>' + m[3]; + cellsEscaped++; + changed = true; + } + continue; + } + const escaped = escapeDescription(inner); + if (escaped !== inner) { + lines[i] = m[1] + escaped + m[3]; + cellsEscaped++; + changed = true; + } + continue; + } + + // Method-description prose inside <TabItem> blocks. Prose never starts + // with '<'; anything with raw angle brackets or braces there is hostile + // description content. + if (inTabItemProse && trimmed && !trimmed.startsWith('<') && /[<>{}]/.test(line)) { + const escaped = escapeDescription(line); + if (escaped !== line) { + lines[i] = escaped; + cellsEscaped++; + changed = true; + } + } + } + return { text: lines.join('\n'), changed }; +} + +// nvidia-specific (4.): kebab-case parameter tokens rendered as snake_case +// on the resource pages. +const KEBAB = '[a-z][a-z0-9]*(?:-[a-z0-9]+)+'; +let kebabRewrites = 0; +function snakeKebabParams(text) { + let out = text; + const sub = (re, fn) => { out = out.replace(re, (...m) => { kebabRewrites++; return fn(...m); }); }; + sub(new RegExp(`<CopyableCode code="(${KEBAB})" />`, 'g'), (m, t) => `<CopyableCode code="${t.replace(/-/g, '_')}" />`); + sub(new RegExp(`#parameter-(${KEBAB})"><code>(${KEBAB})</code>`, 'g'), (m, a, t) => `#parameter-${a.replace(/-/g, '_')}"><code>${t.replace(/-/g, '_')}</code>`); + sub(new RegExp(`<tr id="parameter-(${KEBAB})">`, 'g'), (m, t) => `<tr id="parameter-${t.replace(/-/g, '_')}">`); + sub(new RegExp(`\\{\\{ (${KEBAB}) \\}\\}`, 'g'), (m, t) => `{{ ${t.replace(/-/g, '_')} }}`); + sub(new RegExp(`(^|[\\s(,])(${KEBAB}) = '`, 'gm'), (m, pre, t) => `${pre}${t.replace(/-/g, '_')} = '`); + sub(new RegExp(`(^|[\\s(,])(${KEBAB})(,|\\)|\\s*$)`, 'gm'), (m, pre, t, post) => /^(INSERT|SELECT|UPDATE|DELETE|FROM|WHERE|SET|AND)$/.test(t) ? m : `${pre}${t.replace(/-/g, '_')}${post}`); + return out; +} + +function walk(dir) { + for (const entry of fs.readdirSync(dir, { withFileTypes: true })) { + const p = path.join(dir, entry.name); + if (entry.isDirectory()) walk(p); + else if (entry.name.endsWith('.md') || entry.name.endsWith('.mdx')) { + const before = fs.readFileSync(p, 'utf8'); + let { text: after, changed } = sanitize(before); + // parameter casing only applies to the resource pages (the landing + // page is authored copy) + if (p.includes(`${path.sep}services${path.sep}`)) { + const cased = snakeKebabParams(after); + if (cased !== after) { after = cased; changed = true; } + } + if (changed) { fs.writeFileSync(p, after); filesChanged++; } + } + } +} + +// Landing-page resource count: docgen's `total resources: __N__` counts each +// service index page as a resource; recount the resource pages under +// docs/services/<service>/*/ and rewrite the number. +function fixResourceCount() { + const servicesDir = path.join(docsDir, 'services'); + const indexFiles = fs.readdirSync(docsDir).filter((f) => /^index\.mdx?$/.test(f)); + if (!fs.existsSync(servicesDir) || indexFiles.length === 0) return 0; + let resources = 0; + for (const svc of fs.readdirSync(servicesDir, { withFileTypes: true })) { + if (!svc.isDirectory()) continue; + for (const res of fs.readdirSync(path.join(servicesDir, svc.name), { withFileTypes: true })) if (res.isDirectory()) resources++; + } + const indexPath = path.join(docsDir, indexFiles[0]); + const text = fs.readFileSync(indexPath, 'utf8'); + const fixed = text.replace(/(total resources:\s*__)\d+(__)/, `$1${resources}$2`); + if (fixed !== text) { fs.writeFileSync(indexPath, fixed); return resources; } + return 0; +} + +if (!fs.existsSync(docsDir)) { + console.error(`sanitize-docs: ${docsDir} does not exist - run generate-docs first`); + process.exit(1); +} +walk(docsDir); +const recount = fixResourceCount(); +console.log(`sanitize-docs: escaped ${cellsEscaped} description cell(s) across ${filesChanged} file(s); ${scopeAnnotated} scope annotation(s); ${kebabRewrites} kebab parameter token(s) rendered as snake_case${recount ? `; landing page resource count set to ${recount}` : ''}`); diff --git a/website/sidebars.js b/website/sidebars.js new file mode 100644 index 0000000..fe6cbb3 --- /dev/null +++ b/website/sidebars.js @@ -0,0 +1,28 @@ +import { providerTitle } from './provider.js'; + +const sidebars = { + mainSidebar: [ + // Way back to the main stackql.io docs, as on the query library site. + // '/stackqldocs' is a shared-config redirect route (registered on this + // site by the vendored redirects plugin) that forwards to + // https://stackql.io/, so the link renders as internal - no external-link + // icon - and the broken-link checker validates it. The arrow and the + // divider come from the .sidebar-back-link rules in src/css/global.css. + { + type: 'link', + label: 'Back to StackQL Docs', + href: '/stackqldocs', + className: 'sidebar-back-link', + }, + // '/providers' is likewise a shared redirect, to https://stackql.io/providers. + { type: 'link', label: 'All Providers', href: '/providers' }, + { + type: 'category', + label: `${providerTitle} Provider`, + link: { type: 'doc', id: 'provider-intro' }, + items: [{ type: 'autogenerated', dirName: 'services' }], + }, + ], +}; + +export default sidebars; diff --git a/website/src/components/CopyableCode/CopyableCode.js b/website/src/components/CopyableCode/CopyableCode.js new file mode 100644 index 0000000..d17969f --- /dev/null +++ b/website/src/components/CopyableCode/CopyableCode.js @@ -0,0 +1,29 @@ +import React, { useState } from 'react'; +import Clipboard from 'clipboard'; + +const CopyableCode = ({ code }) => { + const [isCopied, setIsCopied] = useState(false); + + const handleCopy = () => { + const clipboard = new Clipboard('.copyable-code', { + text: () => code, + }); + + clipboard.on('success', function() { + setIsCopied(true); + window.setTimeout(() => setIsCopied(false), 2000); + clipboard.destroy(); + }); + }; + + return ( + <span className="copyable-code-container"> + <code className="copyable-code" onClick={handleCopy}> + {code} + </code> + {isCopied ? <span style={{ marginLeft: '10px', color: 'green' }}>Copied!</span> : null} + </span> + ); +}; + +export default CopyableCode; diff --git a/website/src/components/SchemaTable/SchemaTable.js b/website/src/components/SchemaTable/SchemaTable.js new file mode 100644 index 0000000..2553353 --- /dev/null +++ b/website/src/components/SchemaTable/SchemaTable.js @@ -0,0 +1,49 @@ +import React, { useState } from 'react'; +import styles from './SchemaTable.module.css'; + +function SchemaRow({ name, type, description, children, depth = 0 }) { + const [expanded, setExpanded] = useState(false); + const hasChildren = children && children.length > 0; + + return ( + <> + <tr className={styles.row}> + <td style={{ paddingLeft: `${depth * 24 + 12}px` }}> + {hasChildren && ( + <span + className={styles.expander} + onClick={() => setExpanded(!expanded)} + > + {expanded ? '▼' : '▶'} + </span> + )} + <code>{name}</code> + </td> + <td><code>{type}</code></td> + <td dangerouslySetInnerHTML={{ __html: description }} /> + </tr> + {expanded && children?.map((child, idx) => ( + <SchemaRow key={idx} {...child} depth={depth + 1} /> + ))} + </> + ); +} + +export default function SchemaTable({ fields }) { + return ( + <table className={styles.schemaTable}> + <thead> + <tr> + <th>Name</th> + <th>Datatype</th> + <th>Description</th> + </tr> + </thead> + <tbody> + {fields.map((field, idx) => ( + <SchemaRow key={idx} {...field} /> + ))} + </tbody> + </table> + ); +} \ No newline at end of file diff --git a/website/src/components/SchemaTable/SchemaTable.module.css b/website/src/components/SchemaTable/SchemaTable.module.css new file mode 100644 index 0000000..ed4ef36 --- /dev/null +++ b/website/src/components/SchemaTable/SchemaTable.module.css @@ -0,0 +1,27 @@ +.schemaTable { + width: 100%; + border-collapse: collapse; +} + +.schemaTable th, +.schemaTable td { + border: 1px solid var(--ifm-table-border-color); + padding: 8px 12px; + text-align: left; +} + +.schemaTable th { + background: var(--ifm-table-head-background); +} + +.row:hover { + background: var(--ifm-table-stripe-background); +} + +.expander { + cursor: pointer; + margin-right: 8px; + user-select: none; + color: var(--ifm-color-primary); + font-size: 10px; +} \ No newline at end of file diff --git a/website/src/components/StackqlDeployDropdown/StackqlDeployDropdown.js b/website/src/components/StackqlDeployDropdown/StackqlDeployDropdown.js new file mode 100644 index 0000000..b252fd7 --- /dev/null +++ b/website/src/components/StackqlDeployDropdown/StackqlDeployDropdown.js @@ -0,0 +1,400 @@ +import React, { useState } from 'react'; +import Button from '@mui/material/Button'; +import Menu from '@mui/material/Menu'; +import MenuItem from '@mui/material/MenuItem'; +import ListItemIcon from '@mui/material/ListItemIcon'; +import ListItemText from '@mui/material/ListItemText'; +import DownloadIcon from '@mui/icons-material/Download'; +import ContentCopyIcon from '@mui/icons-material/ContentCopy'; +import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown'; +import {useLocation} from '@docusaurus/router'; +import styles from './StackqlDeployDropdown.module.css'; + +/** + * Collects all DOM elements between a heading and the next <h2>. + */ +function getElementsBetweenHeadings(heading) { + const elements = []; + let el = heading.nextElementSibling; + while (el && el.tagName !== 'H2') { + elements.push(el); + el = el.nextElementSibling; + } + return elements; +} + +/** + * Extracts text from a <code> element, preserving newlines. + * prism-react-renderer wraps each line in a child element (div or span), + * and textContent concatenates them without newlines, so we join manually. + */ +function getCodeText(codeEl) { + if (codeEl.children.length > 0) { + return Array.from(codeEl.children) + .map(line => line.textContent.replace(/\n$/, '')) + .join('\n'); + } + return codeEl.textContent; +} + +/** + * Extracts the text content of a code block from within a set of elements. + * If preferredTab is provided, looks for a tab with that label first. + */ +function extractCodeFromElements(elements, preferredTab) { + if (preferredTab) { + for (const el of elements) { + const tabs = el.querySelectorAll('[role="tab"]'); + const panels = el.querySelectorAll('[role="tabpanel"]'); + for (let i = 0; i < tabs.length; i++) { + const tabLabel = tabs[i].textContent.trim().toLowerCase(); + if (tabLabel === preferredTab.toLowerCase() && panels[i]) { + const codeEl = panels[i].querySelector('pre code'); + if (codeEl) return getCodeText(codeEl); + } + } + } + } + // Fallback: first code block in the section + for (const el of elements) { + const codeEl = el.querySelector('pre code'); + if (codeEl) return getCodeText(codeEl); + } + return null; +} + +/** + * Scans the rendered page DOM for SQL example sections and extracts + * code blocks to build a context-aware stackql-deploy template. + * + * Section heading IDs generated by Docusaurus: + * ## `SELECT` examples -> #select-examples + * ## `INSERT` examples -> #insert-examples + * ## `UPDATE` examples -> #update-examples + * ## `REPLACE` examples -> #replace-examples + * ## `DELETE` examples -> #delete-examples + * ## Lifecycle Methods -> #lifecycle-methods + */ +function extractTemplateFromPage() { + const sections = {}; + + // --- SELECT (prefer "get" tab for a single-resource check) --- + const selectH2 = document.getElementById('select-examples'); + if (selectH2) { + const els = getElementsBetweenHeadings(selectH2); + sections.select = extractCodeFromElements(els, 'get (all properties)') + || extractCodeFromElements(els, 'get') + || extractCodeFromElements(els); + } + + // --- INSERT (prefer "create" tab -- skip "Manifest" yaml tab) --- + const insertH2 = document.getElementById('insert-examples') || document.getElementById('insert-example'); + if (insertH2) { + const els = getElementsBetweenHeadings(insertH2); + sections.insert = extractCodeFromElements(els, 'All Properties') + || extractCodeFromElements(els, 'create') + || extractCodeFromElements(els); + } + + // --- UPDATE --- + const updateH2 = document.getElementById('update-examples') || document.getElementById('update-example'); + if (updateH2) { + const els = getElementsBetweenHeadings(updateH2); + sections.update = extractCodeFromElements(els); + } + + // --- REPLACE --- + const replaceH2 = document.getElementById('replace-examples'); + if (replaceH2) { + const els = getElementsBetweenHeadings(replaceH2); + sections.replace = extractCodeFromElements(els); + } + + // --- DELETE (standalone section) --- + const deleteH2 = document.getElementById('delete-examples') || document.getElementById('delete-example'); + if (deleteH2) { + const els = getElementsBetweenHeadings(deleteH2); + sections.delete = extractCodeFromElements(els); + } + + // --- Lifecycle Methods: look for a "delete" tab if no standalone DELETE --- + if (!sections.delete) { + const lifecycleH2 = document.getElementById('lifecycle-methods'); + if (lifecycleH2) { + const els = getElementsBetweenHeadings(lifecycleH2); + sections.delete = extractCodeFromElements(els, 'delete'); + } + } + + return sections; +} + +/** + * Parses a SELECT SQL string into its components: + * fields - column names from the SELECT list + * table - fully-qualified table reference after FROM + * where - the raw WHERE clause (conditions only, no leading WHERE) + */ +function parseSelectSQL(sql) { + const selectFromMatch = sql.match(/SELECT\s+([\s\S]+?)\s+FROM\s+/i); + const fromMatch = sql.match(/FROM\s+(\S+)/i); + const whereMatch = sql.match(/WHERE\s+([\s\S]+?)(?:\s*;\s*$|$)/i); + + const fields = selectFromMatch + ? selectFromMatch[1] + .split(',') + .map(f => f.trim()) + .filter(f => f && f !== '*') + : []; + + const table = fromMatch ? fromMatch[1] : ''; + const where = whereMatch ? whereMatch[1].trim().replace(/;\s*$/, '').trim() : ''; + + return { fields, table, where }; +} + +// Parses column names from an INSERT INTO ... (...) statement +// and returns the base field names (stripping data__ prefix). +function parseInsertColumns(sql) { + const match = sql.match(/INSERT\s+INTO\s+\S+\s*\(([\s\S]+?)\)/i); + if (!match) return []; + return match[1] + .split(',') + // .map(c => c.trim().replace(/^data__/, '')) + .map(c => c.trim()) + .filter(Boolean); +} + +// Builds an "exists" hint query - a simplified count query using only the +// original WHERE params (required parameters from the page). +function buildExistsQuery(parsed) { + let sql = `SELECT count(*) as count\nFROM ${parsed.table}`; + if (parsed.where) { + const conditions = parsed.where.split(/\s+AND\s+/i).map(c => c.trim()); + sql += `\nWHERE ${conditions.join(' AND\n')}`; + } + sql += '\n;'; + return sql; +} + +// Builds a "statecheck" hint query - a count query where SELECT fields become +// equality checks in the WHERE clause, followed by the original WHERE params. +function buildStatecheckQuery(parsed) { + // Extract condition field names from WHERE clause to avoid duplicates + const whereConditionFields = new Set(); + if (parsed.where) { + parsed.where.split(/\s+AND\s+/i).forEach(c => { + const match = c.trim().match(/^\s*(\w+)\s*=/); + if (match) whereConditionFields.add(match[1].toLowerCase()); + }); + } + + // Filter out fields already in the WHERE clause (e.g., region) + const filteredFields = parsed.fields.filter(f => !whereConditionFields.has(f.toLowerCase())); + const fieldConditions = filteredFields.map(f => `${f} = {{ ${f} }}`); + + // Collect all WHERE conditions + const allConditions = [...fieldConditions]; + if (parsed.where) { + parsed.where.split(/\s+AND\s+/i).forEach(c => allConditions.push(c.trim())); + } + + let sql = `SELECT count(*) as count\nFROM ${parsed.table}`; + if (allConditions.length > 0) { + sql += `\nWHERE \n${allConditions.join(' AND\n')}`; + } + sql += '\n;'; + return sql; +} + +/** + * Builds the stackql-deploy IQL template from extracted sections. + * Only includes anchors for operations that actually exist on the page. + */ +function buildTemplate(sections) { + const parts = []; + let parsed = null; + + if (sections.select) { + parsed = parseSelectSQL(sections.select); + parts.push(`/*+ exists */\n${buildExistsQuery(parsed)}`); + } + + if (sections.insert) { + parts.push(sections.insert); + } + + if (sections.update) { + parts.push(sections.update); + } else if (sections.replace) { + parts.push(sections.replace); + } + + if (parsed) { + // If INSERT exists, narrow to mutable fields only (skip created_at, etc.) + let mutableParsed = parsed; + if (sections.insert) { + const insertColSet = new Set(parseInsertColumns(sections.insert)); + const mutableFields = parsed.fields.filter(f => insertColSet.has(f)); + if (mutableFields.length > 0) { + mutableParsed = { ...parsed, fields: mutableFields }; + } + } + + parts.push(`/*+ statecheck, retries=5, retry_delay=10 */\n${buildStatecheckQuery(mutableParsed)}`); + + // Use all GET fields minus region for exports + const exportFields = parsed.fields.filter(f => f.toLowerCase() !== 'region'); + let exportsSql = `SELECT\n${exportFields.join(',\n')}\nFROM ${parsed.table}`; + if (parsed.where) { + const conditions = parsed.where.split(/\s+AND\s+/i).map(c => c.trim()); + exportsSql += `\nWHERE ${conditions.join(' AND\n')}`; + } + exportsSql += ';'; + parts.push(`/*+ exports */\n${exportsSql}`); + } + + if (sections.delete) { + parts.push(sections.delete); + } + + return parts.join('\n\n'); +} + +function getResourceName(pathname) { + const match = pathname.match(/\/services\/[^/]+\/([^/]+)/); + return match ? match[1] : null; +} + +export default function StackqlDeployDropdown() { + const [anchorEl, setAnchorEl] = useState(null); + const [copied, setCopied] = useState(false); + const open = Boolean(anchorEl); + const location = useLocation(); + + const resourceName = getResourceName(location.pathname); + + // Only render on resource pages (URL: /services/{service}/{resource}) + if (!resourceName) return null; + + const filename = `${resourceName}.iql`; + + function getTemplate() { + const sections = extractTemplateFromPage(); + return buildTemplate(sections); + } + + const handleClick = (event) => { + setAnchorEl(event.currentTarget); + }; + + const handleClose = () => { + setAnchorEl(null); + }; + + const handleDownload = () => { + const template = getTemplate(); + if (!template) { + handleClose(); + return; + } + const blob = new Blob([template], { type: 'text/plain' }); + const url = URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = url; + a.download = filename; + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + URL.revokeObjectURL(url); + handleClose(); + }; + + const handleCopy = async () => { + const template = getTemplate(); + if (!template) { + handleClose(); + return; + } + try { + await navigator.clipboard.writeText(template); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + } catch { + const textarea = document.createElement('textarea'); + textarea.value = template; + document.body.appendChild(textarea); + textarea.select(); + document.execCommand('copy'); + document.body.removeChild(textarea); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + } + handleClose(); + }; + + return ( + <div className={styles.dropdownWrapper}> + <Button + variant="outlined" + size="small" + endIcon={<KeyboardArrowDownIcon />} + onClick={handleClick} + sx={{ + textTransform: 'none', + fontFamily: 'var(--ifm-font-family-base)', + fontWeight: 600, + fontSize: '0.75rem', + borderColor: 'var(--ifm-color-primary)', + color: 'var(--ifm-color-primary)', + '&:hover': { + borderColor: 'var(--ifm-color-primary)', + backgroundColor: 'rgba(0, 65, 101, 0.04)', + }, + }} + > + stackql-deploy Template + </Button> + <Menu + anchorEl={anchorEl} + open={open} + onClose={handleClose} + anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }} + transformOrigin={{ vertical: 'top', horizontal: 'right' }} + sx={{ + '& .MuiPaper-root': { + fontFamily: 'var(--ifm-font-family-base)', + minWidth: 180, + }, + }} + > + <MenuItem onClick={handleDownload}> + <ListItemIcon> + <DownloadIcon fontSize="small" /> + </ListItemIcon> + <ListItemText + primaryTypographyProps={{ + fontSize: '0.85rem', + fontFamily: 'var(--ifm-font-family-base)', + }} + > + Download + </ListItemText> + </MenuItem> + <MenuItem onClick={handleCopy}> + <ListItemIcon> + <ContentCopyIcon fontSize="small" /> + </ListItemIcon> + <ListItemText + primaryTypographyProps={{ + fontSize: '0.85rem', + fontFamily: 'var(--ifm-font-family-base)', + }} + > + {copied ? 'Copied!' : 'Copy'} + </ListItemText> + </MenuItem> + </Menu> + </div> + ); +} diff --git a/website/src/components/StackqlDeployDropdown/StackqlDeployDropdown.module.css b/website/src/components/StackqlDeployDropdown/StackqlDeployDropdown.module.css new file mode 100644 index 0000000..cdb453c --- /dev/null +++ b/website/src/components/StackqlDeployDropdown/StackqlDeployDropdown.module.css @@ -0,0 +1,12 @@ +/* Only show on md+ viewports (Docusaurus default breakpoint: 996px) */ +.dropdownWrapper { + display: none; + flex-shrink: 0; +} + +@media screen and (min-width: 997px) { + .dropdownWrapper { + display: flex; + align-items: center; + } +} diff --git a/website/src/css/global.css b/website/src/css/global.css new file mode 100644 index 0000000..0b80357 --- /dev/null +++ b/website/src/css/global.css @@ -0,0 +1,307 @@ +@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;700&display=swap'); + +/* +* Brand Colour +*/ +:root { + --gamma-blue: #0f4c81; + --gamma-medium-blue: #6c83aa; + /* Blues */ + --gamma-dark-blue: #004165; + --gamma-light-blue: #b5bfd4; + --code-blue: #00f; + /* Grey scale */ + --default-text: #2e3940; + --secondary-text: #718096; + --black: #000; + --white: #fff; + --grey-1: #f5f6f7; + --grey-2: #ebedef; + /* Dark Mode Blacks */ + --dark-1: #606264; + --dark-2: #404244; + --black-2: #090909; + --light-black: #111; + /* Colours */ + --default-green: #00af91; + --secondary-green: #43af43; + --default-red: #e94560; + --default-red-2: #fc91a2; + --default-blue: #2e3940; + --default-light-blue: #bfc2ff; + --default-blue-2: #1a1a2e; + --secondary-blue: #16213e; + --gamma-dark: #030760; +} + +:root { + /* infima styling */ + --ifm-font-family-base: 'Montserrat', sans-serif; + --ifm-font-size-base: 16px; + --ifm-code-font-size: 95%; + --ifm-background-color: var(--white); + --ifm-color-primary: var(--gamma-dark-blue); + --ifm-code-color: var(--code-blue); + --ifm-color-content: #2d3748; + --ifm-dropdown-link-color: var(--ifm-menu-color); + --ifm-navbar-link-color: var(--ifm-menu-color); + --ifm-menu-color-background-active: var(--ifm-color-emphasis-200); +} + +[data-theme='dark'] { + --ifm-font-base-color: #dee0f2; + --ifm-color-content: var(--ifm-font-base-color); + --ifm-navbar-link-hover-color: var(--gamma-light-blue); + --ifm-link-color: var(--gamma-light-blue); + --ifm-menu-color-active: var(--gamma-light-blue); + --ifm-color-primary: var(--white); + --ifm-background-color: var(--black); + --ifm-footer-background-color: var(--black-2); + --ifm-navbar-background-color: var(--black); + --ifm-menu-color-background-active: #21243d; + --ifm-code-color: var(--white); +} + +/* +* copyable code +*/ +.copyable-code-container code { + cursor: pointer; + position: relative; +} + +/* +* github +*/ + .header-github-link:before { + content: ''; + width: 140px; + height: 28px; + display: flex; + background-image: url("https://img.shields.io/github/stars/stackql/stackql?logo=github&style=social"); + background-repeat: no-repeat; + background-position: center; + background-size: contain; +} + +.header-github-link:hover { + opacity: 0.6; +} + +/* +* footer +*/ +:root .footer--dark { + background-color: transparent; + --ifm-footer-color: var(--secondary-text); + --ifm-footer-link-color: var(--secondary-text); + --ifm-footer-title-color: var(--black-2); +} +:root .footer .footerLogoLink_src-theme-Footer- { + opacity: 1; +} +:root .footer .divider { + background-color: rgba(0, 0, 0, 0.12); +} +:root .footer .container { + background-color: var(--grey-1); +} +:root a code { + color: var(--ifm-code-color); +} + +html[data-theme='dark'] .footer--dark { + --ifm-footer-background-color: transparent; + --ifm-footer-color: #bdbdbd; + --ifm-footer-link-color: #bdbdbd; + --ifm-footer-title-color: var(--white); +} +html[data-theme='dark'] .footer .divider { + background-color: var(--secondary-blue); +} +html[data-theme='dark'] .footer .container { + background-color: var(--black-2); +} + +.footer__items { + font-weight: 400; + line-height: 1.43; + font-size: 0.875rem; +} +.footer__items .footer__link-item:hover { + text-decoration: none; +} +.footer__title { + font-weight: 700; + margin-bottom: 0; + line-height: 1.43; + font-size: 0.875rem; +} +.footer { + padding-bottom: 0; +} +.footer .container { + margin: 0 auto; + padding: 56px 80px; + max-width: 850px; + border-radius: 17px; +} +.divider { + width: 100%; + margin: 40px 0px; + border: none; + height: 1px; + flex-shrink: 0; +} +.footer__subtitle { + font-weight: 500; + line-height: 1.57; + font-size: 0.875rem; +} +.footer__logo { + margin-top: 0; +} + +.footerSocialIcon { + font-size: 24px; + margin: 0 12px; +} + + .footerSocialIconButton { + padding: 0; + color: 'rgba(255,255,255,.6)'; + } + + .footerSocialIconButton:hover { + background: 'transparent'; + color: 'rgba(255,255,255,.6)'; + } + + .footer__items { + list-style-type: none; + margin: 0; + padding: 0; + } + +/* +* custom styles +*/ +code { + font-weight: bold; +} +table { + display: block; + max-width: -moz-fit-content; + max-width: fit-content; + margin: 0 auto; + overflow-x: auto; + white-space: nowrap; +} + +/* +* nav bar +*/ + +.navbar__item { + font-weight: 700; +} +.navbar__link { + font-weight: 700; +} + +/* +* doc field headings +*/ + +:root .docFieldHeading { + color: #0000FF; +} + +html[data-theme='dark'] .docFieldHeading { + color: #FFFFFF; +} + +/* +* vhs image +*/ + +.vhsImage { + max-width: 60%; /* Reduce width to 80% of container */ + display: block; /* Ensure it's a block element for margin auto to work */ + margin: 40px auto; /* Add 40px space above/below and center horizontally */ + transform: scale(0.9); /* Make it 90% of original size */ + transform-origin: center; /* Scale from center */ +} + +/* Add more space before and after the image container */ +img[class="vhsImage"] { + margin-top: 40px; + margin-bottom: 40px; +} + +/* If the image is inside a container, you might need this */ +.vhsImage-container, +div:has(> .vhsImage) { + margin: 40px 0; +} + +/* provider doc column */ +.providerDocColumn { + width: calc(50% - var(--ifm-spacing-horizontal)); + float: left; + padding-left: var(--ifm-list-margin); +} + +@media screen and (max-width: 600px) { + .providerDocColumn { + width: 100%; + } + } + +/* +* breadcrumbs with actions (stackql-deploy dropdown) +*/ +.breadcrumbs-with-actions { + display: flex; + align-items: center; + justify-content: space-between; + flex-wrap: nowrap; +} + +.breadcrumbs-with-actions nav { + flex: 1; + min-width: 0; +} + +/* +* registry logo: swap to the narrower -mobile mark below the Docusaurus +* mobile breakpoint (996px), per theme +*/ +@media (max-width: 996px) { + .navbar__logo img[src$='stackql-registry-logo.svg'] { + content: url('/img/stackql-registry-logo-mobile.svg'); + } + .navbar__logo img[src$='stackql-registry-logo-white.svg'] { + content: url('/img/stackql-registry-logo-white-mobile.svg'); + } +} + +/* +* sidebar: back link to the main stackql.io docs (the first item in +* sidebars.js). Same treatment as the query library site: bold label, +* leading arrow drawn here so the label stays plain text, divider below. +*/ +.sidebar-back-link { + border-bottom: 1px solid var(--ifm-color-emphasis-300); + padding-bottom: 0.5rem; + margin-bottom: 0.5rem !important; +} + +.sidebar-back-link .menu__link { + font-weight: 600; +} + +.sidebar-back-link .menu__link::before { + content: '\2190'; + margin-right: 0.5rem; +} diff --git a/website/src/theme/DocBreadcrumbs/index.js b/website/src/theme/DocBreadcrumbs/index.js new file mode 100644 index 0000000..2c5c7cf --- /dev/null +++ b/website/src/theme/DocBreadcrumbs/index.js @@ -0,0 +1,12 @@ +import React from 'react'; +import DocBreadcrumbs from '@theme-original/DocBreadcrumbs'; +import StackqlDeployDropdown from '@site/src/components/StackqlDeployDropdown/StackqlDeployDropdown'; + +export default function DocBreadcrumbsWrapper(props) { + return ( + <div className="breadcrumbs-with-actions"> + <DocBreadcrumbs {...props} /> + <StackqlDeployDropdown /> + </div> + ); +} diff --git a/website/src/theme/Footer/Copyright/index.tsx b/website/src/theme/Footer/Copyright/index.tsx new file mode 100644 index 0000000..ab1657d --- /dev/null +++ b/website/src/theme/Footer/Copyright/index.tsx @@ -0,0 +1,20 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; +import type {Props} from '@theme/Footer/Copyright'; + +export default function FooterCopyright({copyright}: Props): JSX.Element { + return ( + <div + className="footer__copyright" + // Developer provided the HTML, so assume it's safe. + // eslint-disable-next-line react/no-danger + dangerouslySetInnerHTML={{__html: copyright}} + /> + ); +} diff --git a/website/src/theme/Footer/Layout/index.tsx b/website/src/theme/Footer/Layout/index.tsx new file mode 100644 index 0000000..bb22f31 --- /dev/null +++ b/website/src/theme/Footer/Layout/index.tsx @@ -0,0 +1,34 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; +import clsx from 'clsx'; +import type {Props} from '@theme/Footer/Layout'; + +export default function FooterLayout({ + style, + links, + logo, + copyright, +}: Props): JSX.Element { + return ( + <footer + className={clsx('footer', { + 'footer--dark': style === 'dark', + })}> + <div className="container container-fluid"> + {links} + {(logo || copyright) && ( + <div className="footer__bottom text--center"> + {logo && <div className="margin-bottom--sm">{logo}</div>} + {copyright} + </div> + )} + </div> + </footer> + ); +} diff --git a/website/src/theme/Footer/LinkItem/index.tsx b/website/src/theme/Footer/LinkItem/index.tsx new file mode 100644 index 0000000..44e1517 --- /dev/null +++ b/website/src/theme/Footer/LinkItem/index.tsx @@ -0,0 +1,36 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; + +import Link from '@docusaurus/Link'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import isInternalUrl from '@docusaurus/isInternalUrl'; +import IconExternalLink from '@theme/Icon/ExternalLink'; +import type {Props} from '@theme/Footer/LinkItem'; + +export default function FooterLinkItem({item}: Props): JSX.Element { + const {to, href, label, prependBaseUrlToHref, ...props} = item; + const toUrl = useBaseUrl(to); + const normalizedHref = useBaseUrl(href, {forcePrependBaseUrl: true}); + + return ( + <Link + className="footer__link-item" + {...(href + ? { + href: prependBaseUrlToHref ? normalizedHref : href, + } + : { + to: toUrl, + })} + {...props}> + {label} + {href && !isInternalUrl(href) && <IconExternalLink />} + </Link> + ); +} diff --git a/website/src/theme/Footer/Links/MultiColumn/index.tsx b/website/src/theme/Footer/Links/MultiColumn/index.tsx new file mode 100644 index 0000000..2239e8c --- /dev/null +++ b/website/src/theme/Footer/Links/MultiColumn/index.tsx @@ -0,0 +1,51 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; +import LinkItem from '@theme/Footer/LinkItem'; +import type {Props} from '@theme/Footer/Links/MultiColumn'; + +type ColumnType = Props['columns'][number]; +type ColumnItemType = ColumnType['items'][number]; + +function ColumnLinkItem({item}: {item: ColumnItemType}) { + return item.html ? ( + <li + className="footer__item" + // Developer provided the HTML, so assume it's safe. + // eslint-disable-next-line react/no-danger + dangerouslySetInnerHTML={{__html: item.html}} + /> + ) : ( + <li key={item.href ?? item.to} className="footer__item"> + <LinkItem item={item} /> + </li> + ); +} + +function Column({column}: {column: ColumnType}) { + return ( + <div className="col footer__col"> + <div className="footer__title">{column.title}</div> + <ul className="footer__items clean-list"> + {column.items.map((item, i) => ( + <ColumnLinkItem key={i} item={item} /> + ))} + </ul> + </div> + ); +} + +export default function FooterLinksMultiColumn({columns}: Props): JSX.Element { + return ( + <div className="row footer__links"> + {columns.map((column, i) => ( + <Column key={i} column={column} /> + ))} + </div> + ); +} diff --git a/website/src/theme/Footer/Links/Simple/index.tsx b/website/src/theme/Footer/Links/Simple/index.tsx new file mode 100644 index 0000000..e14b77f --- /dev/null +++ b/website/src/theme/Footer/Links/Simple/index.tsx @@ -0,0 +1,42 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; +import LinkItem from '@theme/Footer/LinkItem'; +import type {Props} from '@theme/Footer/Links/Simple'; + +function Separator() { + return <span className="footer__link-separator">·</span>; +} + +function SimpleLinkItem({item}: {item: Props['links'][number]}) { + return item.html ? ( + <span + className="footer__link-item" + // Developer provided the HTML, so assume it's safe. + // eslint-disable-next-line react/no-danger + dangerouslySetInnerHTML={{__html: item.html}} + /> + ) : ( + <LinkItem item={item} /> + ); +} + +export default function FooterLinksSimple({links}: Props): JSX.Element { + return ( + <div className="footer__links text--center"> + <div className="footer__links"> + {links.map((item, i) => ( + <React.Fragment key={i}> + <SimpleLinkItem item={item} /> + {links.length !== i + 1 && <Separator />} + </React.Fragment> + ))} + </div> + </div> + ); +} diff --git a/website/src/theme/Footer/Links/index.tsx b/website/src/theme/Footer/Links/index.tsx new file mode 100644 index 0000000..a4b0f33 --- /dev/null +++ b/website/src/theme/Footer/Links/index.tsx @@ -0,0 +1,21 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; + +import {isMultiColumnFooterLinks} from '@docusaurus/theme-common'; +import FooterLinksMultiColumn from '@theme/Footer/Links/MultiColumn'; +import FooterLinksSimple from '@theme/Footer/Links/Simple'; +import type {Props} from '@theme/Footer/Links'; + +export default function FooterLinks({links}: Props): JSX.Element { + return isMultiColumnFooterLinks(links) ? ( + <FooterLinksMultiColumn columns={links} /> + ) : ( + <FooterLinksSimple links={links} /> + ); +} diff --git a/website/src/theme/Footer/Logo/index.tsx b/website/src/theme/Footer/Logo/index.tsx new file mode 100644 index 0000000..ebd8e9f --- /dev/null +++ b/website/src/theme/Footer/Logo/index.tsx @@ -0,0 +1,46 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; +import clsx from 'clsx'; +import Link from '@docusaurus/Link'; +import {useBaseUrlUtils} from '@docusaurus/useBaseUrl'; +import ThemedImage from '@theme/ThemedImage'; +import type {Props} from '@theme/Footer/Logo'; + +import styles from './styles.module.css'; + +function LogoImage({logo}: Props) { + const {withBaseUrl} = useBaseUrlUtils(); + const sources = { + light: withBaseUrl(logo.src), + dark: withBaseUrl(logo.srcDark ?? logo.src), + }; + return ( + <ThemedImage + className={clsx('footer__logo', logo.className)} + alt={logo.alt} + sources={sources} + width={logo.width} + height={logo.height} + style={logo.style} + /> + ); +} + +export default function FooterLogo({logo}: Props): JSX.Element { + return logo.href ? ( + <Link + href={logo.href} + className={styles.footerLogoLink} + target={logo.target}> + <LogoImage logo={logo} /> + </Link> + ) : ( + <LogoImage logo={logo} /> + ); +} diff --git a/website/src/theme/Footer/Logo/styles.module.css b/website/src/theme/Footer/Logo/styles.module.css new file mode 100644 index 0000000..16b1a2e --- /dev/null +++ b/website/src/theme/Footer/Logo/styles.module.css @@ -0,0 +1,16 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +.footerLogoLink { + opacity: 0.5; + transition: opacity var(--ifm-transition-fast) + var(--ifm-transition-timing-default); +} + +.footerLogoLink:hover { + opacity: 1; +} diff --git a/website/src/theme/Footer/index.tsx b/website/src/theme/Footer/index.tsx new file mode 100644 index 0000000..eb3d03a --- /dev/null +++ b/website/src/theme/Footer/index.tsx @@ -0,0 +1,262 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; +import clsx from 'clsx'; + +import Link from '@docusaurus/Link'; +import {FooterLinkItem, useThemeConfig} from '@docusaurus/theme-common'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import isInternalUrl from '@docusaurus/isInternalUrl'; +import styles from './styles.module.css'; +import ThemedImage, {Props as ThemedImageProps} from '@theme/ThemedImage'; +import IconExternalLink from '@theme/Icon/ExternalLink'; +import { IconButton } from '@mui/material'; +import { useColorMode } from '@docusaurus/theme-common'; + +import { Icon } from '@iconify/react'; + +// add for responsive logo image +import { useWindowSize } from '@docusaurus/theme-common'; + +// Custom styles to fix the spacing issue +const socialIconsContainerStyle: React.CSSProperties = { + display: 'flex', + justifyContent: 'center', + alignItems: 'center', + flexWrap: 'wrap', // Allow wrapping on small screens + margin: '16px 0', +}; + +const iconButtonStyle = { + padding: '12px', // Ensure buttons have enough clickable area +}; + +function FooterLink({ + to, + href, + label, + prependBaseUrlToHref, + ...props +}: FooterLinkItem) { + const toUrl = useBaseUrl(to); + const normalizedHref = useBaseUrl(href, {forcePrependBaseUrl: true}); + + return ( + <Link + className="footer__link-item" + {...(href + ? { + href: prependBaseUrlToHref ? normalizedHref : href, + } + : { + to: toUrl, + })} + {...props}> + {href && !isInternalUrl(href) ? ( + <span> + {label} + <IconExternalLink /> + </span> + ) : ( + label + )} + </Link> + ); +} + +const FooterLogo = ({ + sources, + alt, + width, + height, + logo, +}: Pick<ThemedImageProps, 'sources' | 'alt' | 'width' | 'height'> & { logo: any }) => { + // Get window width for responsiveness + const windowSize = useWindowSize(); + + // Set threshold for mobile view (e.g., 768px) + const isMobile = windowSize === 'mobile' ? true : false; + + const getMobileLogoPath = (path: string) => path?.replace('.svg', '-mobile.svg'); + + // Choose appropriate image sources based on screen size + // const responsiveSources = { + // light: useBaseUrl(isMobile ? getMobileLogoPath(logo.src) : logo.src), + // dark: useBaseUrl(isMobile ? getMobileLogoPath(logo.srcDark || logo.src) : (logo.srcDark || logo.src)), + // }; + const responsiveSources = { + light: useBaseUrl(isMobile ? getMobileLogoPath(logo?.src) : logo?.src), + dark: useBaseUrl(isMobile ? getMobileLogoPath(logo?.srcDark || logo?.src) : (logo?.srcDark || logo?.src)), + }; + + return ( + <ThemedImage + className="footer__logo" + alt={alt} + sources={responsiveSources} + width={width} + height={height} + /> + ); +} + +function Footer(): JSX.Element | null { + const socialLinks = { + linkedin: "https://www.linkedin.com/company/stackql", + twitter: "https://twitter.com/stackql", + github: "https://github.com/stackql", + discord: "https://discord.com/invite/xVXZ9d5NxN", + slack: "https://join.slack.com/t/stackqlcommunity/shared_invite/zt-1cbdq9s5v-CkY65IMAesCgFqjN6FU6hg", + }; + + const {colorMode} = useColorMode(); + + const {footer} = useThemeConfig(); + + const {copyright, links = [], logo = { src: '' }} = footer || {}; + const sources = { + light: useBaseUrl(logo.src), + dark: useBaseUrl(logo.srcDark || logo.src), + }; + + if (!footer) { + return null; + } + + return ( + <footer + className={clsx('footer', { + 'footer--dark': footer.style === 'dark', + })} + > + <div className="container"> + {links && links.length > 0 && ( + <div className="row footer__links"> + <div className="col col--6 footer__col"> + {logo && (logo.src || logo.srcDark) && ( + <div className="margin-bottom--sm"> + {logo.href ? ( + <Link href={logo.href} className={styles.footerLogoLink}> + <FooterLogo alt={logo.alt} sources={sources} logo={logo} /> + </Link> + ) : ( + <FooterLogo alt={logo.alt} sources={sources} logo={logo} /> + )} + </div> + )} + <p className="footer__subtitle"> + A new approach to querying and <br /> + provisioning cloud services. + </p> + </div> + {links.map((linkItem, i) => ( + <div key={i} className="col footer__col"> + {linkItem.title != null ? ( + <h4 className="footer__title">{linkItem.title}</h4> + ) : null} + {linkItem.items != null && + Array.isArray(linkItem.items) && + linkItem.items.length > 0 ? ( + <ul className="footer__items"> + {linkItem.items.map((item, key) => + item.html ? ( + <li + key={key} + className="footer__item" // Developer provided the HTML, so assume it's safe. + // eslint-disable-next-line react/no-danger + dangerouslySetInnerHTML={{ + __html: item.html, + }} + /> + ) : ( + <li key={item.href || item.to} className="footer__item"> + <FooterLink {...item} /> + </li> + ), + )} + </ul> + ) : null} + </div> + ))} + </div> + )} + <div className="divider" /> + {(logo || copyright) && ( + <> + <div className="footer__bottom text--center"> + {copyright ? ( + <div + className="footer__copyright" // Developer provided the HTML, so assume it's safe. + // eslint-disable-next-line react/no-danger + dangerouslySetInnerHTML={{ + __html: copyright, + }} + /> + ) : null} + </div> + {/* Social Icons Container with Fixed Spacing */} + <div className="footer__bottom text--center" style={socialIconsContainerStyle}> + <IconButton + className="footerSocialIconButton" + href={socialLinks.github} + size="large" + target="_blank" + rel="noopener" + style={iconButtonStyle} + > + <Icon icon="akar-icons:github-fill" width="24" color={colorMode === 'dark' ? 'white' : ''} /> + </IconButton> + <IconButton + className="footerSocialIconButton" + href={socialLinks.twitter} + size="large" + target="_blank" + rel="noopener" + style={iconButtonStyle} + > + <Icon icon="simple-icons:x" width="24" color={colorMode === 'dark' ? 'white' : ''} /> + </IconButton> + <IconButton + className="footerSocialIconButton" + href={socialLinks.linkedin} + size="large" + target="_blank" + rel="noopener" + style={iconButtonStyle} + > + <Icon icon="fa:linkedin-square" width="24" color={colorMode === 'dark' ? 'white' : ''} /> + </IconButton> + <IconButton + className="footerSocialIconButton" + href={socialLinks.discord} + size="large" + target="_blank" + rel="noopener" + style={iconButtonStyle} + > + <Icon icon="mdi:discord" width="24" color={colorMode === 'dark' ? 'white' : ''} /> + </IconButton> + <IconButton + className="footerSocialIconButton" + href={socialLinks.slack} + size="large" + target="_blank" + rel="noopener" + style={iconButtonStyle} + > + <Icon icon="fa:slack" width="24" color={colorMode === 'dark' ? 'white' : ''} /> + </IconButton> + </div> + </> + )} + </div> + </footer> + ); +} + +export default Footer; \ No newline at end of file diff --git a/website/src/theme/Footer/styles.module.css b/website/src/theme/Footer/styles.module.css new file mode 100644 index 0000000..92e3c3b --- /dev/null +++ b/website/src/theme/Footer/styles.module.css @@ -0,0 +1,16 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +.footerLogoLink { + opacity: 1; + transition: opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default); +} + +.footerLogoLink:hover { + opacity: 0.5; +} + diff --git a/website/src/theme/Logo/index.d.ts b/website/src/theme/Logo/index.d.ts new file mode 100644 index 0000000..786099f --- /dev/null +++ b/website/src/theme/Logo/index.d.ts @@ -0,0 +1,9 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import { type ReactNode } from 'react'; +import type { Props } from '@theme/Logo'; +export default function Logo(props: Props): ReactNode; diff --git a/website/src/theme/Logo/index.js b/website/src/theme/Logo/index.js new file mode 100644 index 0000000..d0b73e2 --- /dev/null +++ b/website/src/theme/Logo/index.js @@ -0,0 +1,76 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import React from 'react'; +import Link from '@docusaurus/Link'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import {useThemeConfig, useWindowSize} from '@docusaurus/theme-common'; +import ThemedImage from '@theme/ThemedImage'; +function LogoThemedImage({logo, alt, imageClassName}) { +// Add window size detection + const windowSize = useWindowSize(); + + // Determine if on mobile + const isMobile = windowSize === 'mobile'; + + // Function to generate mobile logo path + const getMobileLogoPath = (path) => path?.replace('.svg', '-mobile.svg'); + + // Get appropriate logo sources based on device + const sources = { + light: useBaseUrl(isMobile ? getMobileLogoPath(logo.src) : logo.src), + dark: useBaseUrl(isMobile ? getMobileLogoPath(logo.srcDark || logo.src) : (logo.srcDark || logo.src)), + }; + const themedImage = ( + <ThemedImage + className={logo.className} + sources={sources} + height={logo.height} + width={logo.width} + alt={alt} + style={logo.style} + /> + ); + // Is this extra div really necessary? + // introduced in https://github.com/facebook/docusaurus/pull/5666 + return imageClassName ? ( + <div className={imageClassName}>{themedImage}</div> + ) : ( + themedImage + ); +} +export default function Logo(props) { + const { + siteConfig: {title}, + } = useDocusaurusContext(); + const { + navbar: {title: navbarTitle, logo}, + } = useThemeConfig(); + const {imageClassName, titleClassName, ...propsRest} = props; + const logoLink = useBaseUrl(logo?.href || '/'); + // If visible title is shown, fallback alt text should be + // an empty string to mark the logo as decorative. + const fallbackAlt = navbarTitle ? '' : title; + // Use logo alt text if provided (including empty string), + // and provide a sensible fallback otherwise. + const alt = logo?.alt ?? fallbackAlt; + return ( + <Link + to={logoLink} + {...propsRest} + {...(logo?.target && {target: logo.target})}> + {logo && ( + <LogoThemedImage + logo={logo} + alt={alt} + imageClassName={imageClassName} + /> + )} + {navbarTitle != null && <b className={titleClassName}>{navbarTitle}</b>} + </Link> + ); +} diff --git a/website/static/.nojekyll b/website/static/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/website/static/CNAME b/website/static/CNAME new file mode 100644 index 0000000..3caf1e3 --- /dev/null +++ b/website/static/CNAME @@ -0,0 +1 @@ +nvidia-provider.stackql.io diff --git a/website/static/apple-touch-icon.png b/website/static/apple-touch-icon.png new file mode 100644 index 0000000..54d5bf4 Binary files /dev/null and b/website/static/apple-touch-icon.png differ diff --git a/website/static/favicon-16x16.png b/website/static/favicon-16x16.png new file mode 100644 index 0000000..178c107 Binary files /dev/null and b/website/static/favicon-16x16.png differ diff --git a/website/static/favicon-32x32.png b/website/static/favicon-32x32.png new file mode 100644 index 0000000..f1efee0 Binary files /dev/null and b/website/static/favicon-32x32.png differ diff --git a/website/static/favicon.ico b/website/static/favicon.ico new file mode 100644 index 0000000..0145fbf Binary files /dev/null and b/website/static/favicon.ico differ diff --git a/website/static/img/favicon-16x16.png b/website/static/img/favicon-16x16.png new file mode 100644 index 0000000..178c107 Binary files /dev/null and b/website/static/img/favicon-16x16.png differ diff --git a/website/static/img/favicon-32x32.png b/website/static/img/favicon-32x32.png new file mode 100644 index 0000000..f1efee0 Binary files /dev/null and b/website/static/img/favicon-32x32.png differ diff --git a/website/static/img/favicon.ico b/website/static/img/favicon.ico new file mode 100644 index 0000000..0145fbf Binary files /dev/null and b/website/static/img/favicon.ico differ diff --git a/website/static/img/stackql-cover.png b/website/static/img/stackql-cover.png new file mode 100644 index 0000000..872999a Binary files /dev/null and b/website/static/img/stackql-cover.png differ diff --git a/website/static/img/stackql-featured-image.png b/website/static/img/stackql-featured-image.png new file mode 100644 index 0000000..872999a Binary files /dev/null and b/website/static/img/stackql-featured-image.png differ diff --git a/website/static/img/stackql-nvidia-provider-featured-image.png b/website/static/img/stackql-nvidia-provider-featured-image.png new file mode 100644 index 0000000..9474ad3 Binary files /dev/null and b/website/static/img/stackql-nvidia-provider-featured-image.png differ diff --git a/website/static/img/stackql-registry-logo-mobile.svg b/website/static/img/stackql-registry-logo-mobile.svg new file mode 100644 index 0000000..1de09ec --- /dev/null +++ b/website/static/img/stackql-registry-logo-mobile.svg @@ -0,0 +1,3 @@ +<svg width="152" height="30" viewBox="0 0 144 22" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M7.512 18.288C12.312 18.288 14.64 15.888 14.64 13.08C14.64 6.912 4.872 9.048 4.872 5.952C4.872 4.896 5.76 4.032 8.064 4.032C9.552 4.032 11.16 4.464 12.72 5.352L13.92 2.4C12.36 1.416 10.2 0.912 8.088 0.912C3.312 0.912 1.008 3.288 1.008 6.144C1.008 12.384 10.776 10.224 10.776 13.368C10.776 14.4 9.84 15.168 7.536 15.168C5.52 15.168 3.408 14.448 1.992 13.416L0.672 16.344C2.16 17.496 4.848 18.288 7.512 18.288ZM20.5423 18H24.4303V4.368H29.8063V1.2H15.1663V4.368H20.5423V18ZM43.6065 18H47.6865L40.1745 1.2H36.3345L28.8465 18H32.8305L34.3185 14.4H42.1185L43.6065 18ZM35.5665 11.448L38.2305 5.016L40.8945 11.448H35.5665ZM57.2351 18.288C60.1631 18.288 62.5871 17.232 64.1711 15.288L61.6751 12.984C60.5471 14.304 59.1311 14.976 57.4511 14.976C54.3071 14.976 52.0751 12.768 52.0751 9.6C52.0751 6.432 54.3071 4.224 57.4511 4.224C59.1311 4.224 60.5471 4.896 61.6751 6.192L64.1711 3.888C62.5871 1.968 60.1631 0.912 57.2591 0.912C52.0271 0.912 48.1391 4.536 48.1391 9.6C48.1391 14.664 52.0271 18.288 57.2351 18.288ZM78.2927 18H82.8287L75.4607 8.688L82.4207 1.2H78.1007L70.6607 9.048V1.2H66.7967V18H70.6607V13.752L72.9167 11.4L78.2927 18ZM100.393 17.736C99.6009 18.576 98.6889 18.984 97.6569 18.984C96.8169 18.984 96.0969 18.672 95.2809 17.808C98.8569 16.656 101.281 13.536 101.281 9.6C101.281 4.584 97.3689 0.912 92.0889 0.912C86.7849 0.912 82.8969 4.608 82.8969 9.6C82.8969 14.16 86.1369 17.64 90.7449 18.216C93.3369 20.952 95.0889 21.864 97.5849 21.864C99.4329 21.864 101.017 21.144 102.121 19.8L100.393 17.736ZM86.8329 9.6C86.8329 6.408 89.0889 4.224 92.0889 4.224C95.0889 4.224 97.3449 6.408 97.3449 9.6C97.3449 12.792 95.0889 14.976 92.0889 14.976C89.0889 14.976 86.8329 12.792 86.8329 9.6ZM104.203 18H116.515V14.832H108.091V1.2H104.203V18ZM118.183 3.696V6.672L126.175 9.6L118.183 12.504V15.504L129.607 11.16V8.04L118.183 3.696ZM132.551 3.696V6.672L140.543 9.6L132.551 12.504V15.504L143.975 11.16V8.04L132.551 3.696Z" fill="#0F4C81"/> +</svg> diff --git a/website/static/img/stackql-registry-logo-white-mobile.svg b/website/static/img/stackql-registry-logo-white-mobile.svg new file mode 100644 index 0000000..88c628e --- /dev/null +++ b/website/static/img/stackql-registry-logo-white-mobile.svg @@ -0,0 +1,3 @@ +<svg width="152" height="30" viewBox="0 0 144 22" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M7.512 18.288C12.312 18.288 14.64 15.888 14.64 13.08C14.64 6.912 4.872 9.048 4.872 5.952C4.872 4.896 5.76 4.032 8.064 4.032C9.552 4.032 11.16 4.464 12.72 5.352L13.92 2.4C12.36 1.416 10.2 0.912 8.088 0.912C3.312 0.912 1.008 3.288 1.008 6.144C1.008 12.384 10.776 10.224 10.776 13.368C10.776 14.4 9.84 15.168 7.536 15.168C5.52 15.168 3.408 14.448 1.992 13.416L0.672 16.344C2.16 17.496 4.848 18.288 7.512 18.288ZM20.5423 18H24.4303V4.368H29.8063V1.2H15.1663V4.368H20.5423V18ZM43.6065 18H47.6865L40.1745 1.2H36.3345L28.8465 18H32.8305L34.3185 14.4H42.1185L43.6065 18ZM35.5665 11.448L38.2305 5.016L40.8945 11.448H35.5665ZM57.2351 18.288C60.1631 18.288 62.5871 17.232 64.1711 15.288L61.6751 12.984C60.5471 14.304 59.1311 14.976 57.4511 14.976C54.3071 14.976 52.0751 12.768 52.0751 9.6C52.0751 6.432 54.3071 4.224 57.4511 4.224C59.1311 4.224 60.5471 4.896 61.6751 6.192L64.1711 3.888C62.5871 1.968 60.1631 0.912 57.2591 0.912C52.0271 0.912 48.1391 4.536 48.1391 9.6C48.1391 14.664 52.0271 18.288 57.2351 18.288ZM78.2927 18H82.8287L75.4607 8.688L82.4207 1.2H78.1007L70.6607 9.048V1.2H66.7967V18H70.6607V13.752L72.9167 11.4L78.2927 18ZM100.393 17.736C99.6009 18.576 98.6889 18.984 97.6569 18.984C96.8169 18.984 96.0969 18.672 95.2809 17.808C98.8569 16.656 101.281 13.536 101.281 9.6C101.281 4.584 97.3689 0.912 92.0889 0.912C86.7849 0.912 82.8969 4.608 82.8969 9.6C82.8969 14.16 86.1369 17.64 90.7449 18.216C93.3369 20.952 95.0889 21.864 97.5849 21.864C99.4329 21.864 101.017 21.144 102.121 19.8L100.393 17.736ZM86.8329 9.6C86.8329 6.408 89.0889 4.224 92.0889 4.224C95.0889 4.224 97.3449 6.408 97.3449 9.6C97.3449 12.792 95.0889 14.976 92.0889 14.976C89.0889 14.976 86.8329 12.792 86.8329 9.6ZM104.203 18H116.515V14.832H108.091V1.2H104.203V18ZM118.183 3.696V6.672L126.175 9.6L118.183 12.504V15.504L129.607 11.16V8.04L118.183 3.696ZM132.551 3.696V6.672L140.543 9.6L132.551 12.504V15.504L143.975 11.16V8.04L132.551 3.696Z" fill="white"/> +</svg> diff --git a/website/static/img/stackql-registry-logo-white.svg b/website/static/img/stackql-registry-logo-white.svg new file mode 100644 index 0000000..9b98a38 --- /dev/null +++ b/website/static/img/stackql-registry-logo-white.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="320" zoomAndPan="magnify" viewBox="0 0 240 30.000001" height="40" preserveAspectRatio="xMidYMid meet" version="1.2"><defs><clipPath id="c024d59819"><path d="M 4 6 L 139.597656 6 L 139.597656 26 L 4 26 Z M 4 6 "/></clipPath></defs><g id="a94e4a83c7"><path style="fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:#ffffff;stroke-opacity:1;stroke-miterlimit:4;" d="M 0.000872918 0.997741 L 22.189773 0.997741 " transform="matrix(0.00000000125607,0.719673,-0.719673,0.00000000125607,146.136016,6.464216)"/><g clip-rule="nonzero" clip-path="url(#c024d59819)"><path style=" stroke:none;fill-rule:nonzero;fill:#ffffff;fill-opacity:1;" d="M 10.988281 22.628906 C 15.503906 22.628906 17.695312 20.367188 17.695312 17.726562 C 17.695312 11.917969 8.503906 13.929688 8.503906 11.015625 C 8.503906 10.023438 9.339844 9.207031 11.507812 9.207031 C 12.90625 9.207031 14.421875 9.613281 15.890625 10.449219 L 17.019531 7.671875 C 15.550781 6.746094 13.515625 6.269531 11.53125 6.269531 C 7.035156 6.269531 4.863281 8.507812 4.863281 11.195312 C 4.863281 17.070312 14.058594 15.035156 14.058594 17.996094 C 14.058594 18.96875 13.179688 19.691406 11.011719 19.691406 C 9.113281 19.691406 7.125 19.011719 5.792969 18.042969 L 4.550781 20.796875 C 5.949219 21.882812 8.480469 22.628906 10.988281 22.628906 Z M 23.253906 22.355469 L 26.910156 22.355469 L 26.910156 9.523438 L 31.972656 9.523438 L 31.972656 6.542969 L 18.191406 6.542969 L 18.191406 9.523438 L 23.253906 9.523438 Z M 44.960938 22.355469 L 48.800781 22.355469 L 41.730469 6.542969 L 38.117188 6.542969 L 31.070312 22.355469 L 34.820312 22.355469 L 36.21875 18.96875 L 43.5625 18.96875 Z M 37.394531 16.1875 L 39.902344 10.132812 L 42.410156 16.1875 Z M 57.789062 22.628906 C 60.546875 22.628906 62.828125 21.632812 64.320312 19.804688 L 61.96875 17.632812 C 60.90625 18.878906 59.574219 19.507812 57.992188 19.507812 C 55.035156 19.507812 52.933594 17.429688 52.933594 14.449219 C 52.933594 11.46875 55.035156 9.390625 57.992188 9.390625 C 59.574219 9.390625 60.90625 10.023438 61.96875 11.242188 L 64.320312 9.074219 C 62.828125 7.265625 60.546875 6.269531 57.8125 6.269531 C 52.886719 6.269531 49.230469 9.683594 49.230469 14.449219 C 49.230469 19.214844 52.886719 22.628906 57.789062 22.628906 Z M 77.613281 22.355469 L 81.882812 22.355469 L 74.945312 13.589844 L 81.496094 6.542969 L 77.429688 6.542969 L 70.429688 13.929688 L 70.429688 6.542969 L 66.789062 6.542969 L 66.789062 22.355469 L 70.429688 22.355469 L 70.429688 18.359375 L 72.550781 16.144531 Z M 98.414062 22.109375 C 97.667969 22.898438 96.808594 23.28125 95.839844 23.28125 C 95.046875 23.28125 94.371094 22.988281 93.601562 22.175781 C 96.96875 21.089844 99.25 18.152344 99.25 14.449219 C 99.25 9.726562 95.566406 6.269531 90.597656 6.269531 C 85.605469 6.269531 81.945312 9.75 81.945312 14.449219 C 81.945312 18.742188 84.996094 22.015625 89.332031 22.558594 C 91.773438 25.132812 93.421875 25.992188 95.769531 25.992188 C 97.511719 25.992188 99 25.316406 100.039062 24.050781 Z M 85.652344 14.449219 C 85.652344 11.445312 87.773438 9.390625 90.597656 9.390625 C 93.421875 9.390625 95.546875 11.445312 95.546875 14.449219 C 95.546875 17.453125 93.421875 19.507812 90.597656 19.507812 C 87.773438 19.507812 85.652344 17.453125 85.652344 14.449219 Z M 102 22.355469 L 113.589844 22.355469 L 113.589844 19.375 L 105.660156 19.375 L 105.660156 6.542969 L 102 6.542969 Z M 115.160156 8.890625 L 115.160156 11.691406 L 122.683594 14.449219 L 115.160156 17.183594 L 115.160156 20.007812 L 125.914062 15.917969 L 125.914062 12.980469 Z M 128.683594 8.890625 L 128.683594 11.691406 L 136.207031 14.449219 L 128.683594 17.183594 L 128.683594 20.007812 L 139.4375 15.917969 L 139.4375 12.980469 Z M 128.683594 8.890625 "/></g><g style="fill:#ffffff;fill-opacity:1;"><g transform="translate(151.310577, 19.596776)"><path style="stroke:none" d="M 8.34375 0 L 6.21875 -3.078125 L 3.859375 -3.078125 L 3.859375 0 L 1.3125 0 L 1.3125 -11.03125 L 6.078125 -11.03125 C 7.054688 -11.03125 7.90625 -10.867188 8.625 -10.546875 C 9.351562 -10.222656 9.910156 -9.757812 10.296875 -9.15625 C 10.679688 -8.5625 10.875 -7.851562 10.875 -7.03125 C 10.875 -6.207031 10.675781 -5.5 10.28125 -4.90625 C 9.894531 -4.3125 9.335938 -3.859375 8.609375 -3.546875 L 11.078125 0 Z M 8.296875 -7.03125 C 8.296875 -7.65625 8.09375 -8.128906 7.6875 -8.453125 C 7.289062 -8.785156 6.707031 -8.953125 5.9375 -8.953125 L 3.859375 -8.953125 L 3.859375 -5.109375 L 5.9375 -5.109375 C 6.707031 -5.109375 7.289062 -5.273438 7.6875 -5.609375 C 8.09375 -5.941406 8.296875 -6.414062 8.296875 -7.03125 Z M 8.296875 -7.03125 "/></g></g><g style="fill:#ffffff;fill-opacity:1;"><g transform="translate(162.896823, 19.596776)"><path style="stroke:none" d="M 9.859375 -2.046875 L 9.859375 0 L 1.3125 0 L 1.3125 -11.03125 L 9.65625 -11.03125 L 9.65625 -8.984375 L 3.84375 -8.984375 L 3.84375 -6.59375 L 8.96875 -6.59375 L 8.96875 -4.609375 L 3.84375 -4.609375 L 3.84375 -2.046875 Z M 9.859375 -2.046875 "/></g></g><g style="fill:#ffffff;fill-opacity:1;"><g transform="translate(173.474198, 19.596776)"><path style="stroke:none" d="M 8.765625 -5.6875 L 11.09375 -5.6875 L 11.09375 -1.21875 C 10.5 -0.757812 9.804688 -0.410156 9.015625 -0.171875 C 8.222656 0.0664062 7.429688 0.1875 6.640625 0.1875 C 5.492188 0.1875 4.460938 -0.0546875 3.546875 -0.546875 C 2.628906 -1.035156 1.910156 -1.710938 1.390625 -2.578125 C 0.867188 -3.441406 0.609375 -4.421875 0.609375 -5.515625 C 0.609375 -6.609375 0.867188 -7.585938 1.390625 -8.453125 C 1.910156 -9.328125 2.632812 -10.003906 3.5625 -10.484375 C 4.488281 -10.972656 5.53125 -11.21875 6.6875 -11.21875 C 7.65625 -11.21875 8.53125 -11.054688 9.3125 -10.734375 C 10.101562 -10.410156 10.765625 -9.9375 11.296875 -9.3125 L 9.671875 -7.796875 C 8.878906 -8.628906 7.925781 -9.046875 6.8125 -9.046875 C 6.101562 -9.046875 5.472656 -8.898438 4.921875 -8.609375 C 4.378906 -8.316406 3.957031 -7.898438 3.65625 -7.359375 C 3.351562 -6.828125 3.203125 -6.210938 3.203125 -5.515625 C 3.203125 -4.835938 3.351562 -4.226562 3.65625 -3.6875 C 3.957031 -3.15625 4.378906 -2.738281 4.921875 -2.4375 C 5.460938 -2.132812 6.082031 -1.984375 6.78125 -1.984375 C 7.519531 -1.984375 8.179688 -2.140625 8.765625 -2.453125 Z M 8.765625 -5.6875 "/></g></g><g style="fill:#ffffff;fill-opacity:1;"><g transform="translate(185.627934, 19.596776)"><path style="stroke:none" d="M 1.3125 -11.03125 L 3.859375 -11.03125 L 3.859375 0 L 1.3125 0 Z M 1.3125 -11.03125 "/></g></g><g style="fill:#ffffff;fill-opacity:1;"><g transform="translate(190.798397, 19.596776)"><path style="stroke:none" d="M 4.9375 0.1875 C 4.0625 0.1875 3.21875 0.0703125 2.40625 -0.15625 C 1.59375 -0.394531 0.9375 -0.707031 0.4375 -1.09375 L 1.3125 -3.015625 C 1.78125 -2.660156 2.335938 -2.378906 2.984375 -2.171875 C 3.640625 -1.960938 4.296875 -1.859375 4.953125 -1.859375 C 5.671875 -1.859375 6.203125 -1.960938 6.546875 -2.171875 C 6.898438 -2.390625 7.078125 -2.679688 7.078125 -3.046875 C 7.078125 -3.304688 6.972656 -3.519531 6.765625 -3.6875 C 6.566406 -3.863281 6.304688 -4.003906 5.984375 -4.109375 C 5.660156 -4.210938 5.226562 -4.332031 4.6875 -4.46875 C 3.84375 -4.664062 3.148438 -4.863281 2.609375 -5.0625 C 2.078125 -5.257812 1.617188 -5.578125 1.234375 -6.015625 C 0.847656 -6.460938 0.65625 -7.050781 0.65625 -7.78125 C 0.65625 -8.425781 0.828125 -9.007812 1.171875 -9.53125 C 1.523438 -10.050781 2.050781 -10.460938 2.75 -10.765625 C 3.445312 -11.066406 4.300781 -11.21875 5.3125 -11.21875 C 6.019531 -11.21875 6.707031 -11.132812 7.375 -10.96875 C 8.050781 -10.800781 8.640625 -10.5625 9.140625 -10.25 L 8.359375 -8.3125 C 7.335938 -8.882812 6.316406 -9.171875 5.296875 -9.171875 C 4.578125 -9.171875 4.046875 -9.054688 3.703125 -8.828125 C 3.367188 -8.597656 3.203125 -8.296875 3.203125 -7.921875 C 3.203125 -7.535156 3.398438 -7.25 3.796875 -7.0625 C 4.191406 -6.882812 4.789062 -6.707031 5.59375 -6.53125 C 6.4375 -6.332031 7.125 -6.128906 7.65625 -5.921875 C 8.195312 -5.722656 8.65625 -5.40625 9.03125 -4.96875 C 9.414062 -4.539062 9.609375 -3.960938 9.609375 -3.234375 C 9.609375 -2.597656 9.429688 -2.019531 9.078125 -1.5 C 8.734375 -0.976562 8.207031 -0.566406 7.5 -0.265625 C 6.800781 0.0351562 5.945312 0.1875 4.9375 0.1875 Z M 4.9375 0.1875 "/></g></g><g style="fill:#ffffff;fill-opacity:1;"><g transform="translate(200.855572, 19.596776)"><path style="stroke:none" d="M 3.59375 -8.953125 L 0.0625 -8.953125 L 0.0625 -11.03125 L 9.6875 -11.03125 L 9.6875 -8.953125 L 6.15625 -8.953125 L 6.15625 0 L 3.59375 0 Z M 3.59375 -8.953125 "/></g></g><g style="fill:#ffffff;fill-opacity:1;"><g transform="translate(210.597477, 19.596776)"><path style="stroke:none" d="M 8.34375 0 L 6.21875 -3.078125 L 3.859375 -3.078125 L 3.859375 0 L 1.3125 0 L 1.3125 -11.03125 L 6.078125 -11.03125 C 7.054688 -11.03125 7.90625 -10.867188 8.625 -10.546875 C 9.351562 -10.222656 9.910156 -9.757812 10.296875 -9.15625 C 10.679688 -8.5625 10.875 -7.851562 10.875 -7.03125 C 10.875 -6.207031 10.675781 -5.5 10.28125 -4.90625 C 9.894531 -4.3125 9.335938 -3.859375 8.609375 -3.546875 L 11.078125 0 Z M 8.296875 -7.03125 C 8.296875 -7.65625 8.09375 -8.128906 7.6875 -8.453125 C 7.289062 -8.785156 6.707031 -8.953125 5.9375 -8.953125 L 3.859375 -8.953125 L 3.859375 -5.109375 L 5.9375 -5.109375 C 6.707031 -5.109375 7.289062 -5.273438 7.6875 -5.609375 C 8.09375 -5.941406 8.296875 -6.414062 8.296875 -7.03125 Z M 8.296875 -7.03125 "/></g></g><g style="fill:#ffffff;fill-opacity:1;"><g transform="translate(222.183722, 19.596776)"><path style="stroke:none" d="M 6.609375 -3.90625 L 6.609375 0 L 4.046875 0 L 4.046875 -3.9375 L -0.21875 -11.03125 L 2.484375 -11.03125 L 5.4375 -6.140625 L 8.390625 -11.03125 L 10.890625 -11.03125 Z M 6.609375 -3.90625 "/></g></g></g></svg> \ No newline at end of file diff --git a/website/static/img/stackql-registry-logo.svg b/website/static/img/stackql-registry-logo.svg new file mode 100644 index 0000000..6e34cb9 --- /dev/null +++ b/website/static/img/stackql-registry-logo.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="320" zoomAndPan="magnify" viewBox="0 0 240 30.000001" height="40" preserveAspectRatio="xMidYMid meet" version="1.2"><defs><clipPath id="c64fadcf93"><path d="M 4 6 L 139.597656 6 L 139.597656 26.460938 L 4 26.460938 Z M 4 6 "/></clipPath></defs><g id="6a36b6d5cc"><path style="fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:#7ed957;stroke-opacity:1;stroke-miterlimit:4;" d="M 0.000872918 0.997741 L 22.189773 0.997741 " transform="matrix(0.00000000125607,0.719673,-0.719673,0.00000000125607,146.136016,6.464216)"/><g clip-rule="nonzero" clip-path="url(#c64fadcf93)"><path style=" stroke:none;fill-rule:nonzero;fill:#0f4c81;fill-opacity:1;" d="M 10.992188 22.910156 C 15.511719 22.910156 17.707031 20.613281 17.707031 17.925781 C 17.707031 12.027344 8.503906 14.070312 8.503906 11.109375 C 8.503906 10.097656 9.339844 9.269531 11.511719 9.269531 C 12.914062 9.269531 14.429688 9.683594 15.898438 10.535156 L 17.027344 7.710938 C 15.558594 6.769531 13.523438 6.285156 11.535156 6.285156 C 7.035156 6.285156 4.867188 8.558594 4.867188 11.292969 C 4.867188 17.261719 14.066406 15.195312 14.066406 18.203125 C 14.066406 19.191406 13.183594 19.925781 11.015625 19.925781 C 9.117188 19.925781 7.125 19.234375 5.792969 18.25 L 4.550781 21.050781 C 5.949219 22.152344 8.484375 22.910156 10.992188 22.910156 Z M 23.265625 22.632812 L 26.925781 22.632812 L 26.925781 9.59375 L 31.992188 9.59375 L 31.992188 6.5625 L 18.203125 6.5625 L 18.203125 9.59375 L 23.265625 9.59375 Z M 44.988281 22.632812 L 48.832031 22.632812 L 41.757812 6.5625 L 38.140625 6.5625 L 31.085938 22.632812 L 34.839844 22.632812 L 36.242188 19.191406 L 43.589844 19.191406 Z M 37.417969 16.367188 L 39.925781 10.210938 L 42.433594 16.367188 Z M 57.828125 22.910156 C 60.585938 22.910156 62.867188 21.898438 64.359375 20.039062 L 62.007812 17.835938 C 60.945312 19.097656 59.613281 19.742188 58.03125 19.742188 C 55.070312 19.742188 52.964844 17.628906 52.964844 14.597656 C 52.964844 11.566406 55.070312 9.453125 58.03125 9.453125 C 59.613281 9.453125 60.945312 10.097656 62.007812 11.335938 L 64.359375 9.132812 C 62.867188 7.296875 60.585938 6.285156 57.847656 6.285156 C 52.921875 6.285156 49.257812 9.753906 49.257812 14.597656 C 49.257812 19.441406 52.921875 22.910156 57.828125 22.910156 Z M 77.660156 22.632812 L 81.933594 22.632812 L 74.992188 13.726562 L 81.550781 6.5625 L 77.480469 6.5625 L 70.472656 14.070312 L 70.472656 6.5625 L 66.832031 6.5625 L 66.832031 22.632812 L 70.472656 22.632812 L 70.472656 18.570312 L 72.597656 16.320312 Z M 98.476562 22.382812 C 97.730469 23.183594 96.871094 23.574219 95.898438 23.574219 C 95.109375 23.574219 94.429688 23.277344 93.664062 22.449219 C 97.03125 21.347656 99.3125 18.363281 99.3125 14.597656 C 99.3125 9.796875 95.628906 6.285156 90.65625 6.285156 C 85.660156 6.285156 81.996094 9.820312 81.996094 14.597656 C 81.996094 18.960938 85.050781 22.289062 89.390625 22.839844 C 91.832031 25.457031 93.480469 26.332031 95.832031 26.332031 C 97.574219 26.332031 99.066406 25.640625 100.105469 24.355469 Z M 85.707031 14.597656 C 85.707031 11.542969 87.828125 9.453125 90.65625 9.453125 C 93.480469 9.453125 95.605469 11.542969 95.605469 14.597656 C 95.605469 17.652344 93.480469 19.742188 90.65625 19.742188 C 87.828125 19.742188 85.707031 17.652344 85.707031 14.597656 Z M 102.066406 22.632812 L 113.664062 22.632812 L 113.664062 19.601562 L 105.726562 19.601562 L 105.726562 6.5625 L 102.066406 6.5625 Z M 115.234375 8.949219 L 115.234375 11.796875 L 122.761719 14.597656 L 115.234375 17.375 L 115.234375 20.246094 L 125.996094 16.089844 L 125.996094 13.105469 Z M 128.765625 8.949219 L 128.765625 11.796875 L 136.296875 14.597656 L 128.765625 17.375 L 128.765625 20.246094 L 139.527344 16.089844 L 139.527344 13.105469 Z M 128.765625 8.949219 "/></g><g style="fill:#7ed957;fill-opacity:1;"><g transform="translate(151.310577, 19.596776)"><path style="stroke:none" d="M 8.34375 0 L 6.21875 -3.078125 L 3.859375 -3.078125 L 3.859375 0 L 1.3125 0 L 1.3125 -11.03125 L 6.078125 -11.03125 C 7.054688 -11.03125 7.90625 -10.867188 8.625 -10.546875 C 9.351562 -10.222656 9.910156 -9.757812 10.296875 -9.15625 C 10.679688 -8.5625 10.875 -7.851562 10.875 -7.03125 C 10.875 -6.207031 10.675781 -5.5 10.28125 -4.90625 C 9.894531 -4.3125 9.335938 -3.859375 8.609375 -3.546875 L 11.078125 0 Z M 8.296875 -7.03125 C 8.296875 -7.65625 8.09375 -8.128906 7.6875 -8.453125 C 7.289062 -8.785156 6.707031 -8.953125 5.9375 -8.953125 L 3.859375 -8.953125 L 3.859375 -5.109375 L 5.9375 -5.109375 C 6.707031 -5.109375 7.289062 -5.273438 7.6875 -5.609375 C 8.09375 -5.941406 8.296875 -6.414062 8.296875 -7.03125 Z M 8.296875 -7.03125 "/></g></g><g style="fill:#7ed957;fill-opacity:1;"><g transform="translate(162.896823, 19.596776)"><path style="stroke:none" d="M 9.859375 -2.046875 L 9.859375 0 L 1.3125 0 L 1.3125 -11.03125 L 9.65625 -11.03125 L 9.65625 -8.984375 L 3.84375 -8.984375 L 3.84375 -6.59375 L 8.96875 -6.59375 L 8.96875 -4.609375 L 3.84375 -4.609375 L 3.84375 -2.046875 Z M 9.859375 -2.046875 "/></g></g><g style="fill:#7ed957;fill-opacity:1;"><g transform="translate(173.474198, 19.596776)"><path style="stroke:none" d="M 8.765625 -5.6875 L 11.09375 -5.6875 L 11.09375 -1.21875 C 10.5 -0.757812 9.804688 -0.410156 9.015625 -0.171875 C 8.222656 0.0664062 7.429688 0.1875 6.640625 0.1875 C 5.492188 0.1875 4.460938 -0.0546875 3.546875 -0.546875 C 2.628906 -1.035156 1.910156 -1.710938 1.390625 -2.578125 C 0.867188 -3.441406 0.609375 -4.421875 0.609375 -5.515625 C 0.609375 -6.609375 0.867188 -7.585938 1.390625 -8.453125 C 1.910156 -9.328125 2.632812 -10.003906 3.5625 -10.484375 C 4.488281 -10.972656 5.53125 -11.21875 6.6875 -11.21875 C 7.65625 -11.21875 8.53125 -11.054688 9.3125 -10.734375 C 10.101562 -10.410156 10.765625 -9.9375 11.296875 -9.3125 L 9.671875 -7.796875 C 8.878906 -8.628906 7.925781 -9.046875 6.8125 -9.046875 C 6.101562 -9.046875 5.472656 -8.898438 4.921875 -8.609375 C 4.378906 -8.316406 3.957031 -7.898438 3.65625 -7.359375 C 3.351562 -6.828125 3.203125 -6.210938 3.203125 -5.515625 C 3.203125 -4.835938 3.351562 -4.226562 3.65625 -3.6875 C 3.957031 -3.15625 4.378906 -2.738281 4.921875 -2.4375 C 5.460938 -2.132812 6.082031 -1.984375 6.78125 -1.984375 C 7.519531 -1.984375 8.179688 -2.140625 8.765625 -2.453125 Z M 8.765625 -5.6875 "/></g></g><g style="fill:#7ed957;fill-opacity:1;"><g transform="translate(185.627934, 19.596776)"><path style="stroke:none" d="M 1.3125 -11.03125 L 3.859375 -11.03125 L 3.859375 0 L 1.3125 0 Z M 1.3125 -11.03125 "/></g></g><g style="fill:#7ed957;fill-opacity:1;"><g transform="translate(190.798397, 19.596776)"><path style="stroke:none" d="M 4.9375 0.1875 C 4.0625 0.1875 3.21875 0.0703125 2.40625 -0.15625 C 1.59375 -0.394531 0.9375 -0.707031 0.4375 -1.09375 L 1.3125 -3.015625 C 1.78125 -2.660156 2.335938 -2.378906 2.984375 -2.171875 C 3.640625 -1.960938 4.296875 -1.859375 4.953125 -1.859375 C 5.671875 -1.859375 6.203125 -1.960938 6.546875 -2.171875 C 6.898438 -2.390625 7.078125 -2.679688 7.078125 -3.046875 C 7.078125 -3.304688 6.972656 -3.519531 6.765625 -3.6875 C 6.566406 -3.863281 6.304688 -4.003906 5.984375 -4.109375 C 5.660156 -4.210938 5.226562 -4.332031 4.6875 -4.46875 C 3.84375 -4.664062 3.148438 -4.863281 2.609375 -5.0625 C 2.078125 -5.257812 1.617188 -5.578125 1.234375 -6.015625 C 0.847656 -6.460938 0.65625 -7.050781 0.65625 -7.78125 C 0.65625 -8.425781 0.828125 -9.007812 1.171875 -9.53125 C 1.523438 -10.050781 2.050781 -10.460938 2.75 -10.765625 C 3.445312 -11.066406 4.300781 -11.21875 5.3125 -11.21875 C 6.019531 -11.21875 6.707031 -11.132812 7.375 -10.96875 C 8.050781 -10.800781 8.640625 -10.5625 9.140625 -10.25 L 8.359375 -8.3125 C 7.335938 -8.882812 6.316406 -9.171875 5.296875 -9.171875 C 4.578125 -9.171875 4.046875 -9.054688 3.703125 -8.828125 C 3.367188 -8.597656 3.203125 -8.296875 3.203125 -7.921875 C 3.203125 -7.535156 3.398438 -7.25 3.796875 -7.0625 C 4.191406 -6.882812 4.789062 -6.707031 5.59375 -6.53125 C 6.4375 -6.332031 7.125 -6.128906 7.65625 -5.921875 C 8.195312 -5.722656 8.65625 -5.40625 9.03125 -4.96875 C 9.414062 -4.539062 9.609375 -3.960938 9.609375 -3.234375 C 9.609375 -2.597656 9.429688 -2.019531 9.078125 -1.5 C 8.734375 -0.976562 8.207031 -0.566406 7.5 -0.265625 C 6.800781 0.0351562 5.945312 0.1875 4.9375 0.1875 Z M 4.9375 0.1875 "/></g></g><g style="fill:#7ed957;fill-opacity:1;"><g transform="translate(200.855572, 19.596776)"><path style="stroke:none" d="M 3.59375 -8.953125 L 0.0625 -8.953125 L 0.0625 -11.03125 L 9.6875 -11.03125 L 9.6875 -8.953125 L 6.15625 -8.953125 L 6.15625 0 L 3.59375 0 Z M 3.59375 -8.953125 "/></g></g><g style="fill:#7ed957;fill-opacity:1;"><g transform="translate(210.597477, 19.596776)"><path style="stroke:none" d="M 8.34375 0 L 6.21875 -3.078125 L 3.859375 -3.078125 L 3.859375 0 L 1.3125 0 L 1.3125 -11.03125 L 6.078125 -11.03125 C 7.054688 -11.03125 7.90625 -10.867188 8.625 -10.546875 C 9.351562 -10.222656 9.910156 -9.757812 10.296875 -9.15625 C 10.679688 -8.5625 10.875 -7.851562 10.875 -7.03125 C 10.875 -6.207031 10.675781 -5.5 10.28125 -4.90625 C 9.894531 -4.3125 9.335938 -3.859375 8.609375 -3.546875 L 11.078125 0 Z M 8.296875 -7.03125 C 8.296875 -7.65625 8.09375 -8.128906 7.6875 -8.453125 C 7.289062 -8.785156 6.707031 -8.953125 5.9375 -8.953125 L 3.859375 -8.953125 L 3.859375 -5.109375 L 5.9375 -5.109375 C 6.707031 -5.109375 7.289062 -5.273438 7.6875 -5.609375 C 8.09375 -5.941406 8.296875 -6.414062 8.296875 -7.03125 Z M 8.296875 -7.03125 "/></g></g><g style="fill:#7ed957;fill-opacity:1;"><g transform="translate(222.183722, 19.596776)"><path style="stroke:none" d="M 6.609375 -3.90625 L 6.609375 0 L 4.046875 0 L 4.046875 -3.9375 L -0.21875 -11.03125 L 2.484375 -11.03125 L 5.4375 -6.140625 L 8.390625 -11.03125 L 10.890625 -11.03125 Z M 6.609375 -3.90625 "/></g></g></g></svg> \ No newline at end of file diff --git a/website/static/safari-pinned-tab.svg b/website/static/safari-pinned-tab.svg new file mode 100644 index 0000000..2563f76 --- /dev/null +++ b/website/static/safari-pinned-tab.svg @@ -0,0 +1,27 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" + "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<svg version="1.0" xmlns="http://www.w3.org/2000/svg" + width="512.000000pt" height="512.000000pt" viewBox="0 0 512.000000 512.000000" + preserveAspectRatio="xMidYMid meet"> +<metadata> +Created by potrace 1.14, written by Peter Selinger 2001-2017 +</metadata> +<g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"> +<path d="M495 5101 c-225 -65 -386 -220 -463 -446 l-27 -80 -3 -1990 c-2 +-1466 0 -2004 8 -2045 7 -30 30 -93 52 -140 57 -119 176 -239 298 -299 157 +-76 -1 -71 2190 -78 2211 -7 2039 -12 2203 69 63 32 101 60 163 122 90 90 129 +153 171 271 l28 80 0 2025 0 2025 -26 63 c-109 257 -308 405 -579 432 -56 6 +-897 9 -2025 9 -1799 0 -1934 -2 -1990 -18z m1868 -2341 l227 -105 -2 -189 -3 +-189 -225 -104 c-417 -193 -713 -330 -1052 -487 -185 -86 -341 -156 -347 -156 +-8 0 -11 50 -9 171 l3 172 271 126 c149 69 435 203 637 296 201 94 363 173 +359 176 -4 3 -52 26 -107 51 -228 105 -958 443 -1057 490 l-108 51 0 167 c0 +92 2 169 5 172 3 3 270 -117 593 -266 323 -150 689 -319 815 -376z m737 470 +c157 -72 362 -167 455 -211 94 -43 310 -143 480 -222 l310 -143 3 -185 2 -185 +-47 -23 c-27 -13 -284 -133 -573 -266 -289 -134 -633 -293 -764 -354 -131 -61 +-243 -111 -247 -111 -5 0 -9 78 -9 173 l1 172 172 80 c95 43 316 146 492 228 +176 81 384 178 463 214 79 36 139 69 135 73 -7 7 -235 113 -1108 517 l-150 70 +-3 176 -2 176 52 -23 c29 -13 181 -83 338 -156z"/> +</g> +</svg> diff --git a/website/static/site.webmanifest b/website/static/site.webmanifest new file mode 100644 index 0000000..20055da --- /dev/null +++ b/website/static/site.webmanifest @@ -0,0 +1,11 @@ +{ + "name": "StackQL NVIDIA NGC Provider", + "short_name": "StackQL nvidia", + "icons": [ + { "src": "/favicon-32x32.png", "sizes": "32x32", "type": "image/png" }, + { "src": "/favicon-16x16.png", "sizes": "16x16", "type": "image/png" } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/website/yarn.lock b/website/yarn.lock new file mode 100644 index 0000000..574786a --- /dev/null +++ b/website/yarn.lock @@ -0,0 +1,11022 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@11ty/gray-matter@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@11ty/gray-matter/-/gray-matter-1.0.0.tgz#35ee04d76b870893c053f64f659c923a7a9db2d7" + integrity sha512-7mJJl+wf1AByoT0PknQiQfOPnVNT4fevGrUBVWO4HXsnYn1aQPyRyrELYrNUFleUBM++KzMKN6QaxHPk0t/6/g== + dependencies: + js-yaml "^4.1.0" + kind-of "^6.0.3" + section-matter "^1.0.0" + strip-bom-string "^1.0.0" + +"@algolia/abtesting@1.25.0": + version "1.25.0" + resolved "https://registry.yarnpkg.com/@algolia/abtesting/-/abtesting-1.25.0.tgz#cf3b1ead5b9910b22ec953bcf1e20ad8b308f5d4" + integrity sha512-rSTin9Uta23uaewYVQEp8XI9T3iA/zrg0/1G2vhf8oFFDxFL5vybnZ5IQwsVAg4JpKxPX4/WYNKdcfWrZymk7w== + dependencies: + "@algolia/client-common" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" + +"@algolia/autocomplete-core@1.19.2": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.19.2.tgz#702df67a08cb3cfe8c33ee1111ef136ec1a9e232" + integrity sha512-mKv7RyuAzXvwmq+0XRK8HqZXt9iZ5Kkm2huLjgn5JoCPtDy+oh9yxUMfDDaVCw0oyzZ1isdJBc7l9nuCyyR7Nw== + dependencies: + "@algolia/autocomplete-plugin-algolia-insights" "1.19.2" + "@algolia/autocomplete-shared" "1.19.2" + +"@algolia/autocomplete-core@^1.19.2": + version "1.19.11" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.19.11.tgz#b41b86edf8e3ae682566ccbf3757ed16079d32ed" + integrity sha512-Txje8Sw5yMH4ApvgqR9rAxxWgmVKG+lIgl/e6MEn/IVkQvB/NZu7rV2+2Iy4/p34/D+DWS+hxpZL39w33pJXKA== + dependencies: + "@algolia/autocomplete-plugin-algolia-insights" "1.19.11" + "@algolia/autocomplete-shared" "1.19.11" + +"@algolia/autocomplete-plugin-algolia-insights@1.19.11": + version "1.19.11" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.19.11.tgz#b9335adf78ffb466a2d4541e6d7cbe9f11383a2d" + integrity sha512-NW7gVJqk1dQQeOEsY9+GqImCJwjL0YZW50gLDdfjI/9zfYNiCCByzpQaUM9YRzVr1QM61FHiVRjT6advLwl9Qw== + dependencies: + "@algolia/autocomplete-shared" "1.19.11" + +"@algolia/autocomplete-plugin-algolia-insights@1.19.2": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.19.2.tgz#3584b625b9317e333d1ae43664d02358e175c52d" + integrity sha512-TjxbcC/r4vwmnZaPwrHtkXNeqvlpdyR+oR9Wi2XyfORkiGkLTVhX2j+O9SaCCINbKoDfc+c2PB8NjfOnz7+oKg== + dependencies: + "@algolia/autocomplete-shared" "1.19.2" + +"@algolia/autocomplete-shared@1.19.11": + version "1.19.11" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.11.tgz#dceb4fdfaa5d9f800e74f714b0e5d7735536dd33" + integrity sha512-9oYPEMmMAH+/EDUGKJJ6oX6JI7YNq7tmWTxEbe8r/qmZnM5BoJSzo8C3Wa2Kc/EPyBJjFrjw7qwo7huzqAYW0g== + +"@algolia/autocomplete-shared@1.19.2": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.2.tgz#c0b7b8dc30a5c65b70501640e62b009535e4578f" + integrity sha512-jEazxZTVD2nLrC+wYlVHQgpBoBB5KPStrJxLzsIFl6Kqd1AlG9sIAGl39V5tECLpIQzB3Qa2T6ZPJ1ChkwMK/w== + +"@algolia/client-abtesting@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/client-abtesting/-/client-abtesting-5.59.0.tgz#3a6c22f3b71b79c9911d7a9b5d137401cd39d57f" + integrity sha512-bm2XN0hCSMYwStSsCBT0/PUB2BDxoyR1Lnub3c392HMEy9bi8PUSW8vR6zltVEKWG2t4PQFWMD5C07bmJxGgPg== + dependencies: + "@algolia/client-common" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" + +"@algolia/client-analytics@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-5.59.0.tgz#0eaba7b10c46da7bac955841961134a8af16e435" + integrity sha512-XOFPOTa69WuqHR6c5tMgnUUwwqQgNSzMpxmhrgA9KmxRf8WIqEa0cokHJvohk5CYb7CZx0xeSL6Bk2IUJ7Lv7Q== + dependencies: + "@algolia/client-common" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" + +"@algolia/client-common@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.59.0.tgz#3def8bbdba75c5eb13e5fbbdbbc80a6b4362f897" + integrity sha512-PC8ipLOYFKRTfIUY1J3FJxS6ryzWziaXmIX9/sNMoUR8L+XhF7hX2QAeUI87YVl5zujvlYTSOb+HAIqKXDjyHQ== + +"@algolia/client-insights@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/client-insights/-/client-insights-5.59.0.tgz#47d8127d4f9093dbb9c4456f18139378614248ac" + integrity sha512-yFNcCMM5fHiyoR0HuxMrzy+VjDcmhFUZTm2IJ2DHwGsVH3B5SEob4zTmeEZ3j/AZqNnmrJOCKl/tJnBg7+84bA== + dependencies: + "@algolia/client-common" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" + +"@algolia/client-personalization@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-5.59.0.tgz#b4200dbbeeda202440d0a81176bc004347c655ae" + integrity sha512-GYja6HkDt2VrQhWmB2cLx3Z5fDwI9no7q+xwCWcFrTPm5CLH9QZvK0XLO9co1FcNIDxxkMaP3AXM39/XcecEOg== + dependencies: + "@algolia/client-common" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" + +"@algolia/client-query-suggestions@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/client-query-suggestions/-/client-query-suggestions-5.59.0.tgz#5abd4de319821587b5fefffcb6a82557877f6fce" + integrity sha512-Wofg7bMpWh8N5qDDZs0wy6whc+KMmdNsxgrIGp9Ug2s1Bka0uq7AjyckdxReKPHLA0Q1qH8X/SNh0wn2t2X2Lw== + dependencies: + "@algolia/client-common" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" + +"@algolia/client-search@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-5.59.0.tgz#04b78294e570410025ae5baa2af726afd94060f6" + integrity sha512-fHnALZfbEnODczGk14Y/1YBRApp6UEpZUTexGcMUPzY7RDc7q4HN2Y6jh0KUG8Jo9B+q+wOoQEc3ziR0ErbuFg== + dependencies: + "@algolia/client-common" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" + +"@algolia/events@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@algolia/events/-/events-4.0.1.tgz#fd39e7477e7bc703d7f893b556f676c032af3950" + integrity sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ== + +"@algolia/ingestion@1.59.0": + version "1.59.0" + resolved "https://registry.yarnpkg.com/@algolia/ingestion/-/ingestion-1.59.0.tgz#c151412bef8130958b49f2b67c74267b4390a3ae" + integrity sha512-Fa38s1mHgoaLCT117sfJ6P78rtxUt93CYxBYpq1VOIcslaF+cH+1h5uikAPsKfxLnsuEDZHiBiaI6eNPTsQMRA== + dependencies: + "@algolia/client-common" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" + +"@algolia/monitoring@1.59.0": + version "1.59.0" + resolved "https://registry.yarnpkg.com/@algolia/monitoring/-/monitoring-1.59.0.tgz#a4d88bd92c7732d9753cd8540113b8b80435824d" + integrity sha512-NyNsRSqM2tF1MX7ZGw/j4rduoEJiQ5wfvbSo/CFVdEzYCjyxbGFRPOZyS/GETJG9rk1TdHOq8NZqKqk/u1fm4g== + dependencies: + "@algolia/client-common" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" + +"@algolia/recommend@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-5.59.0.tgz#59fc6015f6a5d0c044d2ff1f7085a33e6229da73" + integrity sha512-nXBK2uygWtvbCOffMWqqfjjcEtp9enDKY5/2Pw/Hhw8VVaOyK2ThbGK04bNX/Le+qoK1VHYkodWGVTKfw0Otkw== + dependencies: + "@algolia/client-common" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" + +"@algolia/requester-browser-xhr@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.59.0.tgz#d5212acb793a600bf456b5de9fa9821cbb982c80" + integrity sha512-yb+4afX/zja8QwX0KmV4/ae2kyYkRknsE79CRusYS2U5D8qwn2wq0cn1x12f3tm3F3+5FgmDdbuGdQTuCLSKMQ== + dependencies: + "@algolia/client-common" "5.59.0" + +"@algolia/requester-fetch@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-fetch/-/requester-fetch-5.59.0.tgz#76eed36e67286b59da4b6685587d93b0e600774f" + integrity sha512-Lp52TmpA1QtNmdHzs505Xwf4tgII7RAapkDSF9AAtWIBETcGaTIaXci4Rd9nS6SdaWK1BWTSqAPp5wzh6UN3Ag== + dependencies: + "@algolia/client-common" "5.59.0" + +"@algolia/requester-node-http@5.59.0": + version "5.59.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-5.59.0.tgz#b443a095ba494f5d176b891dcd07d8edad78c686" + integrity sha512-YYHLEs5rC6oRTFwT7bJaKBR9NSFzikeVHGAT1ffATmUQzR8XqyhHXjoieAUoR7fBU6I5cfy1FVeh5GoRgriuzA== + dependencies: + "@algolia/client-common" "5.59.0" + +"@antfu/install-pkg@^2.0.1": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@antfu/install-pkg/-/install-pkg-2.1.0.tgz#0e227e9161f8c9821b1a8944ff26366be929a519" + integrity sha512-sdg9NxU3zR4Mnawfbc/x6GB5Wf17WYud5qOuEuxXjaKpYpMkISSJEjItGebXJ2bQ4DIcly4NYH23mtkGJjvKUw== + dependencies: + package-manager-detector "^1.8.0" + tinyexec "^1.3.1" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.29.7.tgz#f2fbbfea87c44a21590ec515b778b2c26d8866e7" + integrity sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw== + dependencies: + "@babel/helper-validator-identifier" "^7.29.7" + js-tokens "^4.0.0" + picocolors "^1.1.1" + +"@babel/compat-data@^7.28.6", "@babel/compat-data@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.29.7.tgz#6f0237f0f36d2e51c0570a636faed9d2d0efe629" + integrity sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg== + +"@babel/core@^7.21.3", "@babel/core@^7.25.9": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.29.7.tgz#80c10b17248082968b57a857b91640971f2070f7" + integrity sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA== + dependencies: + "@babel/code-frame" "^7.29.7" + "@babel/generator" "^7.29.7" + "@babel/helper-compilation-targets" "^7.29.7" + "@babel/helper-module-transforms" "^7.29.7" + "@babel/helpers" "^7.29.7" + "@babel/parser" "^7.29.7" + "@babel/template" "^7.29.7" + "@babel/traverse" "^7.29.7" + "@babel/types" "^7.29.7" + "@jridgewell/remapping" "^2.3.5" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.25.9", "@babel/generator@^7.29.7", "@babel/generator@^7.29.8": + version "7.29.8" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.8.tgz#4b0b887885422643339e09022148a4c4ebaa4979" + integrity sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg== + dependencies: + "@babel/parser" "^7.29.8" + "@babel/types" "^7.29.8" + "@jridgewell/gen-mapping" "^0.3.12" + "@jridgewell/trace-mapping" "^0.3.28" + jsesc "^3.0.2" + +"@babel/helper-annotate-as-pure@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz#c70fe3c6ecbdc3fd2dd1b0f498428b88b82ce47f" + integrity sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw== + dependencies: + "@babel/types" "^7.29.7" + +"@babel/helper-compilation-targets@^7.28.6", "@babel/helper-compilation-targets@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz#7a1def704302401c47f64fa85589e974ae217042" + integrity sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g== + dependencies: + "@babel/compat-data" "^7.29.7" + "@babel/helper-validator-option" "^7.29.7" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz#6eddf286f2ec418f740c91d60a83347c55838ddd" + integrity sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.29.7" + "@babel/helper-member-expression-to-functions" "^7.29.7" + "@babel/helper-optimise-call-expression" "^7.29.7" + "@babel/helper-replace-supers" "^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7" + "@babel/traverse" "^7.29.7" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.29.7.tgz#5d4c3f928f315cf6c4184ea2fc3b5b38745b2430" + integrity sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.29.7" + regexpu-core "^6.3.1" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.6.5", "@babel/helper-define-polyfill-provider@^0.6.8": + version "0.6.8" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz#cf1e4462b613f2b54c41e6ff758d5dfcaa2c85d1" + integrity sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA== + dependencies: + "@babel/helper-compilation-targets" "^7.28.6" + "@babel/helper-plugin-utils" "^7.28.6" + debug "^4.4.3" + lodash.debounce "^4.0.8" + resolve "^1.22.11" + +"@babel/helper-globals@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.29.7.tgz#f04a96fbd8473241b1079243f5b3f03a3010ab7b" + integrity sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA== + +"@babel/helper-member-expression-to-functions@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz#8dbdb3ce0b5c487e1aec10e13c9a43a500814df8" + integrity sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg== + dependencies: + "@babel/traverse" "^7.29.7" + "@babel/types" "^7.29.7" + +"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz#ef25048a518e828d7393fac5882ddd73921d7396" + integrity sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g== + dependencies: + "@babel/traverse" "^7.29.7" + "@babel/types" "^7.29.7" + +"@babel/helper-module-transforms@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz#b062747a5997ba138637201328bbff77960574ae" + integrity sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg== + dependencies: + "@babel/helper-module-imports" "^7.29.7" + "@babel/helper-validator-identifier" "^7.29.7" + "@babel/traverse" "^7.29.7" + +"@babel/helper-optimise-call-expression@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz#77b0b5b94f1997fa9d6e3125f445227b1faf9d85" + integrity sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong== + dependencies: + "@babel/types" "^7.29.7" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.28.6", "@babel/helper-plugin-utils@^7.29.7", "@babel/helper-plugin-utils@^7.8.0": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz#c0a0766f1a13617d8a17407d7ab8f9d486225ea4" + integrity sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw== + +"@babel/helper-remap-async-to-generator@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.29.7.tgz#34b1f68dd75b86d31df781a29c3ff2df88da82e6" + integrity sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og== + dependencies: + "@babel/helper-annotate-as-pure" "^7.29.7" + "@babel/helper-wrap-function" "^7.29.7" + "@babel/traverse" "^7.29.7" + +"@babel/helper-replace-supers@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz#bc3c3964329043c79112e513c1b198f16589ac21" + integrity sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.29.7" + "@babel/helper-optimise-call-expression" "^7.29.7" + "@babel/traverse" "^7.29.7" + +"@babel/helper-skip-transparent-expression-wrappers@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz#50c95c7e4c4f54936cfa0116428edc559862d551" + integrity sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ== + dependencies: + "@babel/traverse" "^7.29.7" + "@babel/types" "^7.29.7" + +"@babel/helper-string-parser@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz#7f0871d99824d23137d60f86fcf6130fd5a1b51f" + integrity sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw== + +"@babel/helper-validator-identifier@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz#bd87084ced0c796ec46bda492de6e83d29e89fc2" + integrity sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg== + +"@babel/helper-validator-option@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz#cf315be940213b354eb4abcc0bd01ebe3f73bc2a" + integrity sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw== + +"@babel/helper-wrap-function@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.29.7.tgz#eec72163044548a0935e9d182bf2d547ec5ff483" + integrity sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw== + dependencies: + "@babel/template" "^7.29.7" + "@babel/traverse" "^7.29.7" + "@babel/types" "^7.29.7" + +"@babel/helpers@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.29.7.tgz#45abfde7548997e34376c3e69feb475cffb4a607" + integrity sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg== + dependencies: + "@babel/template" "^7.29.7" + "@babel/types" "^7.29.7" + +"@babel/parser@^7.29.7", "@babel/parser@^7.29.8": + version "7.29.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.9.tgz#e7ee0a24f752c5296c6455855ccb72662e67ea96" + integrity sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA== + dependencies: + "@babel/types" "^7.29.8" + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.29.7.tgz#2b535896d933a85aa92377eaa3d51a437d54a4e3" + integrity sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/traverse" "^7.29.7" + +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.29.7.tgz#b00711a9e52bf4fe55ef7e54b2ef4a881bf804c8" + integrity sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.29.7.tgz#2375328852026a3cf6bc0bcf2de7d236f2d5e701" + integrity sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array/-/plugin-bugfix-safari-rest-destructuring-rhs-array-7.29.7.tgz#759a857c46c4d2a6199685cf71070d81ae5f743a" + integrity sha512-oBNVCvnO5tND+xSopWvV8WNGfpTfgP4Zr/YXXSj8zfmcPktp5Ku/aZlsIowgSD4fjmgHn6sGmB9APVsU5zOdhA== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.29.7.tgz#86de98dd8e03836178231ea96c27dab26016a705" + integrity sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7" + "@babel/plugin-transform-optional-chaining" "^7.29.7" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.29.7.tgz#f5d892681dbf4b08753436a5e55000d5ba728d6d" + integrity sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/traverse" "^7.29.7" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-import-assertions@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.29.7.tgz#c5cd868505269126cc18882e1f01f7b0e0e24b4e" + integrity sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-syntax-import-attributes@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz#6115264516e95ead0f35a41710906612e447f605" + integrity sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-syntax-jsx@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz#622c16f9ad63782fe6e83dadc7e40330744b7f1e" + integrity sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-syntax-typescript@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz#7c29388932313ed58413a0343048d75d92fb5b24" + integrity sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.29.7.tgz#d651343f562c03f47951bd1802195d0e10605f27" + integrity sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-async-generator-functions@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.7.tgz#a5365617921d82a1fee33124a1102bb38a1e677d" + integrity sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-remap-async-to-generator" "^7.29.7" + "@babel/traverse" "^7.29.7" + +"@babel/plugin-transform-async-to-generator@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.29.7.tgz#3b5e8f1fb58133cf701bcf0baaf6f01bfd1a8889" + integrity sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w== + dependencies: + "@babel/helper-module-imports" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-remap-async-to-generator" "^7.29.7" + +"@babel/plugin-transform-block-scoped-functions@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.29.7.tgz#96d292634434082d6687bcdb81139affedf77e8c" + integrity sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-block-scoping@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.29.7.tgz#baa376691ae16244cd14335422fca6900f54e17d" + integrity sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-class-properties@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.29.7.tgz#034897b8a21beec163332fac2de235b14409abdf" + integrity sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-class-static-block@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.29.7.tgz#fed8efd19f3dd3e1114ee390707c70912778fd7c" + integrity sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-classes@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.29.7.tgz#61d3e5aaae0c838acc3204d9db7c8dc05c25815b" + integrity sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.29.7" + "@babel/helper-compilation-targets" "^7.29.7" + "@babel/helper-globals" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-replace-supers" "^7.29.7" + "@babel/traverse" "^7.29.7" + +"@babel/plugin-transform-computed-properties@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.29.7.tgz#95028787ca31901b9a20b5c6d9605c32346f55ad" + integrity sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/template" "^7.29.7" + +"@babel/plugin-transform-destructuring@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.29.7.tgz#5781ec6947852e27b64c1165f0db431f408090e4" + integrity sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/traverse" "^7.29.7" + +"@babel/plugin-transform-dotall-regex@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.29.7.tgz#b203de9740e4c7ff6b55ce436ed5313b88d70af8" + integrity sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-duplicate-keys@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.29.7.tgz#8f3fe721835cb7a433420841dae90afc962ea7ae" + integrity sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.7.tgz#dc6c405e55c01b7657e1827a25332c4ac17e9cac" + integrity sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-dynamic-import@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.29.7.tgz#a83a6faec5bab5b619adf9d0eac6c1c270123c2a" + integrity sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-explicit-resource-management@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.29.7.tgz#65c8b9f76ec915b02a0e1df703125a0fca58abaa" + integrity sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/plugin-transform-destructuring" "^7.29.7" + +"@babel/plugin-transform-exponentiation-operator@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.29.7.tgz#00bf002fde8794356171f5d4df200f6bc0d5a303" + integrity sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-export-namespace-from@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.29.7.tgz#d6014f45cec61d7691335c6c9804204bee801d51" + integrity sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-for-of@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.29.7.tgz#c65a678592117717aacdb10c1b73a9cb85e830be" + integrity sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7" + +"@babel/plugin-transform-function-name@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.29.7.tgz#8b87f8a7504dbcd96135167e3fc4f61126a7bd86" + integrity sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg== + dependencies: + "@babel/helper-compilation-targets" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/traverse" "^7.29.7" + +"@babel/plugin-transform-json-strings@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.29.7.tgz#f57d63dcc05b4481c281acedcd8fc4e3e439a1d4" + integrity sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-literals@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.29.7.tgz#b90bd47463326c2a9d779e1bd5e1f88b9f421921" + integrity sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-logical-assignment-operators@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.29.7.tgz#9b29425adf5c794967aabe4b046a046a167bac2f" + integrity sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-member-expression-literals@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.29.7.tgz#1281689fa2fefc17b110d21ebafd0fe9402d5309" + integrity sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-modules-amd@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.29.7.tgz#f05ca662c8a1dc4be2f337af9c7e80369c942d6c" + integrity sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew== + dependencies: + "@babel/helper-module-transforms" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-modules-commonjs@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz#70e6835abf2663dafbe94b8ef1f51de7351ef135" + integrity sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ== + dependencies: + "@babel/helper-module-transforms" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-modules-systemjs@^7.29.7": + version "7.29.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.8.tgz#e60a6a42ac63a3095f9cc7264f698a100c8fe05d" + integrity sha512-6iSnEK0zlkLKU4heofK/AdmRD4e2SHVpJMtrwnTCzhnaM98ria4rTrOXBBi45BTTYnJtO8txnPsX4fChYXkmeA== + dependencies: + "@babel/helper-module-transforms" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-validator-identifier" "^7.29.7" + "@babel/traverse" "^7.29.8" + +"@babel/plugin-transform-modules-umd@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.29.7.tgz#391d1c0215aca6307257f2f608598dfe55feb6cf" + integrity sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA== + dependencies: + "@babel/helper-module-transforms" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.7.tgz#21e75d847b31189842fa7a77703722ed4b43d27d" + integrity sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-new-target@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.29.7.tgz#714147ce7947e1b49cbd84137ca2e75e92b2a067" + integrity sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.29.7.tgz#8a54cdf88c3f50433a6173117a286195b67714cc" + integrity sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-numeric-separator@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.29.7.tgz#0266d5cd42ab87ec40fee45a4e36483cfdcbc66a" + integrity sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-object-rest-spread@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.29.7.tgz#e0d5060241803922c545676613cc8acbbda0d266" + integrity sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A== + dependencies: + "@babel/helper-compilation-targets" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/plugin-transform-destructuring" "^7.29.7" + "@babel/plugin-transform-parameters" "^7.29.7" + "@babel/traverse" "^7.29.7" + +"@babel/plugin-transform-object-super@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.29.7.tgz#e89283d14fa3c35817d4493ffc6bc649aa10e4eb" + integrity sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-replace-supers" "^7.29.7" + +"@babel/plugin-transform-optional-catch-binding@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.29.7.tgz#729664f79985be504eba112c51de9f71d009030b" + integrity sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-optional-chaining@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.29.7.tgz#b84a1b574b3c73001023092567e16c492b720e51" + integrity sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7" + +"@babel/plugin-transform-parameters@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.29.7.tgz#a5ddc3b9bfb534814cb8334cbeba47d9cf9db090" + integrity sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-private-methods@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.29.7.tgz#cea8bd3ab99533892897a02999d5b752584ad145" + integrity sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-private-property-in-object@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.29.7.tgz#4a2f6be5aba47be7afbdb4cd7903c46edf3a7661" + integrity sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.29.7" + "@babel/helper-create-class-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-property-literals@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.29.7.tgz#d45817cd72f9e134ab1f7fbb79264cfcb85cf636" + integrity sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-react-constant-elements@^7.21.3": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.29.7.tgz#8264440ea2ffc5ec405aebd7eac074815d6e28b1" + integrity sha512-J0wGhKan+rIiE2OhfhRptySLrJ6SjQYM6b6N1FMlhyhCcw1Mig8vQjWchyB+bgHGDvaWo6Diu6CLRMra2uMtmg== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-react-display-name@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.29.7.tgz#bf161a6d750267b79db7ff6f8fb89c3369b02df3" + integrity sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-react-jsx-development@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.29.7.tgz#64e6aacb5cb43b9e80d3d5f19ddefc158a624f09" + integrity sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.29.7" + +"@babel/plugin-transform-react-jsx@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.29.7.tgz#3d16a0e5773f079400a8c82a190709cdf92ee204" + integrity sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.29.7" + "@babel/helper-module-imports" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/plugin-syntax-jsx" "^7.29.7" + "@babel/types" "^7.29.7" + +"@babel/plugin-transform-react-pure-annotations@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.29.7.tgz#76445c90112dd0a7371b63264563bfa9a4fcd6e3" + integrity sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-regenerator@^7.29.7": + version "7.29.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.8.tgz#3a4a4dd7214af9d524f0503bb97c99af5f4abf26" + integrity sha512-0UpIXPtdDtMXfnV2OJAVMLpj3H/92vmkA6lpSRakmycJvj3VUy6Xs1dM8tXRugupykr5WB+LpiVl0J8LMVg2mg== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-regexp-modifiers@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.29.7.tgz#68311c0c10af2198212528863f8542843e424025" + integrity sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-reserved-words@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.29.7.tgz#a6feeb179b36a5f1fc6e3154c1eb727bdbe35876" + integrity sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-runtime@^7.25.9": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.7.tgz#7c7fb6e2a46dce67e278b6cc84421c1d16da5695" + integrity sha512-xmAscdE/AsqRW7vutbPNoUmu/nF5SrLKPs7aoJgEjo35lLKA/Bc0i2rMv/hr1+Y0o1bQCiVtith3u2vdgRL39Q== + dependencies: + "@babel/helper-module-imports" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + babel-plugin-polyfill-corejs2 "^0.4.14" + babel-plugin-polyfill-corejs3 "^0.13.0" + babel-plugin-polyfill-regenerator "^0.6.5" + semver "^6.3.1" + +"@babel/plugin-transform-shorthand-properties@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.29.7.tgz#25c0436b98f4bd9ca4b98e1fbd662743bbaab9bf" + integrity sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-spread@^7.29.7": + version "7.29.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.8.tgz#c894cff38556a5dafeb412e13fc012b6df4b95a2" + integrity sha512-4S9ksMGVWUshvgK0mKfvZky7leuG5/uoFVwMpAomJ8bMoDJiNHRVmc1EglwW/CmGVSqqWpEbXm9FmbRit22qoA== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7" + +"@babel/plugin-transform-sticky-regex@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.29.7.tgz#a42c0fd1fa42f7e98e1e0c7757f72a1bbca3a015" + integrity sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-template-literals@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.29.7.tgz#ada97d8e0832bca8edb315888aa654b1570f3835" + integrity sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-typeof-symbol@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.29.7.tgz#d848a4677c1ee3485ab017f4018f04597798911c" + integrity sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-typescript@^7.29.7": + version "7.29.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.29.9.tgz#963dc446aea3fafcab8ffe217329263f5613feb6" + integrity sha512-FFwIwzU+7SCOuxxV4YtJql6T9981ZVTm+FHO5GhVsRqCTdy0WwrEZh3l42ARpXruJUDGOptdduHW6Zr7pNPLNg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.29.7" + "@babel/helper-create-class-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7" + "@babel/plugin-syntax-typescript" "^7.29.7" + +"@babel/plugin-transform-unicode-escapes@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.29.7.tgz#1e99554b0cddfd650d649a9f2b996049893e5720" + integrity sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-unicode-property-regex@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.29.7.tgz#44444afc73768c2190fac4d95f7716817b7f204a" + integrity sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-unicode-regex@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.29.7.tgz#c3064b293ff7f1794b71f7650eec8db9896d3e59" + integrity sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/plugin-transform-unicode-sets-regex@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.29.7.tgz#b03ac9f27326f6197e8e574add83bbf33fc34ecd" + integrity sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + +"@babel/preset-env@^7.20.2", "@babel/preset-env@^7.25.9": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.29.7.tgz#5e2ab5e764b493fdefc99c43aeaa70a9533a37fd" + integrity sha512-GYzX36n1nsciIb0uyH0GHwxwtNwPQIcpxSeiVLDtG/B7jB5xXgchnmL1f/jCX5o+pwnaDBtO60ONSJhEBJfxYA== + dependencies: + "@babel/compat-data" "^7.29.7" + "@babel/helper-compilation-targets" "^7.29.7" + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-validator-option" "^7.29.7" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.29.7" + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.29.7" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.29.7" + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array" "^7.29.7" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.29.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.29.7" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-import-assertions" "^7.29.7" + "@babel/plugin-syntax-import-attributes" "^7.29.7" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.29.7" + "@babel/plugin-transform-async-generator-functions" "^7.29.7" + "@babel/plugin-transform-async-to-generator" "^7.29.7" + "@babel/plugin-transform-block-scoped-functions" "^7.29.7" + "@babel/plugin-transform-block-scoping" "^7.29.7" + "@babel/plugin-transform-class-properties" "^7.29.7" + "@babel/plugin-transform-class-static-block" "^7.29.7" + "@babel/plugin-transform-classes" "^7.29.7" + "@babel/plugin-transform-computed-properties" "^7.29.7" + "@babel/plugin-transform-destructuring" "^7.29.7" + "@babel/plugin-transform-dotall-regex" "^7.29.7" + "@babel/plugin-transform-duplicate-keys" "^7.29.7" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.29.7" + "@babel/plugin-transform-dynamic-import" "^7.29.7" + "@babel/plugin-transform-explicit-resource-management" "^7.29.7" + "@babel/plugin-transform-exponentiation-operator" "^7.29.7" + "@babel/plugin-transform-export-namespace-from" "^7.29.7" + "@babel/plugin-transform-for-of" "^7.29.7" + "@babel/plugin-transform-function-name" "^7.29.7" + "@babel/plugin-transform-json-strings" "^7.29.7" + "@babel/plugin-transform-literals" "^7.29.7" + "@babel/plugin-transform-logical-assignment-operators" "^7.29.7" + "@babel/plugin-transform-member-expression-literals" "^7.29.7" + "@babel/plugin-transform-modules-amd" "^7.29.7" + "@babel/plugin-transform-modules-commonjs" "^7.29.7" + "@babel/plugin-transform-modules-systemjs" "^7.29.7" + "@babel/plugin-transform-modules-umd" "^7.29.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.29.7" + "@babel/plugin-transform-new-target" "^7.29.7" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.29.7" + "@babel/plugin-transform-numeric-separator" "^7.29.7" + "@babel/plugin-transform-object-rest-spread" "^7.29.7" + "@babel/plugin-transform-object-super" "^7.29.7" + "@babel/plugin-transform-optional-catch-binding" "^7.29.7" + "@babel/plugin-transform-optional-chaining" "^7.29.7" + "@babel/plugin-transform-parameters" "^7.29.7" + "@babel/plugin-transform-private-methods" "^7.29.7" + "@babel/plugin-transform-private-property-in-object" "^7.29.7" + "@babel/plugin-transform-property-literals" "^7.29.7" + "@babel/plugin-transform-regenerator" "^7.29.7" + "@babel/plugin-transform-regexp-modifiers" "^7.29.7" + "@babel/plugin-transform-reserved-words" "^7.29.7" + "@babel/plugin-transform-shorthand-properties" "^7.29.7" + "@babel/plugin-transform-spread" "^7.29.7" + "@babel/plugin-transform-sticky-regex" "^7.29.7" + "@babel/plugin-transform-template-literals" "^7.29.7" + "@babel/plugin-transform-typeof-symbol" "^7.29.7" + "@babel/plugin-transform-unicode-escapes" "^7.29.7" + "@babel/plugin-transform-unicode-property-regex" "^7.29.7" + "@babel/plugin-transform-unicode-regex" "^7.29.7" + "@babel/plugin-transform-unicode-sets-regex" "^7.29.7" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.15" + babel-plugin-polyfill-corejs3 "^0.14.0" + babel-plugin-polyfill-regenerator "^0.6.6" + core-js-compat "^3.48.0" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@^7.18.6", "@babel/preset-react@^7.25.9": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.29.7.tgz#2ed18366e38c2081bbf1760dc01e88fa5674eb17" + integrity sha512-C+PV1TFUPTmBQGoPBL8j2QmLpZ117YTCwxIZeJOM96GbYMFSc7/pOXU5lVykwnZxyTqQxRsvoRk6f2FktZgGHA== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-validator-option" "^7.29.7" + "@babel/plugin-transform-react-display-name" "^7.29.7" + "@babel/plugin-transform-react-jsx" "^7.29.7" + "@babel/plugin-transform-react-jsx-development" "^7.29.7" + "@babel/plugin-transform-react-pure-annotations" "^7.29.7" + +"@babel/preset-typescript@^7.21.0", "@babel/preset-typescript@^7.25.9": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.29.7.tgz#de9be1f47b785c979ec7b3a71f4cd8bae5267b62" + integrity sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ== + dependencies: + "@babel/helper-plugin-utils" "^7.29.7" + "@babel/helper-validator-option" "^7.29.7" + "@babel/plugin-syntax-jsx" "^7.29.7" + "@babel/plugin-transform-modules-commonjs" "^7.29.7" + "@babel/plugin-transform-typescript" "^7.29.7" + +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.25.9", "@babel/runtime@^7.28.6", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.7.tgz#12022450c45a4da6d8d8287b18a4ff2ddb23f768" + integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== + +"@babel/template@^7.29.7": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.29.7.tgz#4d9d4004f645cdd304de958c725162784ecac700" + integrity sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg== + dependencies: + "@babel/code-frame" "^7.29.7" + "@babel/parser" "^7.29.7" + "@babel/types" "^7.29.7" + +"@babel/traverse@^7.25.9", "@babel/traverse@^7.29.7", "@babel/traverse@^7.29.8": + version "7.29.8" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.8.tgz#4111014cdc71a0f95d9471907590baa0b8a6b28a" + integrity sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg== + dependencies: + "@babel/code-frame" "^7.29.7" + "@babel/generator" "^7.29.8" + "@babel/helper-globals" "^7.29.7" + "@babel/parser" "^7.29.8" + "@babel/template" "^7.29.7" + "@babel/types" "^7.29.8" + debug "^4.3.1" + +"@babel/types@^7.21.3", "@babel/types@^7.29.7", "@babel/types@^7.29.8", "@babel/types@^7.4.4": + version "7.29.8" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.8.tgz#1229eef31d85156d70fa3f4cd859376d0eaf6863" + integrity sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg== + dependencies: + "@babel/helper-string-parser" "^7.29.7" + "@babel/helper-validator-identifier" "^7.29.7" + +"@braintree/sanitize-url@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-7.1.2.tgz#ca2035b0fefe956a8676ff0c69af73e605fcd81f" + integrity sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA== + +"@chevrotain/cst-dts-gen@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.1.2.tgz#501ea6177fa21cc57264c792ef5cc3d0bb9410fd" + integrity sha512-XTsjvDVB5nDZBQB8o0o/0ozNelQtn2KrUVteIHSlPd2VAV2utEb6JzyCJaJ8tGxACR4RiBNWy5uYUHX2eji88Q== + dependencies: + "@chevrotain/gast" "11.1.2" + "@chevrotain/types" "11.1.2" + lodash-es "4.17.23" + +"@chevrotain/gast@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@chevrotain/gast/-/gast-11.1.2.tgz#213393f2b5842e8bf13369bdc042c7fd18201af2" + integrity sha512-Z9zfXR5jNZb1Hlsd/p+4XWeUFugrHirq36bKzPWDSIacV+GPSVXdk+ahVWZTwjhNwofAWg/sZg58fyucKSQx5g== + dependencies: + "@chevrotain/types" "11.1.2" + lodash-es "4.17.23" + +"@chevrotain/regexp-to-ast@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.1.2.tgz#6aeb0b3fd5e3f220b063b3d856fbbaed582e4cfa" + integrity sha512-nMU3Uj8naWer7xpZTYJdxbAs6RIv/dxYzkYU8GSwgUtcAAlzjcPfX1w+RKRcYG8POlzMeayOQ/znfwxEGo5ulw== + +"@chevrotain/types@11.1.2", "@chevrotain/types@~11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@chevrotain/types/-/types-11.1.2.tgz#e83a1a2704f0c5e49e7592b214031a0f4a34d7e5" + integrity sha512-U+HFai5+zmJCkK86QsaJtoITlboZHBqrVketcO2ROv865xfCMSFpELQoz1GkX5GzME8pTa+3kbKrZHQtI0gdbw== + +"@chevrotain/utils@11.1.2": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@chevrotain/utils/-/utils-11.1.2.tgz#a0b13637acc0a2933d8a2edeba4bf1da789c565d" + integrity sha512-4mudFAQ6H+MqBTfqLmU7G1ZwRzCLfJEooL/fsF6rCX5eePMbGhoy5n4g+G4vlh2muDcsCTJtL+uKbOzWxs5LHA== + +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + +"@csstools/cascade-layer-name-parser@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.5.tgz#43f962bebead0052a9fed1a2deeb11f85efcbc72" + integrity sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A== + +"@csstools/color-helpers@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-5.1.0.tgz#106c54c808cabfd1ab4c602d8505ee584c2996ef" + integrity sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA== + +"@csstools/css-calc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-2.1.4.tgz#8473f63e2fcd6e459838dd412401d5948f224c65" + integrity sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ== + +"@csstools/css-color-parser@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz#4e386af3a99dd36c46fef013cfe4c1c341eed6f0" + integrity sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA== + dependencies: + "@csstools/color-helpers" "^5.1.0" + "@csstools/css-calc" "^2.1.4" + +"@csstools/css-parser-algorithms@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz#5755370a9a29abaec5515b43c8b3f2cf9c2e3076" + integrity sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ== + +"@csstools/css-tokenizer@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz#333fedabc3fd1a8e5d0100013731cf19e6a8c5d3" + integrity sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw== + +"@csstools/media-query-list-parser@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz#7aec77bcb89c2da80ef207e73f474ef9e1b3cdf1" + integrity sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ== + +"@csstools/postcss-alpha-function@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-alpha-function/-/postcss-alpha-function-1.0.1.tgz#7989605711de7831bc7cd75b94c9b5bac9c3728e" + integrity sha512-isfLLwksH3yHkFXfCI2Gcaqg7wGGHZZwunoJzEZk0yKYIokgre6hYVFibKL3SYAoR1kBXova8LB+JoO5vZzi9w== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-cascade-layers@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.2.tgz#dd2c70db3867b88975f2922da3bfbae7d7a2cae7" + integrity sha512-nWBE08nhO8uWl6kSAeCx4im7QfVko3zLrtgWZY4/bP87zrSPpSyN/3W3TDqz1jJuH+kbKOHXg5rJnK+ZVYcFFg== + dependencies: + "@csstools/selector-specificity" "^5.0.0" + postcss-selector-parser "^7.0.0" + +"@csstools/postcss-color-function-display-p3-linear@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-1.0.1.tgz#3017ff5e1f65307d6083e58e93d76724fb1ebf9f" + integrity sha512-E5qusdzhlmO1TztYzDIi8XPdPoYOjoTY6HBYBCYSj+Gn4gQRBlvjgPQXzfzuPQqt8EhkC/SzPKObg4Mbn8/xMg== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-color-function@^4.0.12": + version "4.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-4.0.12.tgz#a7c85a98c77b522a194a1bbb00dd207f40c7a771" + integrity sha512-yx3cljQKRaSBc2hfh8rMZFZzChaFgwmO2JfFgFr1vMcF3C/uyy5I4RFIBOIWGq1D+XbKCG789CGkG6zzkLpagA== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-color-mix-function@^3.0.12": + version "3.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.12.tgz#2f1ee9f8208077af069545c9bd79bb9733382c2a" + integrity sha512-4STERZfCP5Jcs13P1U5pTvI9SkgLgfMUMhdXW8IlJWkzOOOqhZIjcNhWtNJZes2nkBDsIKJ0CJtFtuaZ00moag== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-color-mix-variadic-function-arguments@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.2.tgz#b4012b62a4eaa24d694172bb7137f9d2319cb8f2" + integrity sha512-rM67Gp9lRAkTo+X31DUqMEq+iK+EFqsidfecmhrteErxJZb6tUoJBVQca1Vn1GpDql1s1rD1pKcuYzMsg7Z1KQ== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-content-alt-text@^2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.8.tgz#1d52da1762893c32999ff76839e48d6ec7c7a4cb" + integrity sha512-9SfEW9QCxEpTlNMnpSqFaHyzsiRpZ5J5+KqCu1u5/eEJAWsMhzT40qf0FIbeeglEvrGRMdDzAxMIz3wqoGSb+Q== + dependencies: + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-contrast-color-function@^2.0.12": + version "2.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-contrast-color-function/-/postcss-contrast-color-function-2.0.12.tgz#ca46986d095c60f208d9e3f24704d199c9172637" + integrity sha512-YbwWckjK3qwKjeYz/CijgcS7WDUCtKTd8ShLztm3/i5dhh4NaqzsbYnhm4bjrpFpnLZ31jVcbK8YL77z3GBPzA== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-exponential-functions@^2.0.9": + version "2.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.9.tgz#fc03d1272888cb77e64cc1a7d8a33016e4f05c69" + integrity sha512-abg2W/PI3HXwS/CZshSa79kNWNZHdJPMBXeZNyPQFbbj8sKO3jXxOt/wF7juJVjyDTc6JrvaUZYFcSBZBhaxjw== + dependencies: + "@csstools/css-calc" "^2.1.4" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-font-format-keywords@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz#6730836eb0153ff4f3840416cc2322f129c086e6" + integrity sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw== + dependencies: + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-gamut-mapping@^2.0.11": + version "2.0.11" + resolved "https://registry.yarnpkg.com/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.11.tgz#be0e34c9f0142852cccfc02b917511f0d677db8b" + integrity sha512-fCpCUgZNE2piVJKC76zFsgVW1apF6dpYsqGyH8SIeCcM4pTEsRTWTLCaJIMKFEundsCKwY1rwfhtrio04RJ4Dw== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-gradients-interpolation-method@^5.0.12": + version "5.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.12.tgz#0955cce4d97203b861bf66742bbec611b2f3661c" + integrity sha512-jugzjwkUY0wtNrZlFeyXzimUL3hN4xMvoPnIXxoZqxDvjZRiSh+itgHcVUWzJ2VwD/VAMEgCLvtaJHX+4Vj3Ow== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-hwb-function@^4.0.12": + version "4.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.12.tgz#07f7ecb08c50e094673bd20eaf7757db0162beee" + integrity sha512-mL/+88Z53KrE4JdePYFJAQWFrcADEqsLprExCM04GDNgHIztwFzj0Mbhd/yxMBngq0NIlz58VVxjt5abNs1VhA== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-ic-unit@^4.0.4": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.4.tgz#2ee2da0690db7edfbc469279711b9e69495659d2" + integrity sha512-yQ4VmossuOAql65sCPppVO1yfb7hDscf4GseF0VCA/DTDaBc0Wtf8MTqVPfjGYlT5+2buokG0Gp7y0atYZpwjg== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-initial@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-initial/-/postcss-initial-2.0.1.tgz#c385bd9d8ad31ad159edd7992069e97ceea4d09a" + integrity sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg== + +"@csstools/postcss-is-pseudo-class@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.3.tgz#d34e850bcad4013c2ed7abe948bfa0448aa8eb74" + integrity sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ== + dependencies: + "@csstools/selector-specificity" "^5.0.0" + postcss-selector-parser "^7.0.0" + +"@csstools/postcss-light-dark-function@^2.0.11": + version "2.0.11" + resolved "https://registry.yarnpkg.com/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.11.tgz#0df448aab9a33cb9a085264ff1f396fb80c4437d" + integrity sha512-fNJcKXJdPM3Lyrbmgw2OBbaioU7yuKZtiXClf4sGdQttitijYlZMD5K7HrC/eF83VRWRrYq6OZ0Lx92leV2LFA== + dependencies: + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-logical-float-and-clear@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-3.0.0.tgz#62617564182cf86ab5d4e7485433ad91e4c58571" + integrity sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ== + +"@csstools/postcss-logical-overflow@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-2.0.0.tgz#c6de7c5f04e3d4233731a847f6c62819bcbcfa1d" + integrity sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA== + +"@csstools/postcss-logical-overscroll-behavior@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-2.0.0.tgz#43c03eaecdf34055ef53bfab691db6dc97a53d37" + integrity sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w== + +"@csstools/postcss-logical-resize@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-resize/-/postcss-logical-resize-3.0.0.tgz#4df0eeb1a61d7bd85395e56a5cce350b5dbfdca6" + integrity sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-logical-viewport-units@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.4.tgz#016d98a8b7b5f969e58eb8413447eb801add16fc" + integrity sha512-q+eHV1haXA4w9xBwZLKjVKAWn3W2CMqmpNpZUk5kRprvSiBEGMgrNH3/sJZ8UA3JgyHaOt3jwT9uFa4wLX4EqQ== + dependencies: + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-media-minmax@^2.0.9": + version "2.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.9.tgz#184252d5b93155ae526689328af6bdf3fc113987" + integrity sha512-af9Qw3uS3JhYLnCbqtZ9crTvvkR+0Se+bBqSr7ykAnl9yKhk6895z9rf+2F4dClIDJWxgn0iZZ1PSdkhrbs2ig== + dependencies: + "@csstools/css-calc" "^2.1.4" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/media-query-list-parser" "^4.0.3" + +"@csstools/postcss-media-queries-aspect-ratio-number-values@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.5.tgz#f485c31ec13d6b0fb5c528a3474334a40eff5f11" + integrity sha512-zhAe31xaaXOY2Px8IYfoVTB3wglbJUVigGphFLj6exb7cjZRH9A6adyE22XfFK3P2PzwRk0VDeTJmaxpluyrDg== + dependencies: + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/media-query-list-parser" "^4.0.3" + +"@csstools/postcss-nested-calc@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-nested-calc/-/postcss-nested-calc-4.0.0.tgz#754e10edc6958d664c11cde917f44ba144141c62" + integrity sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A== + dependencies: + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-normalize-display-values@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.1.tgz#3738ecadb38cd6521c9565635d61aa4bf5457d27" + integrity sha512-TQUGBuRvxdc7TgNSTevYqrL8oItxiwPDixk20qCB5me/W8uF7BPbhRrAvFuhEoywQp/woRsUZ6SJ+sU5idZAIA== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-oklab-function@^4.0.12": + version "4.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.12.tgz#416640ef10227eea1375b47b72d141495950971d" + integrity sha512-HhlSmnE1NKBhXsTnNGjxvhryKtO7tJd1w42DKOGFD6jSHtYOrsJTQDKPMwvOfrzUAk8t7GcpIfRyM7ssqHpFjg== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-position-area-property@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-position-area-property/-/postcss-position-area-property-1.0.0.tgz#41f0cbc737a81a42890d5ec035fa26a45f4f4ad4" + integrity sha512-fUP6KR8qV2NuUZV3Cw8itx0Ep90aRjAZxAEzC3vrl6yjFv+pFsQbR18UuQctEKmA72K9O27CoYiKEgXxkqjg8Q== + +"@csstools/postcss-progressive-custom-properties@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.2.1.tgz#c39780b9ff0d554efb842b6bd75276aa6f1705db" + integrity sha512-uPiiXf7IEKtUQXsxu6uWtOlRMXd2QWWy5fhxHDnPdXKCQckPP3E34ZgDoZ62r2iT+UOgWsSbM4NvHE5m3mAEdw== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-property-rule-prelude-list@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-property-rule-prelude-list/-/postcss-property-rule-prelude-list-1.0.0.tgz#700b7aa41228c02281bda074ae778f36a09da188" + integrity sha512-IxuQjUXq19fobgmSSvUDO7fVwijDJaZMvWQugxfEUxmjBeDCVaDuMpsZ31MsTm5xbnhA+ElDi0+rQ7sQQGisFA== + dependencies: + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-random-function@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-random-function/-/postcss-random-function-2.0.1.tgz#3191f32fe72936e361dadf7dbfb55a0209e2691e" + integrity sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w== + dependencies: + "@csstools/css-calc" "^2.1.4" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-relative-color-syntax@^3.0.12": + version "3.0.12" + resolved "https://registry.yarnpkg.com/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.12.tgz#ced792450102441f7c160e1d106f33e4b44181f8" + integrity sha512-0RLIeONxu/mtxRtf3o41Lq2ghLimw0w9ByLWnnEVuy89exmEEq8bynveBxNW3nyHqLAFEeNtVEmC1QK9MZ8Huw== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +"@csstools/postcss-scope-pseudo-class@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz#9fe60e9d6d91d58fb5fc6c768a40f6e47e89a235" + integrity sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q== + dependencies: + postcss-selector-parser "^7.0.0" + +"@csstools/postcss-sign-functions@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.4.tgz#a9ac56954014ae4c513475b3f1b3e3424a1e0c12" + integrity sha512-P97h1XqRPcfcJndFdG95Gv/6ZzxUBBISem0IDqPZ7WMvc/wlO+yU0c5D/OCpZ5TJoTt63Ok3knGk64N+o6L2Pg== + dependencies: + "@csstools/css-calc" "^2.1.4" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-stepped-value-functions@^4.0.9": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.9.tgz#36036f1a0e5e5ee2308e72f3c9cb433567c387b9" + integrity sha512-h9btycWrsex4dNLeQfyU3y3w40LMQooJWFMm/SK9lrKguHDcFl4VMkncKKoXi2z5rM9YGWbUQABI8BT2UydIcA== + dependencies: + "@csstools/css-calc" "^2.1.4" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-syntax-descriptor-syntax-production@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-syntax-descriptor-syntax-production/-/postcss-syntax-descriptor-syntax-production-1.0.1.tgz#98590e372e547cdae60aef47cfee11f3881307dd" + integrity sha512-GneqQWefjM//f4hJ/Kbox0C6f2T7+pi4/fqTqOFGTL3EjnvOReTqO1qUQ30CaUjkwjYq9qZ41hzarrAxCc4gow== + dependencies: + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-system-ui-font-family@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-system-ui-font-family/-/postcss-system-ui-font-family-1.0.0.tgz#bd65b79078debf6f67b318dc9b71a8f9fa16f8c8" + integrity sha512-s3xdBvfWYfoPSBsikDXbuorcMG1nN1M6GdU0qBsGfcmNR0A/qhloQZpTxjA3Xsyrk1VJvwb2pOfiOT3at/DuIQ== + dependencies: + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-text-decoration-shorthand@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.3.tgz#fae1b70f07d1b7beb4c841c86d69e41ecc6f743c" + integrity sha512-KSkGgZfx0kQjRIYnpsD7X2Om9BUXX/Kii77VBifQW9Ih929hK0KNjVngHDH0bFB9GmfWcR9vJYJJRvw/NQjkrA== + dependencies: + "@csstools/color-helpers" "^5.1.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-trigonometric-functions@^4.0.9": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.9.tgz#3f94ed2e319b57f2c59720b64e4d0a8a6fb8c3b2" + integrity sha512-Hnh5zJUdpNrJqK9v1/E3BbrQhaDTj5YiX7P61TOvUhoDHnUmsNNxcDAgkQ32RrcWx9GVUvfUNPcUkn8R3vIX6A== + dependencies: + "@csstools/css-calc" "^2.1.4" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + +"@csstools/postcss-unset-value@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz#7caa981a34196d06a737754864baf77d64de4bba" + integrity sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA== + +"@csstools/selector-resolve-nested@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.1.0.tgz#848c6f44cb65e3733e478319b9342b7aa436fac7" + integrity sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g== + +"@csstools/selector-specificity@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz#037817b574262134cabd68fc4ec1a454f168407b" + integrity sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw== + +"@csstools/utilities@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@csstools/utilities/-/utilities-2.0.0.tgz#f7ff0fee38c9ffb5646d47b6906e0bc8868bde60" + integrity sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ== + +"@discoveryjs/json-ext@0.5.7": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + +"@docsearch/core@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@docsearch/core/-/core-4.7.0.tgz#914962191f2718b9caa48f4cbe46c0720fdc055d" + integrity sha512-p/9xVKmPDj3FPvMfPf5naVO3Ej8SCbcUugGvx1+8GgkuBNbqxqN2Irx3WLBv8VY0jH7XpRwKWdlmjXLZsmTLsg== + +"@docsearch/css@4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-4.7.0.tgz#d6d93c6ddf5e813a3ea09da719e150c222693a5c" + integrity sha512-Sk5xkdRFeE7PeWjG9l4AfTwdvMfr9wHiwNNCpHXT4v4SNyNMKdHGvEILc31BgaVFGDDNbv5u/a73tofRiwbEZw== + +"@docsearch/react@^3.9.0 || ^4.3.2": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-4.7.0.tgz#8e7d77c34d19755f98d225a3413eddf605658d70" + integrity sha512-x6oedjJ8O8/pIDBsMo5Orca3/6cQCz616/CwthVe68l43mqnj2lrJ9kFQITBqy8hMsS3nWeBWFoVO5dJ1DCFKA== + dependencies: + "@algolia/autocomplete-core" "1.19.2" + "@docsearch/core" "4.7.0" + "@docsearch/css" "4.7.0" + +"@docusaurus/babel@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/babel/-/babel-3.10.2.tgz#4d5f8ac4d16bfe26c06f256687831787edb46e8a" + integrity sha512-aJ1hpGyvfkte3dDAfNbWM4biW4yWZBVz7TIGLZP+v+tWOBgxX3e0N5ZIXHIvmfNNXTI77pcHUx3KmtOk05Ze3Q== + dependencies: + "@babel/core" "^7.25.9" + "@babel/generator" "^7.25.9" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-runtime" "^7.25.9" + "@babel/preset-env" "^7.25.9" + "@babel/preset-react" "^7.25.9" + "@babel/preset-typescript" "^7.25.9" + "@babel/runtime" "^7.25.9" + "@babel/traverse" "^7.25.9" + "@docusaurus/logger" "3.10.2" + "@docusaurus/utils" "3.10.2" + babel-plugin-dynamic-import-node "^2.3.3" + fs-extra "^11.1.1" + tslib "^2.6.0" + +"@docusaurus/bundler@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/bundler/-/bundler-3.10.2.tgz#323492eb0550b6a7f6e5fa6b9877cdb2c53b1be3" + integrity sha512-i0ZNcy0f0WhaOlYVgzLsWhIoEXO9kS3HRoKPtgE6vQtZUq7arKZaYdNBudr3mqCmd+TyOkwtwfHgs1ENj07r5g== + dependencies: + "@babel/core" "^7.25.9" + "@docusaurus/babel" "3.10.2" + "@docusaurus/cssnano-preset" "3.10.2" + "@docusaurus/logger" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils" "3.10.2" + babel-loader "^9.2.1" + clean-css "^5.3.3" + copy-webpack-plugin "^11.0.0" + css-loader "^6.11.0" + css-minimizer-webpack-plugin "^5.0.1" + cssnano "^6.1.2" + file-loader "^6.2.0" + html-minifier-terser "^7.2.0" + mini-css-extract-plugin "^2.9.2" + null-loader "^4.0.1" + postcss "^8.5.4" + postcss-loader "^7.3.4" + postcss-preset-env "^10.2.1" + terser-webpack-plugin "^5.3.9" + tslib "^2.6.0" + url-loader "^4.1.1" + webpack "^5.95.0" + webpackbar "^7.0.0" + +"@docusaurus/core@3.10.2", "@docusaurus/core@^3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-3.10.2.tgz#349cae728fc3769b3f8aef4cf538ccb79aace8d0" + integrity sha512-EYByj6nk+aD9KeVxV6Hmo2/nAAT79P21Y82ycTBOBtrmqilloIbIEhgL2/8Xpt2Jz/pgNqHAwyusOGwmbKeJmA== + dependencies: + "@docusaurus/babel" "3.10.2" + "@docusaurus/bundler" "3.10.2" + "@docusaurus/logger" "3.10.2" + "@docusaurus/mdx-loader" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-common" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" + boxen "^6.2.1" + chalk "^4.1.2" + chokidar "^3.5.3" + cli-table3 "^0.6.3" + combine-promises "^1.1.0" + commander "^5.1.0" + core-js "^3.31.1" + detect-port "^2.1.0" + escape-html "^1.0.3" + eta "^2.2.0" + eval "^0.1.8" + execa "^5.1.1" + fs-extra "^11.1.1" + html-tags "^3.3.1" + html-webpack-plugin "^5.6.0" + leven "^3.1.0" + lodash "^4.17.21" + open "^8.4.0" + p-map "^4.0.0" + prompts "^2.4.2" + react-helmet-async "npm:@slorber/react-helmet-async@1.3.0" + react-loadable "npm:@docusaurus/react-loadable@6.0.0" + react-loadable-ssr-addon-v5-slorber "^1.0.3" + react-router "^5.3.4" + react-router-config "^5.1.1" + react-router-dom "^5.3.4" + semver "^7.5.4" + serve-handler "^6.1.7" + tinypool "^1.0.2" + tslib "^2.6.0" + update-notifier "^6.0.2" + webpack "^5.95.0" + webpack-bundle-analyzer "^4.10.2" + webpack-dev-server "^5.2.2" + webpack-merge "^6.0.1" + +"@docusaurus/cssnano-preset@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-3.10.2.tgz#e3ac7e85585f77e8fdef95176ab7c211d1296630" + integrity sha512-4gCnHRbJLTloiwfvFAa92tgb2gI4KYhvjfQVYnEaiMO/EgvWfCo1LwytHXen+1oZAN0VAlS0JAPxp3MsvKDa3A== + dependencies: + cssnano-preset-advanced "^6.1.2" + postcss "^8.5.4" + postcss-sort-media-queries "^5.2.0" + tslib "^2.6.0" + +"@docusaurus/faster@^3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/faster/-/faster-3.10.2.tgz#6cacd14085445d5826990f7525c5df1cf371e04a" + integrity sha512-p/5E5/RyHv+QWusJMPN5i3OMJTqTgkhuwzVbB1AReDWTUHXQCmf5mlTFzGiDrWeQWIDOKsuOPn1jJh0s9LUOHA== + dependencies: + "@docusaurus/types" "3.10.2" + "@rspack/core" "^1.7.10" + "@swc/core" "^1.15.40" + "@swc/html" "^1.15.40" + browserslist "^4.24.2" + lightningcss "^1.27.0" + semver "^7.5.4" + swc-loader "^0.2.6" + tslib "^2.6.0" + webpack "^5.95.0" + +"@docusaurus/logger@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-3.10.2.tgz#280bed53d0eb9cdc56e896a155036207910e89c9" + integrity sha512-gSEwqtPfCAnC3ZSJY6xL7tcIfgg0vFD39jbv93eakuweyvO2864xR0K+kmKwBhkTCtWRNjuGGnb5rdmkD/ndqw== + dependencies: + chalk "^4.1.2" + tslib "^2.6.0" + +"@docusaurus/lqip-loader@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/lqip-loader/-/lqip-loader-3.10.2.tgz#6cfe52091e4df3832acfec4001910d0e0889158b" + integrity sha512-U9ON9YXhfQcF7s4JUrcw02Nxez9ctI5nu/+6XGGmLJ+yx36ALT1fFCHzHfd7+TvSB1H7aoT/6T5BdfZvRp++Wg== + dependencies: + "@docusaurus/logger" "3.10.2" + file-loader "^6.2.0" + lodash "^4.17.21" + sharp "^0.32.3" + tslib "^2.6.0" + +"@docusaurus/mdx-loader@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-3.10.2.tgz#3b4e7ffacff4ed856db2ec4e94c13b0a652d62eb" + integrity sha512-9Fd4V/SFjfrVQ0JH5EN0+iPWyFunvTeQE3gfyFeetqPaXMP0OylIjOw16dCuXG4NZJrYdBqwzjh18/h3gRi47w== + dependencies: + "@docusaurus/logger" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" + "@mdx-js/mdx" "^3.0.0" + "@slorber/remark-comment" "^1.0.0" + escape-html "^1.0.3" + estree-util-value-to-estree "^3.0.1" + file-loader "^6.2.0" + fs-extra "^11.1.1" + image-size "^2.0.2" + mdast-util-mdx "^3.0.0" + mdast-util-to-string "^4.0.0" + rehype-raw "^7.0.0" + remark-directive "^3.0.0" + remark-emoji "^4.0.0" + remark-frontmatter "^5.0.0" + remark-gfm "^4.0.0" + stringify-object "^3.3.0" + tslib "^2.6.0" + unified "^11.0.3" + unist-util-visit "^5.0.0" + url-loader "^4.1.1" + vfile "^6.0.1" + webpack "^5.88.1" + +"@docusaurus/module-type-aliases@3.10.2", "@docusaurus/module-type-aliases@^3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-3.10.2.tgz#7c3b940c77d72e71d33a1e76f0e003b418e6163a" + integrity sha512-h/I5e4jaAhDHW4vaLENi1i2hnOEnXY1t9R+nnRTbgUl7ymVRzN/HF7dDfj8rKYGj8gfIge+Ef+iYRAMtbGvsrQ== + dependencies: + "@docusaurus/types" "3.10.2" + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router-config" "*" + "@types/react-router-dom" "*" + react-helmet-async "npm:@slorber/react-helmet-async@1.3.0" + react-loadable "npm:@docusaurus/react-loadable@6.0.0" + +"@docusaurus/plugin-content-blog@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.10.2.tgz#2374886ec3d76e8f014e85db8c3c010de6c419be" + integrity sha512-0cbEnNKf0InmLkhj/+nVRmqEnWEoOE8Mh+2x1qOXI0qYpCnphq4RXknVJ8BvybKRXqYVvbmdMfiJSup+k4tm5w== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/logger" "3.10.2" + "@docusaurus/mdx-loader" "3.10.2" + "@docusaurus/theme-common" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-common" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" + cheerio "1.0.0-rc.12" + combine-promises "^1.1.0" + feed "^4.2.2" + fs-extra "^11.1.1" + lodash "^4.17.21" + schema-dts "^1.1.2" + srcset "^4.0.0" + tslib "^2.6.0" + unist-util-visit "^5.0.0" + utility-types "^3.10.0" + webpack "^5.88.1" + +"@docusaurus/plugin-content-docs@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.10.2.tgz#249bbc806437f227b06410ecc771eb67d8910a9a" + integrity sha512-Sqwl4FPoZBDrlY8I2VU2H8O0M91CHp9T8ToMSkTZmjvHCif+1laqfXi6sTk8IfyVS/trN5yNjcWd1bFsGB6W5Q== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/logger" "3.10.2" + "@docusaurus/mdx-loader" "3.10.2" + "@docusaurus/module-type-aliases" "3.10.2" + "@docusaurus/theme-common" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-common" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" + "@types/react-router-config" "^5.0.7" + combine-promises "^1.1.0" + fs-extra "^11.1.1" + js-yaml "^4.1.0" + lodash "^4.17.21" + schema-dts "^1.1.2" + tslib "^2.6.0" + utility-types "^3.10.0" + webpack "^5.88.1" + +"@docusaurus/plugin-content-pages@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.10.2.tgz#377c11b36a6a5e0c0c14dd9dea799f986d662ed7" + integrity sha512-h5R12sZ/vV9EPiVjvIl9YFCOwkpwXes7dQMYt3EvP6Pphu4amHxxTqWxf08Fl5DR8h+oZMbWpFTNw5vKEYfvzQ== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/mdx-loader" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" + fs-extra "^11.1.1" + tslib "^2.6.0" + webpack "^5.88.1" + +"@docusaurus/plugin-css-cascade-layers@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.10.2.tgz#54edc6450b0bb95be5990ea416b4c4dc5e6bdde0" + integrity sha512-UkdvQby5OQUKWrw3lLnSTJXQ6VETaUVTuPQX9AABtmFm5h+ifEBx1OQ+LN726Q4byuwBf2ElHkf4qU4hTxdvRg== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" + tslib "^2.6.0" + +"@docusaurus/plugin-debug@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-3.10.2.tgz#2452f258668bb2514085d2d5fff700457c531aad" + integrity sha512-8vbZNOSCpnsT57EY6CgN7sgRVmx3KTYwO8Uvo2pbxOyb8tbqAwtT9SslqaQ41HbA1v1hpn5RP7u5s2KvRwAFpQ== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils" "3.10.2" + fs-extra "^11.1.1" + react-json-view-lite "^2.3.0" + tslib "^2.6.0" + +"@docusaurus/plugin-google-analytics@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.10.2.tgz#7a0375c5a238cd9220166d9be8afc00ba508c55d" + integrity sha512-kMHMBK9j4VAtgd5owwrRLRIi0EjkrpXlX7ePj1+y68XfVZV9I1T4S+koPDm+Hfw2TtnyHvh0uNrDvjz+DjQGVA== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" + tslib "^2.6.0" + +"@docusaurus/plugin-google-gtag@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.10.2.tgz#65df25eb5fb3f2a3f2d0fba8ddd423060e09e1ca" + integrity sha512-Vt90nNFhtAChRe9+it1hcHFgFvETdSnOkL5Bma+p6E/yU2tAYrvvyk+gv+LJGM2ZUkyKuKXLRsZ2Lb0bO7+Vog== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" + tslib "^2.6.0" + +"@docusaurus/plugin-google-tag-manager@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.10.2.tgz#882a24e51dc42487d2c1d4f2cde3f59c99a276cb" + integrity sha512-MLCffCldysi/R0nzJQP7ZWd0xAoGNnSTiVOo6TTR6mKVGFhE+/XArGe67ZcaZv1uytgQXoXs92VJrgVDrz80rQ== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" + tslib "^2.6.0" + +"@docusaurus/plugin-ideal-image@^3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-ideal-image/-/plugin-ideal-image-3.10.2.tgz#51fa3048328ce403b2f153aee1fa676827d49106" + integrity sha512-M1uRffUaE5hqbo7368jSclYSU6oOOFdJ3/fq644kwaoComeG+jjBJ9piFrHkExtiU2Q7zcm1dWaqtfJVrR9wSQ== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/lqip-loader" "3.10.2" + "@docusaurus/responsive-loader" "^1.7.0" + "@docusaurus/theme-translations" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" + sharp "^0.32.3" + tslib "^2.6.0" + webpack "^5.88.1" + +"@docusaurus/plugin-sitemap@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.10.2.tgz#6c662c7df3bb7d36887f8b73f54d85dc4d36371d" + integrity sha512-PODkwg5XetLML3hU/3xpCKJUZ9cqExLaBnD/Fzzwj2VHogLeqnDisLIujae87zuze7T4mCm2A6KEqZkyiz07EQ== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/logger" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-common" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" + fs-extra "^11.1.1" + sitemap "^7.1.1" + tslib "^2.6.0" + +"@docusaurus/plugin-svgr@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-svgr/-/plugin-svgr-3.10.2.tgz#916fd0a5d39bf73cb621de9789cce243a7ef1754" + integrity sha512-JgfT3jWM0TJ8Uw0cEcqxHpybngQY1vlBYpuuNO+gEh5iPh5Ar+vxq/u9CFrYsWeXy48BN7Db76Pzp2edNXUQ8A== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" + "@svgr/core" "8.1.0" + "@svgr/webpack" "^8.1.0" + tslib "^2.6.0" + webpack "^5.88.1" + +"@docusaurus/preset-classic@^3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-3.10.2.tgz#e4419c811723ab913a946c63efcc15e7f5f60a0a" + integrity sha512-a4B3VczmDl99zK0EufDQYomdJ186WDingjmDXxhN2PNPS9Ty/Y2M5CLFX1KQMRKqRTLiRDKfutzG5IY1FC/ceg== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/plugin-content-blog" "3.10.2" + "@docusaurus/plugin-content-docs" "3.10.2" + "@docusaurus/plugin-content-pages" "3.10.2" + "@docusaurus/plugin-css-cascade-layers" "3.10.2" + "@docusaurus/plugin-debug" "3.10.2" + "@docusaurus/plugin-google-analytics" "3.10.2" + "@docusaurus/plugin-google-gtag" "3.10.2" + "@docusaurus/plugin-google-tag-manager" "3.10.2" + "@docusaurus/plugin-sitemap" "3.10.2" + "@docusaurus/plugin-svgr" "3.10.2" + "@docusaurus/theme-classic" "3.10.2" + "@docusaurus/theme-common" "3.10.2" + "@docusaurus/theme-search-algolia" "3.10.2" + "@docusaurus/types" "3.10.2" + +"@docusaurus/responsive-loader@^1.7.0": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@docusaurus/responsive-loader/-/responsive-loader-1.7.1.tgz#fe22a657263350cbc777e296e8d8403c53d2f247" + integrity sha512-jAebZ43f8GVpZSrijLGHVVp7Y0OMIPRaL+HhiIWQ+f/b72lTsKLkSkOVHEzvd2psNJ9lsoiM3gt6akpak6508w== + dependencies: + loader-utils "^2.0.0" + +"@docusaurus/theme-classic@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-3.10.2.tgz#a64bd600c789b33c67c30c256b07e2ca0f57e2ae" + integrity sha512-JqTSLQmqmA9uKWZsD5iwBGJ4JyKB4/yTw6PsSXVPRJG/6GAm/u+add9Iip+hvwP12/AnPNztrdxsI14NJW4KeA== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/logger" "3.10.2" + "@docusaurus/mdx-loader" "3.10.2" + "@docusaurus/module-type-aliases" "3.10.2" + "@docusaurus/plugin-content-blog" "3.10.2" + "@docusaurus/plugin-content-docs" "3.10.2" + "@docusaurus/plugin-content-pages" "3.10.2" + "@docusaurus/theme-common" "3.10.2" + "@docusaurus/theme-translations" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-common" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" + "@mdx-js/react" "^3.0.0" + clsx "^2.0.0" + copy-text-to-clipboard "^3.2.0" + infima "0.2.0-alpha.45" + lodash "^4.17.21" + nprogress "^0.2.0" + postcss "^8.5.4" + prism-react-renderer "^2.3.0" + prismjs "^1.29.0" + react-router-dom "^5.3.4" + rtlcss "^4.1.0" + tslib "^2.6.0" + utility-types "^3.10.0" + +"@docusaurus/theme-common@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-3.10.2.tgz#5cf2a8b76554b8b38c6afe8448470c411f683e5b" + integrity sha512-R9b/vMpK1yye6hNZTA6x/ivRv+at6GhxnXcxkpzCGzO1R1RwiquqiFg2wMFh6aqlJTpWRFKpFD2TzCDQcyOU0A== + dependencies: + "@docusaurus/mdx-loader" "3.10.2" + "@docusaurus/module-type-aliases" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-common" "3.10.2" + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router-config" "*" + clsx "^2.0.0" + parse-numeric-range "^1.3.0" + prism-react-renderer "^2.3.0" + tslib "^2.6.0" + utility-types "^3.10.0" + +"@docusaurus/theme-mermaid@^3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-mermaid/-/theme-mermaid-3.10.2.tgz#826e47a01fefbe49fdbb0f4f575c9399d3ccd92c" + integrity sha512-Stssh5MYQJ+EdYugUXf+ZcpeJFQPKXf0KCd/SWp10o3CmXNaOoh5IEgVjVqY1e1XhQf3on4+Y4BnrMiD95E2SQ== + dependencies: + "@docusaurus/core" "3.10.2" + "@docusaurus/module-type-aliases" "3.10.2" + "@docusaurus/theme-common" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" + mermaid ">=11.6.0" + tslib "^2.6.0" + +"@docusaurus/theme-search-algolia@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.10.2.tgz#e7756d4088a7df4d11fd734bfe0e8fa28ceac1dd" + integrity sha512-1msxllyhi/5m77JukXtp5UFnUAriwZIC1oJ7MTnpQpCwLTbclJi5BK5n28CTZuSXpQN2ewbbnqRgAhMM6c6ihg== + dependencies: + "@algolia/autocomplete-core" "^1.19.2" + "@docsearch/react" "^3.9.0 || ^4.3.2" + "@docusaurus/core" "3.10.2" + "@docusaurus/logger" "3.10.2" + "@docusaurus/plugin-content-docs" "3.10.2" + "@docusaurus/theme-common" "3.10.2" + "@docusaurus/theme-translations" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-validation" "3.10.2" + algoliasearch "^5.37.0" + algoliasearch-helper "^3.26.0" + clsx "^2.0.0" + eta "^2.2.0" + fs-extra "^11.1.1" + lodash "^4.17.21" + tslib "^2.6.0" + utility-types "^3.10.0" + +"@docusaurus/theme-translations@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-3.10.2.tgz#cd649083babd12df324e7129008aaccacd4cfb13" + integrity sha512-iv20wrxnyXkY89LM3TzRlzGlt5fIGO5UnaR6UL1ZVfB9RRFjxQFQ6awDrwAc6Km8Y5gD8pInuwYPF+6/TiCxXA== + dependencies: + fs-extra "^11.1.1" + tslib "^2.6.0" + +"@docusaurus/types@3.10.2", "@docusaurus/types@^3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-3.10.2.tgz#9ffe35adfb4587e49158ee9e10d94b86419a5932" + integrity sha512-B6rvfwIFSapUqUJjMriZswX13K8l5Z7AcmVE6uTEJpYddQieSTR12DsGaFtcZAIDsQd4p+0WTl0Vc6jmZK0Trw== + dependencies: + "@mdx-js/mdx" "^3.0.0" + "@types/history" "^4.7.11" + "@types/mdast" "^4.0.2" + "@types/react" "*" + commander "^5.1.0" + joi "^17.9.2" + react-helmet-async "npm:@slorber/react-helmet-async@1.3.0" + utility-types "^3.10.0" + webpack "^5.95.0" + webpack-merge "^5.9.0" + +"@docusaurus/utils-common@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-3.10.2.tgz#a65fcfffafa4e15a59fe61d7ba315ee5d4c49269" + integrity sha512-x3Dz6jv6iQKBNjBmVTu8p57abMp/VNTUgKBMgRVXJc5444orBTsArv0+cdfrXTiz/VMmHfDRVkPbL7GH2B7T7w== + dependencies: + "@docusaurus/types" "3.10.2" + tslib "^2.6.0" + +"@docusaurus/utils-validation@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-3.10.2.tgz#2624b0ca6675675da2f063828115b43c9a22de47" + integrity sha512-sn8unbDfUL585NtR3cwHefPicOyaHvPaX7VD0aOg/siIxUBoKyKKaGEqzJZDS64mM43TnxurkYDtmB1wsJlZsw== + dependencies: + "@docusaurus/logger" "3.10.2" + "@docusaurus/utils" "3.10.2" + "@docusaurus/utils-common" "3.10.2" + fs-extra "^11.2.0" + joi "^17.9.2" + js-yaml "^4.1.0" + lodash "^4.17.21" + tslib "^2.6.0" + +"@docusaurus/utils@3.10.2": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-3.10.2.tgz#d99c1ffc5c7961e912344269a8728ce2aad8b3dc" + integrity sha512-xx0W3eav2uW1NRIpuHJWNwLTC15xPNjU4Uxi9NSnd3swYC96BE3vFiT93SD8s24kmAAWNwgZwfZ2fghGZ01Lcw== + dependencies: + "@11ty/gray-matter" "^1.0.0" + "@docusaurus/logger" "3.10.2" + "@docusaurus/types" "3.10.2" + "@docusaurus/utils-common" "3.10.2" + escape-string-regexp "^4.0.0" + execa "^5.1.1" + file-loader "^6.2.0" + fs-extra "^11.1.1" + github-slugger "^1.5.0" + globby "^11.1.0" + jiti "^1.20.0" + js-yaml "^4.1.0" + lodash "^4.17.21" + micromatch "^4.0.5" + p-queue "^6.6.2" + prompts "^2.4.2" + resolve-pathname "^3.0.0" + tslib "^2.6.0" + url-loader "^4.1.1" + utility-types "^3.10.0" + webpack "^5.88.1" + +"@emnapi/core@^1.5.0": + version "1.11.3" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.11.3.tgz#5e95348a42cd1e06f0b9aa380cd74091daa4d520" + integrity sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg== + dependencies: + "@emnapi/wasi-threads" "1.2.3" + tslib "^2.4.0" + +"@emnapi/runtime@^1.5.0": + version "1.11.3" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.11.3.tgz#84257ae3b0531eb2aec1ffa23d70700da007ba95" + integrity sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA== + dependencies: + tslib "^2.4.0" + +"@emnapi/wasi-threads@1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.2.3.tgz#c9bf72fd4be5b928aee894820e8d814ed73916e9" + integrity sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g== + dependencies: + tslib "^2.4.0" + +"@emotion/babel-plugin@^11.13.5": + version "11.13.5" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz#eab8d65dbded74e0ecfd28dc218e75607c4e7bc0" + integrity sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/runtime" "^7.18.3" + "@emotion/hash" "^0.9.2" + "@emotion/memoize" "^0.9.0" + "@emotion/serialize" "^1.3.3" + babel-plugin-macros "^3.1.0" + convert-source-map "^1.5.0" + escape-string-regexp "^4.0.0" + find-root "^1.1.0" + source-map "^0.5.7" + stylis "4.2.0" + +"@emotion/cache@^11.14.0": + version "11.14.0" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.14.0.tgz#ee44b26986eeb93c8be82bb92f1f7a9b21b2ed76" + integrity sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA== + dependencies: + "@emotion/memoize" "^0.9.0" + "@emotion/sheet" "^1.4.0" + "@emotion/utils" "^1.4.2" + "@emotion/weak-memoize" "^0.4.0" + stylis "4.2.0" + +"@emotion/hash@^0.9.2": + version "0.9.2" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.2.tgz#ff9221b9f58b4dfe61e619a7788734bd63f6898b" + integrity sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g== + +"@emotion/is-prop-valid@^1.3.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz#e9ad47adff0b5c94c72db3669ce46de33edf28c0" + integrity sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw== + dependencies: + "@emotion/memoize" "^0.9.0" + +"@emotion/memoize@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.9.0.tgz#745969d649977776b43fc7648c556aaa462b4102" + integrity sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ== + +"@emotion/react@^11.14.0": + version "11.14.0" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.14.0.tgz#cfaae35ebc67dd9ef4ea2e9acc6cd29e157dd05d" + integrity sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.13.5" + "@emotion/cache" "^11.14.0" + "@emotion/serialize" "^1.3.3" + "@emotion/use-insertion-effect-with-fallbacks" "^1.2.0" + "@emotion/utils" "^1.4.2" + "@emotion/weak-memoize" "^0.4.0" + hoist-non-react-statics "^3.3.1" + +"@emotion/serialize@^1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.3.3.tgz#d291531005f17d704d0463a032fe679f376509e8" + integrity sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA== + dependencies: + "@emotion/hash" "^0.9.2" + "@emotion/memoize" "^0.9.0" + "@emotion/unitless" "^0.10.0" + "@emotion/utils" "^1.4.2" + csstype "^3.0.2" + +"@emotion/sheet@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.4.0.tgz#c9299c34d248bc26e82563735f78953d2efca83c" + integrity sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg== + +"@emotion/styled@^11.14.1": + version "11.14.1" + resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.14.1.tgz#8c34bed2948e83e1980370305614c20955aacd1c" + integrity sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.13.5" + "@emotion/is-prop-valid" "^1.3.0" + "@emotion/serialize" "^1.3.3" + "@emotion/use-insertion-effect-with-fallbacks" "^1.2.0" + "@emotion/utils" "^1.4.2" + +"@emotion/unitless@^0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.10.0.tgz#2af2f7c7e5150f497bdabd848ce7b218a27cf745" + integrity sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg== + +"@emotion/use-insertion-effect-with-fallbacks@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz#8a8cb77b590e09affb960f4ff1e9a89e532738bf" + integrity sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg== + +"@emotion/utils@^1.4.2": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.4.2.tgz#6df6c45881fcb1c412d6688a311a98b7f59c1b52" + integrity sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA== + +"@emotion/weak-memoize@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz#5e13fac887f08c44f76b0ccaf3370eb00fec9bb6" + integrity sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg== + +"@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" + integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== + +"@hapi/topo@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@iconify/react@^6.0.0": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@iconify/react/-/react-6.0.2.tgz#b6d9bd0e13f9cb85b3a7fddbc70bbf71f5da1d33" + integrity sha512-SMmC2sactfpJD427WJEDN6PMyznTFMhByK9yLW0gOTtnjzzbsi/Ke/XqsumsavFPwNiXs8jSiYeZTmLCLwO+Fg== + dependencies: + "@iconify/types" "^2.0.0" + +"@iconify/types@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@iconify/types/-/types-2.0.0.tgz#ab0e9ea681d6c8a1214f30cd741fe3a20cc57f57" + integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg== + +"@iconify/utils@^3.0.2": + version "3.1.7" + resolved "https://registry.yarnpkg.com/@iconify/utils/-/utils-3.1.7.tgz#fff11c528490b119a250ace3cf35a0a78e182317" + integrity sha512-JZHlwdID+dy+lTgbYC8NEC4zeugqeYsc6jewvzb4c58kHauJn+X7rNwQjxz5p2qSjqaEeQoLkCIQ9v/H4PK0/w== + dependencies: + "@antfu/install-pkg" "^2.0.1" + "@iconify/types" "^2.0.0" + import-meta-resolve "^4.2.0" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" + integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/remapping@^2.3.5": + version "2.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" + integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/source-map@^0.3.3": + version "0.3.11" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.11.tgz#b21835cbd36db656b857c2ad02ebd413cc13a9ba" + integrity sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz#f4c663e862f06dc98ca4d453862c46902789a18d" + integrity sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw== + +"@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28", "@jridgewell/trace-mapping@^0.3.31": + version "0.3.31" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" + integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@jsonjoy.com/base64@17.67.0": + version "17.67.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/base64/-/base64-17.67.0.tgz#7eeda3cb41138d77a90408fd2e42b2aba10576d7" + integrity sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw== + +"@jsonjoy.com/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/base64/-/base64-1.1.2.tgz#cf8ea9dcb849b81c95f14fc0aaa151c6b54d2578" + integrity sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA== + +"@jsonjoy.com/buffers@17.67.0", "@jsonjoy.com/buffers@^17.65.0": + version "17.67.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/buffers/-/buffers-17.67.0.tgz#5c58dbcdeea8824ce296bd1cfce006c2eb167b3d" + integrity sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw== + +"@jsonjoy.com/buffers@^1.0.0", "@jsonjoy.com/buffers@^1.2.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz#8d99c7f67eaf724d3428dfd9826c6455266a5c83" + integrity sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA== + +"@jsonjoy.com/codegen@17.67.0": + version "17.67.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/codegen/-/codegen-17.67.0.tgz#3635fd8769d77e19b75dc5574bc9756019b2e591" + integrity sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q== + +"@jsonjoy.com/codegen@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz#5c23f796c47675f166d23b948cdb889184b93207" + integrity sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g== + +"@jsonjoy.com/fs-core@4.79.0": + version "4.79.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-core/-/fs-core-4.79.0.tgz#ad4dd92688da6812184fc04d1eda0afbfd663723" + integrity sha512-bxSwMrDY71OjEdj2mAYBxSe4BnHtAOjOxqUoFJc0WsllcGgA8iYl6wRF+4aVdFUjjEyHfBwxVv0QqW4AweIUZw== + dependencies: + "@jsonjoy.com/fs-node-builtins" "4.79.0" + "@jsonjoy.com/fs-node-utils" "4.79.0" + thingies "^2.5.0" + +"@jsonjoy.com/fs-fsa@4.79.0": + version "4.79.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-fsa/-/fs-fsa-4.79.0.tgz#80b3df89e3402ff0abbc87386f12c85a412acf89" + integrity sha512-EdadmStAvZw4jYg4iW3mDxBmzMFSI8jcHQkSl+rIQIO7dWbPdXaB83PBQhNCCtMBeX7zwcOFjpp0ecXqbYbjUA== + dependencies: + "@jsonjoy.com/fs-core" "4.79.0" + "@jsonjoy.com/fs-node-builtins" "4.79.0" + "@jsonjoy.com/fs-node-utils" "4.79.0" + thingies "^2.5.0" + +"@jsonjoy.com/fs-node-builtins@4.79.0": + version "4.79.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.79.0.tgz#68de66759363b641579b7e0e60a0699434a91fe4" + integrity sha512-LoBHewVHp/bZQ8Om1Iivl6NEHg7Mmby9kXJZysfnHYW4256rzXFSEcEpto1qgSAka+sq2v4N/Cnl562Z15MByA== + +"@jsonjoy.com/fs-node-to-fsa@4.79.0": + version "4.79.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.79.0.tgz#8a2d73acf27cb56b1c50c8dd82a42801e552b1f2" + integrity sha512-xFza/t81sVL4rik7h3SlcymC6X7pvNllI88LW1GESEANDXinf5lZoqju59i3AsGLyy4i0eBQvPiizWSMwCunQA== + dependencies: + "@jsonjoy.com/fs-fsa" "4.79.0" + "@jsonjoy.com/fs-node-builtins" "4.79.0" + "@jsonjoy.com/fs-node-utils" "4.79.0" + +"@jsonjoy.com/fs-node-utils@4.79.0": + version "4.79.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.79.0.tgz#2027d373b9bfc6c57629a4b95f41543c847612da" + integrity sha512-Rj/WevHB8DV8VyEvFGSvDD3m3JHOVk3fO1biH26iworL9/rqdUMKQQeyiKTLbdf3Z9s9vVZnn8ZC0FWZgtO2mg== + dependencies: + "@jsonjoy.com/fs-node-builtins" "4.79.0" + glob-to-regex.js "^1.3.1" + +"@jsonjoy.com/fs-node@4.79.0": + version "4.79.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node/-/fs-node-4.79.0.tgz#2fa2b746b069482394988132f61012ec168214b3" + integrity sha512-/k18aT1X+A2yLdlTe3WKpL5y2qrvbcUY1BXA4A+s8fBfTeXfi+xdvEB85JVXVf2i9kzASQZFx8dHw9OchgMUhQ== + dependencies: + "@jsonjoy.com/fs-core" "4.79.0" + "@jsonjoy.com/fs-node-builtins" "4.79.0" + "@jsonjoy.com/fs-node-utils" "4.79.0" + "@jsonjoy.com/fs-print" "4.79.0" + "@jsonjoy.com/fs-snapshot" "4.79.0" + glob-to-regex.js "^1.3.1" + thingies "^2.5.0" + +"@jsonjoy.com/fs-print@4.79.0": + version "4.79.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-print/-/fs-print-4.79.0.tgz#eb65991853ab80491110ae42a637455d9d272e71" + integrity sha512-Bp5Q+OV1Dnl8oKf8hVhmboeI+NWbWRk1GxtJzuRvopDeNBDBh0RLevEsfnOVtwBwgRZaptSXn3e/mm3kbOzfDw== + dependencies: + "@jsonjoy.com/fs-node-utils" "4.79.0" + tree-dump "^1.1.0" + +"@jsonjoy.com/fs-snapshot@4.79.0": + version "4.79.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.79.0.tgz#eadd70e354afaeb97fc996c8ef7431249aea73fa" + integrity sha512-/GY+eMvOl4ZQHUnrKYjC/t3N0BImBg7zv/cAGm3kiwUfqSQuo87jtbjmD3mzgQMv16K8zttkHE2wT9GaVsehvA== + dependencies: + "@jsonjoy.com/buffers" "^17.65.0" + "@jsonjoy.com/fs-node-utils" "4.79.0" + "@jsonjoy.com/json-pack" "^17.65.0" + "@jsonjoy.com/util" "^17.65.0" + +"@jsonjoy.com/json-pack@^1.11.0": + version "1.21.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz#93f8dd57fe3a3a92132b33d1eb182dcd9e7629fa" + integrity sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg== + dependencies: + "@jsonjoy.com/base64" "^1.1.2" + "@jsonjoy.com/buffers" "^1.2.0" + "@jsonjoy.com/codegen" "^1.0.0" + "@jsonjoy.com/json-pointer" "^1.0.2" + "@jsonjoy.com/util" "^1.9.0" + hyperdyperid "^1.2.0" + thingies "^2.5.0" + tree-dump "^1.1.0" + +"@jsonjoy.com/json-pack@^17.65.0": + version "17.67.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pack/-/json-pack-17.67.0.tgz#8dd8ff65dd999c5d4d26df46c63915c7bdec093a" + integrity sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w== + dependencies: + "@jsonjoy.com/base64" "17.67.0" + "@jsonjoy.com/buffers" "17.67.0" + "@jsonjoy.com/codegen" "17.67.0" + "@jsonjoy.com/json-pointer" "17.67.0" + "@jsonjoy.com/util" "17.67.0" + hyperdyperid "^1.2.0" + thingies "^2.5.0" + tree-dump "^1.1.0" + +"@jsonjoy.com/json-pointer@17.67.0": + version "17.67.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pointer/-/json-pointer-17.67.0.tgz#74439573dc046e0c9a3a552fb94b391bc75313b8" + integrity sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA== + dependencies: + "@jsonjoy.com/util" "17.67.0" + +"@jsonjoy.com/json-pointer@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz#049cb530ac24e84cba08590c5e36b431c4843408" + integrity sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg== + dependencies: + "@jsonjoy.com/codegen" "^1.0.0" + "@jsonjoy.com/util" "^1.9.0" + +"@jsonjoy.com/util@17.67.0", "@jsonjoy.com/util@^17.65.0": + version "17.67.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-17.67.0.tgz#7c4288fc3808233e55c7610101e7bb4590cddd3f" + integrity sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew== + dependencies: + "@jsonjoy.com/buffers" "17.67.0" + "@jsonjoy.com/codegen" "17.67.0" + +"@jsonjoy.com/util@^1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-1.9.0.tgz#7ee95586aed0a766b746cd8d8363e336c3c47c46" + integrity sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ== + dependencies: + "@jsonjoy.com/buffers" "^1.0.0" + "@jsonjoy.com/codegen" "^1.0.0" + +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" + integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== + +"@mdx-js/mdx@^3.0.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-3.1.1.tgz#c5ffd991a7536b149e17175eee57a1a2a511c6d1" + integrity sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ== + dependencies: + "@types/estree" "^1.0.0" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdx" "^2.0.0" + acorn "^8.0.0" + collapse-white-space "^2.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + estree-util-scope "^1.0.0" + estree-walker "^3.0.0" + hast-util-to-jsx-runtime "^2.0.0" + markdown-extensions "^2.0.0" + recma-build-jsx "^1.0.0" + recma-jsx "^1.0.0" + recma-stringify "^1.0.0" + rehype-recma "^1.0.0" + remark-mdx "^3.0.0" + remark-parse "^11.0.0" + remark-rehype "^11.0.0" + source-map "^0.7.0" + unified "^11.0.0" + unist-util-position-from-estree "^2.0.0" + unist-util-stringify-position "^4.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + +"@mdx-js/react@^3.0.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-3.1.1.tgz#24bda7fffceb2fe256f954482123cda1be5f5fef" + integrity sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw== + dependencies: + "@types/mdx" "^2.0.0" + +"@mermaid-js/parser@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@mermaid-js/parser/-/parser-2.0.0.tgz#018b3e6754e4302fb059765c37bae30ecdff4147" + integrity sha512-K8BeapFUfrfxbRAUQAG5oBOCwo1+bNWzaVnPxTCutkfrTBn6T/j91FIhqxWJ32SUeQ9T3iy1zcmPZ5ROZEvDrg== + dependencies: + "@chevrotain/types" "~11.1.2" + +"@module-federation/error-codes@0.22.0": + version "0.22.0" + resolved "https://registry.yarnpkg.com/@module-federation/error-codes/-/error-codes-0.22.0.tgz#31ccc990dc240d73912ba7bd001f7e35ac751992" + integrity sha512-xF9SjnEy7vTdx+xekjPCV5cIHOGCkdn3pIxo9vU7gEZMIw0SvAEdsy6Uh17xaCpm8V0FWvR0SZoK9Ik6jGOaug== + +"@module-federation/runtime-core@0.22.0": + version "0.22.0" + resolved "https://registry.yarnpkg.com/@module-federation/runtime-core/-/runtime-core-0.22.0.tgz#7321ec792bb7d1d22bee6162ec43564b769d2a3c" + integrity sha512-GR1TcD6/s7zqItfhC87zAp30PqzvceoeDGYTgF3Vx2TXvsfDrhP6Qw9T4vudDQL3uJRne6t7CzdT29YyVxlgIA== + dependencies: + "@module-federation/error-codes" "0.22.0" + "@module-federation/sdk" "0.22.0" + +"@module-federation/runtime-tools@0.22.0": + version "0.22.0" + resolved "https://registry.yarnpkg.com/@module-federation/runtime-tools/-/runtime-tools-0.22.0.tgz#36f2a7cb267af208a9d1a237fe9a71b4bf31431e" + integrity sha512-4ScUJ/aUfEernb+4PbLdhM/c60VHl698Gn1gY21m9vyC1Ucn69fPCA1y2EwcCB7IItseRMoNhdcWQnzt/OPCNA== + dependencies: + "@module-federation/runtime" "0.22.0" + "@module-federation/webpack-bundler-runtime" "0.22.0" + +"@module-federation/runtime@0.22.0": + version "0.22.0" + resolved "https://registry.yarnpkg.com/@module-federation/runtime/-/runtime-0.22.0.tgz#f789c9ef40d846d110711c8221ecc0ad938d43d8" + integrity sha512-38g5iPju2tPC3KHMPxRKmy4k4onNp6ypFPS1eKGsNLUkXgHsPMBFqAjDw96iEcjri91BrahG4XcdyKi97xZzlA== + dependencies: + "@module-federation/error-codes" "0.22.0" + "@module-federation/runtime-core" "0.22.0" + "@module-federation/sdk" "0.22.0" + +"@module-federation/sdk@0.22.0": + version "0.22.0" + resolved "https://registry.yarnpkg.com/@module-federation/sdk/-/sdk-0.22.0.tgz#6ad4c1de85a900c3c80ff26cb87cce253e3a2770" + integrity sha512-x4aFNBKn2KVQRuNVC5A7SnrSCSqyfIWmm1DvubjbO9iKFe7ith5niw8dqSFBekYBg2Fwy+eMg4sEFNVvCAdo6g== + +"@module-federation/webpack-bundler-runtime@0.22.0": + version "0.22.0" + resolved "https://registry.yarnpkg.com/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.22.0.tgz#dcbe8f972d722fe278e6a7c21988d4bee53d401d" + integrity sha512-aM8gCqXu+/4wBmJtVeMeeMN5guw3chf+2i6HajKtQv7SJfxV/f4IyNQJUeUQu9HfiAZHjqtMV5Lvq/Lvh8LdyA== + dependencies: + "@module-federation/runtime" "0.22.0" + "@module-federation/sdk" "0.22.0" + +"@mui/core-downloads-tracker@^7.3.11": + version "7.3.11" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-7.3.11.tgz#93251cf192641b9582641991feea60149159902c" + integrity sha512-a7I/b/nBTdXYz2cOSlEmkQ9WWE1x8FHpqMhFPp+Y1VPFxcOw91G5ELOHARQAGSPy5V+UCgJua6K/1x70bAtQPw== + +"@mui/icons-material@^7.3.1": + version "7.3.11" + resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-7.3.11.tgz#dfea40829d1ca96c074c85093fdfe0de170af5ad" + integrity sha512-+hz5ilwHZ3djd5es3sCErLioqe/NhZcYTsV/TNXZAMdJdb23F4xzJjqnnZdnurc3S1+ietcssRNqieOhPQLZ7Q== + dependencies: + "@babel/runtime" "^7.28.6" + +"@mui/material@^7.3.1": + version "7.3.11" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-7.3.11.tgz#aa6e0640bb29bd01e6c353ac3436fa0b20e5a36b" + integrity sha512-yq8bPc3LxOwKRWpcjRgDkYFmpM6aKlARfESTmOQcvLYFeJwtHte2tw6hJDrb8sk8wcvpDprHEHVaoUU0MslIkw== + dependencies: + "@babel/runtime" "^7.28.6" + "@mui/core-downloads-tracker" "^7.3.11" + "@mui/system" "^7.3.11" + "@mui/types" "^7.4.12" + "@mui/utils" "^7.3.11" + "@popperjs/core" "^2.11.8" + "@types/react-transition-group" "^4.4.12" + clsx "^2.1.1" + csstype "^3.2.3" + prop-types "^15.8.1" + react-is "^19.2.3" + react-transition-group "^4.4.5" + +"@mui/private-theming@^7.3.11": + version "7.3.11" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-7.3.11.tgz#96d4cde586624916816f5a97fef3c808cf562fb0" + integrity sha512-9B+YKms0fRHbNrqp9tOT/DNbNnU5gyvJ1o3qAGXfq8GmZcbJnE3At9x07Zr/o0pkhzg4aDdwXVqe4+AcgtOCPA== + dependencies: + "@babel/runtime" "^7.28.6" + "@mui/utils" "^7.3.11" + prop-types "^15.8.1" + +"@mui/styled-engine@^7.3.10": + version "7.3.10" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-7.3.10.tgz#53e98c1fdeda972b5932c76f6a2a29faf33f0d11" + integrity sha512-WxE9SiF8xskAQqGjsp0poXCkCqsoXFEsSr0HBXfApmGHR+DBnXRp+z46Vsltg4gpPM4Z96DeAQRpeAOnhNg7Ng== + dependencies: + "@babel/runtime" "^7.28.6" + "@emotion/cache" "^11.14.0" + "@emotion/serialize" "^1.3.3" + "@emotion/sheet" "^1.4.0" + csstype "^3.2.3" + prop-types "^15.8.1" + +"@mui/system@^7.3.11": + version "7.3.11" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-7.3.11.tgz#ffb8ba06f43d697db80257b9a2dfc8042b18554a" + integrity sha512-7izwGWdNawAKpBKcRlx7f2gFnAAjmASBWvMcyX4YYEeLOFsbfGRbUYGInvnAcUeql3rPxI7F9Ft4oY2OLRz44g== + dependencies: + "@babel/runtime" "^7.28.6" + "@mui/private-theming" "^7.3.11" + "@mui/styled-engine" "^7.3.10" + "@mui/types" "^7.4.12" + "@mui/utils" "^7.3.11" + clsx "^2.1.1" + csstype "^3.2.3" + prop-types "^15.8.1" + +"@mui/types@^7.4.12": + version "7.4.12" + resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.4.12.tgz#e4eba37a7506419ea5c5e0604322ba82b271bf46" + integrity sha512-iKNAF2u9PzSIj40CjvKJWxFXJo122jXVdrmdh0hMYd+FR+NuJMkr/L88XwWLCRiJ5P1j+uyac25+Kp6YC4hu6w== + dependencies: + "@babel/runtime" "^7.28.6" + +"@mui/utils@^7.3.11": + version "7.3.11" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-7.3.11.tgz#493f46f053fe3a692e041b1b6b8295e2f46d9448" + integrity sha512-XTjGnifwteg71/ij+0e7Y7d+hwyntMYP5wPoA/g2drdGH+Flkvjwy0OfrVpKBbaOvofq4zU/LIyUZyKgmWu18g== + dependencies: + "@babel/runtime" "^7.28.6" + "@mui/types" "^7.4.12" + "@types/prop-types" "^15.7.15" + clsx "^2.1.1" + prop-types "^15.8.1" + react-is "^19.2.3" + +"@napi-rs/wasm-runtime@1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.7.tgz#dcfea99a75f06209a235f3d941e3460a51e9b14c" + integrity sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw== + dependencies: + "@emnapi/core" "^1.5.0" + "@emnapi/runtime" "^1.5.0" + "@tybys/wasm-util" "^0.10.1" + +"@noble/hashes@1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" + integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@peculiar/asn1-cms@^2.6.0", "@peculiar/asn1-cms@^2.9.5": + version "2.9.5" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-cms/-/asn1-cms-2.9.5.tgz#d00db559bc06702a5702d047df4ba376e8ada76f" + integrity sha512-4Ivz0fsyFofe0bslNsYcGN9+iETdHX4v+BFwIPr+K/BAt61sHXECP63ff9FntU9zcfVQELJFdUG9so44OjUlBQ== + dependencies: + "@peculiar/asn1-schema" "^2.9.5" + "@peculiar/asn1-x509" "^2.9.5" + "@peculiar/asn1-x509-attr" "^2.9.5" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-csr@^2.6.0": + version "2.9.5" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-csr/-/asn1-csr-2.9.5.tgz#d43ea2c72969f9d57aff5f083d8dad8814ccefc3" + integrity sha512-9dO6PcoJeI+1xJ4rG7eINMa6f9Ix/QdRs5UGZ0D7v/R3TzmsbVr5cqAgfYw4xgS9U54ouHYqEz0bIZBbM/UY1g== + dependencies: + "@peculiar/asn1-schema" "^2.9.5" + "@peculiar/asn1-x509" "^2.9.5" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-ecc@^2.6.0": + version "2.9.5" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-ecc/-/asn1-ecc-2.9.5.tgz#25e01ad537dff87d4af6e9d19ae080aa0f0ebe9e" + integrity sha512-OD+HLlcV7wCL64w0rheX/C0J31DbJce0nf8ulv3UNftQ617JEZE3sQ4cMN6PotXWlJ1M5GQx90G3bywtdKOstw== + dependencies: + "@peculiar/asn1-schema" "^2.9.5" + "@peculiar/asn1-x509" "^2.9.5" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-pfx@^2.9.5": + version "2.9.5" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-pfx/-/asn1-pfx-2.9.5.tgz#daaa30c60ce9ac10901dd2df74b5825117e79b49" + integrity sha512-btcH7lbcD4410qnjHvv7F0kEuMNKbX8CFAZSs9CDPWHKzT1byLPHYeR40AnUw9z4CzsijMY0daBFYUvVx75sdA== + dependencies: + "@peculiar/asn1-cms" "^2.9.5" + "@peculiar/asn1-pkcs8" "^2.9.5" + "@peculiar/asn1-rsa" "^2.9.5" + "@peculiar/asn1-schema" "^2.9.5" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-pkcs8@^2.9.5": + version "2.9.5" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.9.5.tgz#d33e29733c1d0975f892e5f39fc2e36add4b9a1c" + integrity sha512-c7UghAGQdBfAHL9JdwcJkAc/lDJKNXfCdYXPXlf8BZdD/fVJjJnXKHxX4gyLhkFTvnGhME7caieSgc2ROtqYTQ== + dependencies: + "@peculiar/asn1-schema" "^2.9.5" + "@peculiar/asn1-x509" "^2.9.5" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-pkcs9@^2.6.0": + version "2.9.5" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.9.5.tgz#de86036edf0fbdbf2781e3930d6247469680722f" + integrity sha512-4R/zMgLSHbQIZRBwP1KzX6iuNHmW3xFWwu9TS9A00N60fmQqp9DkkqnQFyd0mAYMQTrQefuzQ/yP4U8sOLGUgQ== + dependencies: + "@peculiar/asn1-cms" "^2.9.5" + "@peculiar/asn1-pfx" "^2.9.5" + "@peculiar/asn1-pkcs8" "^2.9.5" + "@peculiar/asn1-schema" "^2.9.5" + "@peculiar/asn1-x509" "^2.9.5" + "@peculiar/asn1-x509-attr" "^2.9.5" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-rsa@^2.6.0", "@peculiar/asn1-rsa@^2.9.5": + version "2.9.5" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-rsa/-/asn1-rsa-2.9.5.tgz#2d4bae3c32e634e6c0d3b617bc8aaee50d618c98" + integrity sha512-kHwBLVMkm9ljlM521ovS7y4z4mr8xuHTdNyyoPlDvckBwFKSgs9HqKBryLBeqHqL2YpIgl+Vspl7kzNGG2phzA== + dependencies: + "@peculiar/asn1-schema" "^2.9.5" + "@peculiar/asn1-x509" "^2.9.5" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-schema@^2.6.0", "@peculiar/asn1-schema@^2.9.5": + version "2.9.5" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.9.5.tgz#db0e72002915b25c806b505d49621bc6085d3ad9" + integrity sha512-Ez3wLKVjaxdsLcgeWN4OE31QkM7oBOgKuuBJxldRYAkfYw2C+8zJPcSd/SThnbhszsEOlAmoaS5kIIkN29fGKQ== + dependencies: + "@peculiar/utils" "^2.0.2" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-x509-attr@^2.9.5": + version "2.9.5" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.9.5.tgz#28d534a55b34c9e781e74402493a7e49f1e7ef46" + integrity sha512-PlbL1a74RZiry7puPCZ5hdk/puvivxYJPbjadr2i7DBjHCJFEKCfTRPKL3DILeZFtzJjn95J5EBtSc4/TB9/6Q== + dependencies: + "@peculiar/asn1-schema" "^2.9.5" + "@peculiar/asn1-x509" "^2.9.5" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/asn1-x509@^2.6.0", "@peculiar/asn1-x509@^2.9.5": + version "2.9.5" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.9.5.tgz#98bf4cb64707085c194f05918bdd3af30be85ef8" + integrity sha512-NP3ecvN6zTDlwCvogIWL7MJN9AZNuskkIbnlhrlkB97Mn2EqirBUQ8GKzsOmdAL3pRvjGu1Uk/a4DNfiZrWxhw== + dependencies: + "@peculiar/asn1-schema" "^2.9.5" + "@peculiar/utils" "^2.0.2" + asn1js "^3.0.10" + tslib "^2.8.1" + +"@peculiar/utils@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@peculiar/utils/-/utils-2.0.3.tgz#a27ca4c4b73652e110f19a7d16d664f458a5528e" + integrity sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ== + dependencies: + tslib "^2.8.1" + +"@peculiar/x509@^1.14.2": + version "1.14.3" + resolved "https://registry.yarnpkg.com/@peculiar/x509/-/x509-1.14.3.tgz#2c44c2b89474346afec38a0c2803ec4fb8ce959e" + integrity sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA== + dependencies: + "@peculiar/asn1-cms" "^2.6.0" + "@peculiar/asn1-csr" "^2.6.0" + "@peculiar/asn1-ecc" "^2.6.0" + "@peculiar/asn1-pkcs9" "^2.6.0" + "@peculiar/asn1-rsa" "^2.6.0" + "@peculiar/asn1-schema" "^2.6.0" + "@peculiar/asn1-x509" "^2.6.0" + pvtsutils "^1.3.6" + reflect-metadata "^0.2.2" + tslib "^2.8.1" + tsyringe "^4.10.0" + +"@pnpm/config.env-replace@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" + integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w== + +"@pnpm/network.ca-file@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983" + integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== + dependencies: + graceful-fs "4.2.10" + +"@pnpm/npm-conf@^3.0.2": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-3.0.3.tgz#17b59982126c86294a8d248aa1d7b185f2df6484" + integrity sha512-//0sR/cow/s4ICQaYoAobOl4aU8cjU6x/V24V7XkKotb9+O+3zySIYp146vpaobYHnxa4pZX8NkV54Z5AwbDKA== + dependencies: + "@pnpm/config.env-replace" "^1.1.0" + "@pnpm/network.ca-file" "^1.0.1" + config-chain "^1.1.11" + +"@polka/url@^1.0.0-next.24": + version "1.0.0-next.29" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.29.tgz#5a40109a1ab5f84d6fd8fc928b19f367cbe7e7b1" + integrity sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww== + +"@popperjs/core@^2.11.8": + version "2.11.8" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" + integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== + +"@rspack/binding-darwin-arm64@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-1.7.12.tgz#e6e10e7ff15c2254d6cbe9125a747ada880a34f3" + integrity sha512-rbFprJaJiqrmfy8SHth8EsoRS0wg4bXcucwj9NiMzpGFq14Opw8c04iQ6H9BECYzgmN0PKZ9rh41LdVvhdZe4A== + +"@rspack/binding-darwin-x64@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.7.12.tgz#fe90b64228eb49612e4932049325f52a4ddcfd28" + integrity sha512-jnOp+/UXOJa9xqUb8KXH03sysoO2e4Ij6tw6MqDdmdj8n/A8PQENRPUbW9AwXpPtVDJPus9r4fi7b3+6e4B8Hg== + +"@rspack/binding-linux-arm64-gnu@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.7.12.tgz#61d63a0fcb9b4eb25b9d68e1f897c8e2619a8a5a" + integrity sha512-C8owWG+yvo7X0oVLIXetkoJhIFBP1LYNcAQqtgLmJnQLQDklGuP83dKC+zISGQWpjawHfZ1ER96vLgoTrxKZdw== + +"@rspack/binding-linux-arm64-musl@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.7.12.tgz#fd5157890b1250937bb98332dcbb35ff2d7aafd3" + integrity sha512-i51WWI64aRpsfSki6rN0aepPqXkVfS+vZM7+4bWDcmnhUmdMvhIPcYg0QRk3DtyJnu33jqNLM0WHY78k00NyfA== + +"@rspack/binding-linux-x64-gnu@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.7.12.tgz#a8c963c47a043069b154c704d87bf6a658772ac7" + integrity sha512-MSos0FuPEefqo9V92ULd5hggKG29EkSNg1zDcypy0OkpsKh5pfjVxTLYFXgTcVyFoUQQbdG8zFBzYbwmJ8V4ew== + +"@rspack/binding-linux-x64-musl@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.7.12.tgz#1e95af2b152a0833272c26c3473cfa60832ef8b0" + integrity sha512-JcAMVKXOnjfpC3coWjCFPWD3Yl8RBw6a+IXQQ8mfRlHaHMIiOv8IfZqx15XRxMUn49CtP7Z0Na8iiAg2aKrcfw== + +"@rspack/binding-wasm32-wasi@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding-wasm32-wasi/-/binding-wasm32-wasi-1.7.12.tgz#37a10f322e82cbd51114e8a3182f46c6af101a20" + integrity sha512-n+ZqP6ZMc0nhOgvadg5VhEs9ojtbES80AcWeFnmGkbzIszvGSO63GKNiRkXtjJ9KFuRzytbbmsCqkUVH+Tywxg== + dependencies: + "@napi-rs/wasm-runtime" "1.0.7" + +"@rspack/binding-win32-arm64-msvc@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.7.12.tgz#77f648ee1cb717c50fdd02126a528b4960654116" + integrity sha512-8+h5fYDXYdmugbdfZ+D1y8IQ3rv2EhSfyGP7vBe+bjNyaMa4jWrpucmZbtxojUL1AzaeuHbvMdj9UO/gelk/+g== + +"@rspack/binding-win32-ia32-msvc@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.7.12.tgz#9f7cbb26a9c8d9a1cc15d2059de21172b1623c41" + integrity sha512-cDMGwTRSa2p9fNBVe1wTRkF2AEXZ9ARWW36QeC5CkLaI0Ezz8lvhF2+CSOPnhaQ1O1qtn0L0SF+lFnrY+I7xGQ== + +"@rspack/binding-win32-x64-msvc@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.7.12.tgz#b4c6dceaa63def4aa205d25246c1a5b05d7f36b0" + integrity sha512-wIqFvlgFqrgUyj/6S/FJcvShnkZOmIeXTfqvheLY67MGq8qd8jb1YimQVKAIrmWB3yuJKUFACI3Ag1UBtEedEA== + +"@rspack/binding@1.7.12": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/binding/-/binding-1.7.12.tgz#8c0b19795f980b0e513855245e689719352c08a4" + integrity sha512-f4HHuLbvuld8Ba4iB/4ibse5XrKxFrgmM3S4P2AOKnPlekAFlBjmltCuaTL/W2ggYvILaVY+YcFXrEH1rrKeQA== + optionalDependencies: + "@rspack/binding-darwin-arm64" "1.7.12" + "@rspack/binding-darwin-x64" "1.7.12" + "@rspack/binding-linux-arm64-gnu" "1.7.12" + "@rspack/binding-linux-arm64-musl" "1.7.12" + "@rspack/binding-linux-x64-gnu" "1.7.12" + "@rspack/binding-linux-x64-musl" "1.7.12" + "@rspack/binding-wasm32-wasi" "1.7.12" + "@rspack/binding-win32-arm64-msvc" "1.7.12" + "@rspack/binding-win32-ia32-msvc" "1.7.12" + "@rspack/binding-win32-x64-msvc" "1.7.12" + +"@rspack/core@^1.7.10": + version "1.7.12" + resolved "https://registry.yarnpkg.com/@rspack/core/-/core-1.7.12.tgz#e2a36bd16a10e10aee5905827064ac4b8a63b321" + integrity sha512-6CwFIHlhRmXfZoMj3v9MZ1SMTPBn+cHVXeMIeaGp5sufqinKsISbsqHu6ZMJu2wDSmZLdmQJX6zLxkhcAUlhkQ== + dependencies: + "@module-federation/runtime-tools" "0.22.0" + "@rspack/binding" "1.7.12" + "@rspack/lite-tapable" "1.1.0" + +"@rspack/lite-tapable@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@rspack/lite-tapable/-/lite-tapable-1.1.0.tgz#3cfdafeed01078e116bd4f191b684c8b484de425" + integrity sha512-E2B0JhYFmVAwdDiG14+DW0Di4Ze4Jg10Pc4/lILUrd5DRCaklduz2OvJ5HYQ6G+hd+WTzqQb3QnDNfK4yvAFYw== + +"@sideway/address@^4.1.5": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.5.tgz#4bc149a0076623ced99ca8208ba780d65a99b9d5" + integrity sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f" + integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + +"@sinclair/typebox@^0.27.8": + version "0.27.12" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.12.tgz#0cacd3cff047a32936b1ace47ea7c86eaab60a7f" + integrity sha512-hhyNJ+nbR6ZR7pToHvllEFun9TL0sbL+tk/ON75lo+Xas054uez98qRbsuNt7MBCyZKK4+8Yli/OAGZhmfBZ/g== + +"@sindresorhus/is@^4.6.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + +"@sindresorhus/is@^5.2.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668" + integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== + +"@slorber/remark-comment@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@slorber/remark-comment/-/remark-comment-1.0.0.tgz#2a020b3f4579c89dec0361673206c28d67e08f5a" + integrity sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.1.0" + micromark-util-symbol "^1.0.1" + +"@svgr/babel-plugin-add-jsx-attribute@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz#4001f5d5dd87fa13303e36ee106e3ff3a7eb8b22" + integrity sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g== + +"@svgr/babel-plugin-remove-jsx-attribute@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz#69177f7937233caca3a1afb051906698f2f59186" + integrity sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA== + +"@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz#c2c48104cfd7dcd557f373b70a56e9e3bdae1d44" + integrity sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA== + +"@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz#8fbb6b2e91fa26ac5d4aa25c6b6e4f20f9c0ae27" + integrity sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ== + +"@svgr/babel-plugin-svg-dynamic-title@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz#1d5ba1d281363fc0f2f29a60d6d936f9bbc657b0" + integrity sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og== + +"@svgr/babel-plugin-svg-em-dimensions@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz#35e08df300ea8b1d41cb8f62309c241b0369e501" + integrity sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g== + +"@svgr/babel-plugin-transform-react-native-svg@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz#90a8b63998b688b284f255c6a5248abd5b28d754" + integrity sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q== + +"@svgr/babel-plugin-transform-svg-component@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz#013b4bfca88779711f0ed2739f3f7efcefcf4f7e" + integrity sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw== + +"@svgr/babel-preset@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-8.1.0.tgz#0e87119aecdf1c424840b9d4565b7137cabf9ece" + integrity sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "8.0.0" + "@svgr/babel-plugin-remove-jsx-attribute" "8.0.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "8.0.0" + "@svgr/babel-plugin-replace-jsx-attribute-value" "8.0.0" + "@svgr/babel-plugin-svg-dynamic-title" "8.0.0" + "@svgr/babel-plugin-svg-em-dimensions" "8.0.0" + "@svgr/babel-plugin-transform-react-native-svg" "8.1.0" + "@svgr/babel-plugin-transform-svg-component" "8.0.0" + +"@svgr/core@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-8.1.0.tgz#41146f9b40b1a10beaf5cc4f361a16a3c1885e88" + integrity sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA== + dependencies: + "@babel/core" "^7.21.3" + "@svgr/babel-preset" "8.1.0" + camelcase "^6.2.0" + cosmiconfig "^8.1.3" + snake-case "^3.0.4" + +"@svgr/hast-util-to-babel-ast@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz#6952fd9ce0f470e1aded293b792a2705faf4ffd4" + integrity sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q== + dependencies: + "@babel/types" "^7.21.3" + entities "^4.4.0" + +"@svgr/plugin-jsx@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz#96969f04a24b58b174ee4cd974c60475acbd6928" + integrity sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA== + dependencies: + "@babel/core" "^7.21.3" + "@svgr/babel-preset" "8.1.0" + "@svgr/hast-util-to-babel-ast" "8.0.0" + svg-parser "^2.0.4" + +"@svgr/plugin-svgo@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz#b115b7b967b564f89ac58feae89b88c3decd0f00" + integrity sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA== + dependencies: + cosmiconfig "^8.1.3" + deepmerge "^4.3.1" + svgo "^3.0.2" + +"@svgr/webpack@^8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-8.1.0.tgz#16f1b5346f102f89fda6ec7338b96a701d8be0c2" + integrity sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA== + dependencies: + "@babel/core" "^7.21.3" + "@babel/plugin-transform-react-constant-elements" "^7.21.3" + "@babel/preset-env" "^7.20.2" + "@babel/preset-react" "^7.18.6" + "@babel/preset-typescript" "^7.21.0" + "@svgr/core" "8.1.0" + "@svgr/plugin-jsx" "8.1.0" + "@svgr/plugin-svgo" "8.1.0" + +"@swc/core-darwin-arm64@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.16.2.tgz#b180d8647923c75e5aabbf4ea6e543d113aa3c79" + integrity sha512-i/j0HNbnn79qnTVPicvay92Nark8fW8NQqn1e2mGERjUXNpBV0+SwQxlRpk2zBhn6laJ8PDI6Kn1nHZhnz3LCA== + +"@swc/core-darwin-x64@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.16.2.tgz#ae8286ddd5a6f1b0f1c540e3338682fed7ceb2ab" + integrity sha512-HrwqHyEyHVXO3qTk8EkNK7/b6sOZSEoNh+pot6RdE5x0LbNqfo8LtJUvi3UTXr+5ja/o5HbJdW80eCXo+NjbiA== + +"@swc/core-linux-arm-gnueabihf@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.16.2.tgz#9879d6eb91d3663dfcae557cde866642b21b7590" + integrity sha512-MdXi83Z/gGp1LIrg+h7HKxiul/z/Bty/ZJSvYAFqDl9zteC1XLSAZdScquKtXPp50rdyXqritTDCqQBhwVfZKA== + +"@swc/core-linux-arm64-gnu@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.16.2.tgz#9684df59917e4b0de8f528f04cf7f6e7526ca7b1" + integrity sha512-/jcTmK6Ktz3owM3YtiKvjofV6p3VpHnYzTIrOGwDIOsDigRAAVuZ8east33wYO/7UTdKYFlyHNnJNT0WJqOA3Q== + +"@swc/core-linux-arm64-musl@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.16.2.tgz#36b59ed1a46795755e6d083e6693753c5ea1e7d0" + integrity sha512-4gFarKaFnlJTSlJYKmMhV4u+3YE4uYfiydpBoYjmgQhCf9lAieOq+WilZaK9vVSHeqLuQpTEiGULZqAdsRX5Dw== + +"@swc/core-linux-ppc64-gnu@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.16.2.tgz#b0f648e760031e4674e0d07eb4991dfb468d21ee" + integrity sha512-syqSLGd6KlZ1PciNzs6bIUlhOuFztZufebOHaERjc4N4SqNZxyqYd4I+jj/EfOYnpe0kNjccn9HJLN1p5dz3+w== + +"@swc/core-linux-s390x-gnu@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.16.2.tgz#7757e4999f4e236a8bb05bd04367574ce926d4cc" + integrity sha512-ZBBLK+ewGyXLzWeMS7wbKtWBdnif6etn7xvPY/iOfbdsjX/+bgkp1pQt2lWF2wlu2hXYZuhJ/tHZE/QR8/apzg== + +"@swc/core-linux-x64-gnu@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.16.2.tgz#a25271e8199c46e54f1042c9d98fbf38fdb4736c" + integrity sha512-LyHJgxCA4Tje0ysBMbEb0tt/ie8kgUKoFE3JAKFhpevmTmhYEoC0H9s47WuDsqiFckF1ITUguZIXJG6K5e0dvg== + +"@swc/core-linux-x64-musl@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.16.2.tgz#afc4e5f5e519e4e2ca75a560496fbc6b5164718d" + integrity sha512-PghXJlVM1cgtLfNUR1vxFo1z+PDRAe8cWAJlZZ7spmeiN7BospGXg/MHUg7oNSgwSX7Zo//YKv9P5yD9apsFJQ== + +"@swc/core-win32-arm64-msvc@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.16.2.tgz#98b936a9cf2faad87c92c979161f17f22c55b742" + integrity sha512-StTOSefYBxemvNYYUI3UmO1a8y+hSPjjfHogC2TEHL+Z1PlEBim/XtLas5rS04jAzT9RrNmbtX911SZ42H9jSQ== + +"@swc/core-win32-ia32-msvc@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.16.2.tgz#2e30f6a8f78b0c79268e6d39f0ae3b378919449c" + integrity sha512-fycER209DYIzsibpTMC+chND05OfOjgztWL9U8OE6/uUlsOUZH3eh98isBLEnOymYUhlJLEt5++W1+KL/FOh5Q== + +"@swc/core-win32-x64-msvc@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.16.2.tgz#a25e080ed09770e68c1dc5a2a7e973a01dc40b2f" + integrity sha512-cSd1z6ivSrJPVr+moVwOHWjeKy6TpO4/Shwcv5KCrKYXCccxwh4pRy1C3fDioNx2PF1jPZWHKZjtXt+Be9VbaQ== + +"@swc/core@^1.15.40": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.16.2.tgz#6cc0c7f27938bea7208467a18ab518fa23b78367" + integrity sha512-95I4kiSMeveI/Mhi+tE4fiWcWLUMfzfKrk0jtr8LRMqHgOgq+xHS+zExkDqoO4b5OeeuXHMWVdD5MeP3X6sULw== + dependencies: + "@swc/counter" "^0.1.3" + "@swc/types" "^0.1.28" + optionalDependencies: + "@swc/core-darwin-arm64" "1.16.2" + "@swc/core-darwin-x64" "1.16.2" + "@swc/core-linux-arm-gnueabihf" "1.16.2" + "@swc/core-linux-arm64-gnu" "1.16.2" + "@swc/core-linux-arm64-musl" "1.16.2" + "@swc/core-linux-ppc64-gnu" "1.16.2" + "@swc/core-linux-s390x-gnu" "1.16.2" + "@swc/core-linux-x64-gnu" "1.16.2" + "@swc/core-linux-x64-musl" "1.16.2" + "@swc/core-win32-arm64-msvc" "1.16.2" + "@swc/core-win32-ia32-msvc" "1.16.2" + "@swc/core-win32-x64-msvc" "1.16.2" + +"@swc/counter@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" + integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== + +"@swc/html-darwin-arm64@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-darwin-arm64/-/html-darwin-arm64-1.16.2.tgz#dfe45d70266262a59aaaa0d93740b6161803f192" + integrity sha512-SNBUxkxLBXD0ATwnOG1rF8mpSrRtFDfqWnEUmbm/g4KwmCt7NuHHv9YYqA3lqfq90Ucc+Xlk7afx8KAW/utz4A== + +"@swc/html-darwin-x64@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-darwin-x64/-/html-darwin-x64-1.16.2.tgz#72066bda0d843c024dd5230aa013445d10037cde" + integrity sha512-WVBgn6yrBPMZu+DL95/XGAXYcgd1nhd67Ml1UjMtFoFMVKY+VRpCq8JpTZTMXhWbVoRENUHk+3PHu0nNjlE/Fg== + +"@swc/html-linux-arm-gnueabihf@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-linux-arm-gnueabihf/-/html-linux-arm-gnueabihf-1.16.2.tgz#efa7dd85b03b941ac173ae2870355f9721993905" + integrity sha512-V9F/Akd2TXrf5nUhdLgdy3FoVFxQbw8pA2AOyqnEOa2Mbm1R7DZJJ0GdShEMcoyMyMDB9r/4pWuWfxNtP4mFHA== + +"@swc/html-linux-arm64-gnu@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-linux-arm64-gnu/-/html-linux-arm64-gnu-1.16.2.tgz#4b6a02b42a40463e9ed9a96e0c42b7095b244f48" + integrity sha512-jonZVtHc6BesMjC/muUEJGzE1L2kVdgiPVuHc7CL79MrUm0Hjf8LS4Wmtjqe2bLTfRcaMfaYl/60ZcRXHCaYSQ== + +"@swc/html-linux-arm64-musl@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-linux-arm64-musl/-/html-linux-arm64-musl-1.16.2.tgz#0334e071cb8a01e0423fe7da27204b71f1afed66" + integrity sha512-dvki9/sgacHk9ouORmnIok5FbpeE9zUE8yqGGhL1kitNJi6/TKzfnMOpRxSxeDk1/ccvJTAdjRGDIGkT45+b3Q== + +"@swc/html-linux-ppc64-gnu@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-linux-ppc64-gnu/-/html-linux-ppc64-gnu-1.16.2.tgz#6c0d7293a1f7f7631e975c767755eb5236769193" + integrity sha512-6m0vVWHl9MW7cmWKVgKlFW6yhRv0uahMEaDxNIvXrPC3LdbbiiYZui+ryhyQGIYeVps3OMujzUjc0GihNz/afQ== + +"@swc/html-linux-s390x-gnu@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-linux-s390x-gnu/-/html-linux-s390x-gnu-1.16.2.tgz#853018d7b57377e2f3b23d369a1571862c34d2b9" + integrity sha512-TOlz6wgKyZjg4THJsNZfDz/rAMO+rBa0s2eewTeHEfuJhI+jGu7H6Co6bdbMpN3oyDvTMG7N1f1ktSbkE0erAg== + +"@swc/html-linux-x64-gnu@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-linux-x64-gnu/-/html-linux-x64-gnu-1.16.2.tgz#a347921e256f6ecb8847956bbacd4a23e1476adb" + integrity sha512-5EduoVpsnuAAkG9BW8COxcIKAe5swgNAEo+BVkAJCOy1ZMZm0krQYBdvlaDCsGGE9yLDKVPm7rpYIi7vTTZTbA== + +"@swc/html-linux-x64-musl@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-linux-x64-musl/-/html-linux-x64-musl-1.16.2.tgz#ebfbbdb05f2f991a34bc500dce0ca10bfbcdfc3b" + integrity sha512-c0Z84dvBd0oh1ZcBHnM18itmvJFLbCZBKFF2lEDHsGBSLQ/1sPbggEKsVO4KgWkkhwQV2l9AB4jnsw1HrwZJCg== + +"@swc/html-win32-arm64-msvc@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-win32-arm64-msvc/-/html-win32-arm64-msvc-1.16.2.tgz#69207d99cd80e55fe1ea722c8c8d5174b3d3cd2a" + integrity sha512-Aq7V2B5gS23X59DzV2z892c4NBHYtJbwhvsCjJN1MBMx723htjgNE9KVIJp9dQaJBr2PrNfb/u3QFwnWV2tAoQ== + +"@swc/html-win32-ia32-msvc@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-win32-ia32-msvc/-/html-win32-ia32-msvc-1.16.2.tgz#9473a17f22c65ec20059533bd8cc78b32c82a711" + integrity sha512-9gslPcsfXxKvAZtOvDkxGuEbM7lqBrONzLAyRsyUtw8KxFcSYkGIO48RDTstGWOkgTgKjjAq/WWqt9qr/NcE3A== + +"@swc/html-win32-x64-msvc@1.16.2": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html-win32-x64-msvc/-/html-win32-x64-msvc-1.16.2.tgz#7c7aeaa21b8848a765be2d4f7ee2ee3fecfd0f52" + integrity sha512-Kdb4VdC8FyF5s1MQaFUNeASLckHECrb/oYy/6OCtU+hbgxQ/o/JCgE4uCe8YAg0LCWSOjhx73PCZDGwPf1TpKw== + +"@swc/html@^1.15.40": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@swc/html/-/html-1.16.2.tgz#91ee34374e4c926c6c8a8f43561688192b8a1725" + integrity sha512-RmWH8m5dePWDFpHpmFKquZCRe5SyD/Sb0FBPxWcWv/tsjtlJl6oHeaxBsTL2edvaHuW385Fy5nPuTjDD/a+GEA== + dependencies: + "@swc/counter" "^0.1.3" + optionalDependencies: + "@swc/html-darwin-arm64" "1.16.2" + "@swc/html-darwin-x64" "1.16.2" + "@swc/html-linux-arm-gnueabihf" "1.16.2" + "@swc/html-linux-arm64-gnu" "1.16.2" + "@swc/html-linux-arm64-musl" "1.16.2" + "@swc/html-linux-ppc64-gnu" "1.16.2" + "@swc/html-linux-s390x-gnu" "1.16.2" + "@swc/html-linux-x64-gnu" "1.16.2" + "@swc/html-linux-x64-musl" "1.16.2" + "@swc/html-win32-arm64-msvc" "1.16.2" + "@swc/html-win32-ia32-msvc" "1.16.2" + "@swc/html-win32-x64-msvc" "1.16.2" + +"@swc/types@^0.1.28": + version "0.1.28" + resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.28.tgz#e3cd892383fba3b8904c40518bbe1265a50753f2" + integrity sha512-V6Mnml8v09QALx6K0elJ7o9K/MkVDtW3t6L+7Ou/JcWtb3xwId2AH4FeOceySd2JaO87IMw4+6vSZxLm34LPbw== + dependencies: + "@swc/counter" "^0.1.3" + +"@szmarczak/http-timer@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" + integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== + dependencies: + defer-to-connect "^2.0.1" + +"@tybys/wasm-util@^0.10.1": + version "0.10.4" + resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.4.tgz#3e85ecb266f9d1722250e89bc69528615720b154" + integrity sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A== + dependencies: + tslib "^2.4.0" + +"@types/body-parser@*": + version "1.19.6" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.6.tgz#1859bebb8fd7dac9918a45d54c1971ab8b5af474" + integrity sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/bonjour@^3.5.13": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" + integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== + dependencies: + "@types/node" "*" + +"@types/connect-history-api-fallback@^1.5.4": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" + integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== + dependencies: + "@types/node" "*" + +"@types/d3-array@*": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-3.2.2.tgz#e02151464d02d4a1b44646d0fcdb93faf88fde8c" + integrity sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw== + +"@types/d3-axis@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-axis/-/d3-axis-3.0.6.tgz#e760e5765b8188b1defa32bc8bb6062f81e4c795" + integrity sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-brush@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-brush/-/d3-brush-3.0.6.tgz#c2f4362b045d472e1b186cdbec329ba52bdaee6c" + integrity sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-chord@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-chord/-/d3-chord-3.0.6.tgz#1706ca40cf7ea59a0add8f4456efff8f8775793d" + integrity sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg== + +"@types/d3-color@*": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-3.1.3.tgz#368c961a18de721da8200e80bf3943fb53136af2" + integrity sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A== + +"@types/d3-contour@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-contour/-/d3-contour-3.0.6.tgz#9ada3fa9c4d00e3a5093fed0356c7ab929604231" + integrity sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg== + dependencies: + "@types/d3-array" "*" + "@types/geojson" "*" + +"@types/d3-delaunay@*": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz#185c1a80cc807fdda2a3fe960f7c11c4a27952e1" + integrity sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw== + +"@types/d3-dispatch@*": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz#ef004d8a128046cfce434d17182f834e44ef95b2" + integrity sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA== + +"@types/d3-drag@*": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-drag/-/d3-drag-3.0.7.tgz#b13aba8b2442b4068c9a9e6d1d82f8bcea77fc02" + integrity sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-dsv@*": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-dsv/-/d3-dsv-3.0.7.tgz#0a351f996dc99b37f4fa58b492c2d1c04e3dac17" + integrity sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g== + +"@types/d3-ease@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-ease/-/d3-ease-3.0.2.tgz#e28db1bfbfa617076f7770dd1d9a48eaa3b6c51b" + integrity sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA== + +"@types/d3-fetch@*": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-fetch/-/d3-fetch-3.0.7.tgz#c04a2b4f23181aa376f30af0283dbc7b3b569980" + integrity sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA== + dependencies: + "@types/d3-dsv" "*" + +"@types/d3-force@*": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@types/d3-force/-/d3-force-3.0.10.tgz#6dc8fc6e1f35704f3b057090beeeb7ac674bff1a" + integrity sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw== + +"@types/d3-format@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-3.0.4.tgz#b1e4465644ddb3fdf3a263febb240a6cd616de90" + integrity sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g== + +"@types/d3-geo@*": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/d3-geo/-/d3-geo-3.1.1.tgz#9e283af179601c549581600b3fec25941911329d" + integrity sha512-65Emv9fQiQQqphLlRkuQ5ypPsOmWPhtBGCMv61JDPEPMvsx+gzhGf74yw1a78xFKPj6zw4AgQICJoQv0vK9M2w== + dependencies: + "@types/geojson" "*" + +"@types/d3-hierarchy@*": + version "3.1.7" + resolved "https://registry.yarnpkg.com/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz#6023fb3b2d463229f2d680f9ac4b47466f71f17b" + integrity sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg== + +"@types/d3-interpolate@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz#412b90e84870285f2ff8a846c6eb60344f12a41c" + integrity sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA== + dependencies: + "@types/d3-color" "*" + +"@types/d3-path@*": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-3.1.1.tgz#f632b380c3aca1dba8e34aa049bcd6a4af23df8a" + integrity sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg== + +"@types/d3-polygon@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-polygon/-/d3-polygon-3.0.2.tgz#dfae54a6d35d19e76ac9565bcb32a8e54693189c" + integrity sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA== + +"@types/d3-quadtree@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz#d4740b0fe35b1c58b66e1488f4e7ed02952f570f" + integrity sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg== + +"@types/d3-random@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-random/-/d3-random-3.0.4.tgz#6bd3683b8332fc0f01e7059b7636bc5c7ede7337" + integrity sha512-UHYId5WTCx4L4YNel7NU00XUXXgvgpgZOvp10PuvsQENjMDXhh2RyFc0KBjO7B45ne4Ha1yVH7ii0vnzKkuzWA== + +"@types/d3-scale-chromatic@*": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#dc6d4f9a98376f18ea50bad6c39537f1b5463c39" + integrity sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ== + +"@types/d3-scale@*": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.9.tgz#57a2f707242e6fe1de81ad7bfcccaaf606179afb" + integrity sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw== + dependencies: + "@types/d3-time" "*" + +"@types/d3-selection@*": + version "3.0.12" + resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-3.0.12.tgz#bb207aec0b20bbe62466781c07e74212e9f5c0b1" + integrity sha512-Qe/KWYhEiIIxGs7HrAAjMfShxKldx19SJtr5zu53f3afPsdZNz7HHtdTLXo/kqeiWNXVycI24kSnfzBYkTzpgw== + +"@types/d3-shape@*": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.2.0.tgz#66ff342011dc243c6c20e6b899523d148aca412d" + integrity sha512-kVd74ta9eof3eJOvbNd1vGKS/XERRyQbT26Og63hIsvDO84cjD5gEOhsXf26w3FSoNlPVz84DOFcKv/oou+fMw== + dependencies: + "@types/d3-path" "*" + +"@types/d3-time-format@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-4.0.3.tgz#d6bc1e6b6a7db69cccfbbdd4c34b70632d9e9db2" + integrity sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg== + +"@types/d3-time@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.4.tgz#8472feecd639691450dd8000eb33edd444e1323f" + integrity sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g== + +"@types/d3-timer@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-3.0.2.tgz#70bbda77dc23aa727413e22e214afa3f0e852f70" + integrity sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw== + +"@types/d3-transition@*": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@types/d3-transition/-/d3-transition-3.0.9.tgz#1136bc57e9ddb3c390dccc9b5ff3b7d2b8d94706" + integrity sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-zoom@*": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@types/d3-zoom/-/d3-zoom-3.0.8.tgz#dccb32d1c56b1e1c6e0f1180d994896f038bc40b" + integrity sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw== + dependencies: + "@types/d3-interpolate" "*" + "@types/d3-selection" "*" + +"@types/d3@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@types/d3/-/d3-7.4.3.tgz#d4550a85d08f4978faf0a4c36b848c61eaac07e2" + integrity sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww== + dependencies: + "@types/d3-array" "*" + "@types/d3-axis" "*" + "@types/d3-brush" "*" + "@types/d3-chord" "*" + "@types/d3-color" "*" + "@types/d3-contour" "*" + "@types/d3-delaunay" "*" + "@types/d3-dispatch" "*" + "@types/d3-drag" "*" + "@types/d3-dsv" "*" + "@types/d3-ease" "*" + "@types/d3-fetch" "*" + "@types/d3-force" "*" + "@types/d3-format" "*" + "@types/d3-geo" "*" + "@types/d3-hierarchy" "*" + "@types/d3-interpolate" "*" + "@types/d3-path" "*" + "@types/d3-polygon" "*" + "@types/d3-quadtree" "*" + "@types/d3-random" "*" + "@types/d3-scale" "*" + "@types/d3-scale-chromatic" "*" + "@types/d3-selection" "*" + "@types/d3-shape" "*" + "@types/d3-time" "*" + "@types/d3-time-format" "*" + "@types/d3-timer" "*" + "@types/d3-transition" "*" + "@types/d3-zoom" "*" + +"@types/debug@^4.0.0": + version "4.1.13" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.13.tgz#22d1cc9d542d3593caea764f974306ab36286ee7" + integrity sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw== + dependencies: + "@types/ms" "*" + +"@types/estree-jsx@^1.0.0": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree-jsx/-/estree-jsx-1.0.5.tgz#858a88ea20f34fe65111f005a689fa1ebf70dc18" + integrity sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg== + dependencies: + "@types/estree" "*" + +"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.8": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.9.tgz#cf3f0e876d7bee15a93ab925b82bf570a3904a24" + integrity sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^5.0.0": + version "5.1.3" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.1.3.tgz#9d34c88c0c9ee62b9a6e4d9f8ab8d7e29688e6b4" + integrity sha512-dPfW8NFiOF4wOHc7+N/QSxlY9cfSsenewGbAz8C8U/MULPd/YZ27LvJUIlzaXie7e6Ove9YunJGgC9tbHD2cKw== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express-serve-static-core@^4.17.21", "@types/express-serve-static-core@^4.17.33": + version "4.19.9" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.9.tgz#b746a8bb6c389af7a31141397bb539f775b0ae84" + integrity sha512-QP2ESEe/ImWY0HDwNAnK9PvEffUyhLTnWkk7KXzHfyeWAnlrDe1fN77bXl6ia8KT3wPlmA7t9/VPRpnf4Ex9sg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express@*": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.6.tgz#2d724b2c990dcb8c8444063f3580a903f6d500cc" + integrity sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^5.0.0" + "@types/serve-static" "^2" + +"@types/express@^4.17.25": + version "4.17.25" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.25.tgz#070c8c73a6fee6936d65c195dbbfb7da5026649b" + integrity sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "^1" + +"@types/geojson@*": + version "7946.0.16" + resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.16.tgz#8ebe53d69efada7044454e3305c19017d97ced2a" + integrity sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg== + +"@types/hast@^3.0.0": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.5.tgz#48020de4c0e63492f4ca9db42068c108f68b7f8f" + integrity sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g== + dependencies: + "@types/unist" "*" + +"@types/history@^4.7.11": + version "4.7.11" + resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.11.tgz#56588b17ae8f50c53983a524fc3cc47437969d64" + integrity sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA== + +"@types/html-minifier-terser@^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" + integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== + +"@types/http-cache-semantics@^4.0.2": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz#f6a7788f438cbfde15f29acad46512b4c01913b3" + integrity sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q== + +"@types/http-errors@*": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.5.tgz#5b749ab2b16ba113423feb1a64a95dcd30398472" + integrity sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg== + +"@types/http-proxy@^1.17.8": + version "1.17.17" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.17.tgz#d9e2c4571fe3507343cb210cd41790375e59a533" + integrity sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/json-schema@^7.0.15", "@types/json-schema@^7.0.8": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/mdast@^4.0.0", "@types/mdast@^4.0.2": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.4.tgz#7ccf72edd2f1aa7dd3437e180c64373585804dd6" + integrity sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA== + dependencies: + "@types/unist" "*" + +"@types/mdx@^2.0.0": + version "2.0.14" + resolved "https://registry.yarnpkg.com/@types/mdx/-/mdx-2.0.14.tgz#c1e54113265b152021ab0afe0434e3cadd90bfe3" + integrity sha512-T48PeuJtvLosNTPVhfnIp3i/n3a4g4Bad7YCq5k64D4u7NwDrAotikQ+5+sjtUvBmxCMlbo3dVL+C2dP0rWHzg== + +"@types/mime@^1": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== + +"@types/ms@*": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78" + integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== + +"@types/node@*": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-26.6.2.tgz#11bfb8e00bafe728d2113e474a7637becc9ab279" + integrity sha512-X1P21scMv4zGKLYqjdGjaKa7COa0RKVYYZZN/NfvLQ1JegxFhdhpZG/Lyn8AXx6CDUavKAd11v6BvfpkDByK8g== + dependencies: + undici-types "~8.9.0" + +"@types/node@^17.0.5": + version "17.0.45" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190" + integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== + +"@types/parse-json@^4.0.0": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== + +"@types/prismjs@^1.26.0": + version "1.26.6" + resolved "https://registry.yarnpkg.com/@types/prismjs/-/prismjs-1.26.6.tgz#6ea27c126d645319ae4f7055eda63a9e835c0187" + integrity sha512-vqlvI7qlMvcCBbVe0AKAb4f97//Hy0EBTaiW8AalRnG/xAN5zOiWWyrNqNXeq8+KAuvRewjCVY1+IPxk4RdNYw== + +"@types/prop-types@^15.7.15": + version "15.7.15" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.15.tgz#e6e5a86d602beaca71ce5163fadf5f95d70931c7" + integrity sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw== + +"@types/qs@*": + version "6.15.1" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.15.1.tgz#8606884272c63f0db96986bd3548650d8a9388bf" + integrity sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw== + +"@types/range-parser@*": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== + +"@types/react-router-config@*", "@types/react-router-config@^5.0.7": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@types/react-router-config/-/react-router-config-5.0.11.tgz#2761a23acc7905a66a94419ee40294a65aaa483a" + integrity sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router" "^5.1.0" + +"@types/react-router-dom@*": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz#e9d6b4a66fcdbd651a5f106c2656a30088cc1e83" + integrity sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router" "*" + +"@types/react-router@*", "@types/react-router@^5.1.0": + version "5.1.20" + resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.20.tgz#88eccaa122a82405ef3efbcaaa5dcdd9f021387c" + integrity sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + +"@types/react-transition-group@^4.4.12": + version "4.4.12" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.12.tgz#b5d76568485b02a307238270bfe96cb51ee2a044" + integrity sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w== + +"@types/react@*": + version "19.3.0" + resolved "https://registry.yarnpkg.com/@types/react/-/react-19.3.0.tgz#3b3ce8d8c1627fb5ccd4dadd57ef445c5a153b77" + integrity sha512-N0rFCuH9YoxG9/m61l9MfpJKfmLOVU0em7ipIz6TRgSSkvReLB9vL85GB+yr8Bs5leqpvg96JSwF4ZS1s4viQg== + dependencies: + csstype "^3.2.2" + +"@types/retry@0.12.2": + version "0.12.2" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.2.tgz#ed279a64fa438bb69f2480eda44937912bb7480a" + integrity sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow== + +"@types/sax@^1.2.1": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/sax/-/sax-1.2.7.tgz#ba5fe7df9aa9c89b6dff7688a19023dd2963091d" + integrity sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A== + dependencies: + "@types/node" "*" + +"@types/send@*": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@types/send/-/send-1.2.1.tgz#6a784e45543c18c774c049bff6d3dbaf045c9c74" + integrity sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ== + dependencies: + "@types/node" "*" + +"@types/send@<1": + version "0.17.6" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.6.tgz#aeb5385be62ff58a52cd5459daa509ae91651d25" + integrity sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-index@^1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" + integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== + dependencies: + "@types/express" "*" + +"@types/serve-static@^1", "@types/serve-static@^1.15.5": + version "1.15.10" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.10.tgz#768169145a778f8f5dfcb6360aead414a3994fee" + integrity sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + "@types/send" "<1" + +"@types/serve-static@^2": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-2.2.0.tgz#d4a447503ead0d1671132d1ab6bd58b805d8de6a" + integrity sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + +"@types/sockjs@^0.3.36": + version "0.3.36" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" + integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== + dependencies: + "@types/node" "*" + +"@types/trusted-types@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" + integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== + +"@types/unist@*", "@types/unist@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" + integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== + +"@types/unist@^2.0.0": + version "2.0.11" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.11.tgz#11af57b127e32487774841f7a4e54eab166d03c4" + integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== + +"@types/ws@^8.5.10": + version "8.18.1" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" + integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== + dependencies: + "@types/node" "*" + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^17.0.8": + version "17.0.35" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.35.tgz#07013e46aa4d7d7d50a49e15604c1c5340d4eb24" + integrity sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg== + dependencies: + "@types/yargs-parser" "*" + +"@ungap/structured-clone@^1.0.0", "@ungap/structured-clone@^1.3.1": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.4.0.tgz#5e2e1374c0a30b5a42e8b083523a225c6945f88a" + integrity sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ== + +"@upsetjs/venn.js@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@upsetjs/venn.js/-/venn.js-2.0.0.tgz#3be192038cdda927aa4f8b22ab51af82abf47f34" + integrity sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw== + optionalDependencies: + d3-selection "^3.0.0" + d3-transition "^3.0.1" + +"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" + integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== + dependencies: + "@webassemblyjs/helper-numbers" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + +"@webassemblyjs/floating-point-hex-parser@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz#fcca1eeddb1cc4e7b6eed4fc7956d6813b21b9fb" + integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== + +"@webassemblyjs/helper-api-error@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz#e0a16152248bc38daee76dd7e21f15c5ef3ab1e7" + integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== + +"@webassemblyjs/helper-buffer@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz#822a9bc603166531f7d5df84e67b5bf99b72b96b" + integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== + +"@webassemblyjs/helper-numbers@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz#dbd932548e7119f4b8a7877fd5a8d20e63490b2d" + integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.13.2" + "@webassemblyjs/helper-api-error" "1.13.2" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz#e556108758f448aae84c850e593ce18a0eb31e0b" + integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== + +"@webassemblyjs/helper-wasm-section@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz#9629dda9c4430eab54b591053d6dc6f3ba050348" + integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/wasm-gen" "1.14.1" + +"@webassemblyjs/ieee754@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz#1c5eaace1d606ada2c7fd7045ea9356c59ee0dba" + integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz#57c5c3deb0105d02ce25fa3fd74f4ebc9fd0bbb0" + integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1" + integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== + +"@webassemblyjs/wasm-edit@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597" + integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/helper-wasm-section" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-opt" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + "@webassemblyjs/wast-printer" "1.14.1" + +"@webassemblyjs/wasm-gen@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz#991e7f0c090cb0bb62bbac882076e3d219da9570" + integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wasm-opt@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz#e6f71ed7ccae46781c206017d3c14c50efa8106b" + integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + +"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb" + integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-api-error" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wast-printer@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz#3bb3e9638a8ae5fdaf9610e7a06b4d9f9aa6fe07" + integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-jsx@^5.0.0: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^8.0.0: + version "8.3.5" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.5.tgz#8a6b8ca8fc5b34685af15dabb44118663c296496" + integrity sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw== + dependencies: + acorn "^8.11.0" + +acorn@^8.0.0, acorn@^8.0.4, acorn@^8.11.0, acorn@^8.15.0: + version "8.18.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.18.0.tgz#4faf01b2d6d326bfeed97aea1f52220b5f4c1940" + integrity sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ== + +address@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/address/-/address-2.0.3.tgz#e910900615db3d8a20c040d4c710631062fc4ba8" + integrity sha512-XNAb/a6TCqou+TufU8/u11HCu9x1gYvOoxLwtlXgIqmkrYQADVv6ljyW2zwiPhHz9R1gItAWpuDrdJMmrOBFEA== + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-formats@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-3.0.1.tgz#3d5dc762bca17679c3c2ea7e90ad6b7532309578" + integrity sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.12.5: + version "6.15.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.15.0.tgz#07e982c74626167aa7a2495c53817892d7139492" + integrity sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.0, ajv@^8.20.0: + version "8.20.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.20.0.tgz#304b3636add88ba7d936760dd50ece006dea95f9" + integrity sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +algoliasearch-helper@^3.26.0: + version "3.29.3" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.29.3.tgz#dc21f119320acbdd5890a21021846b5730d11e03" + integrity sha512-gVOMbbPVrCO3Xs+B+BLAIGFqIQow6qHMTYCEeBqLQB9m4ZmKUqMwkEumlal2iyyezHEd4Y0FvFTLbCRutCutIQ== + dependencies: + "@algolia/events" "^4.0.1" + +algoliasearch@^5.37.0: + version "5.59.0" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-5.59.0.tgz#c4d592b6d99fd0fa9929eaf40077b75824f45a68" + integrity sha512-wUXzaeI7B526W4y1gFg3lcxgDZ67XSgRJIiellYWOas/pLpO7rOtxm9Gr2E/C8aiSDXIgx1q5TdSsvK67Uakqw== + dependencies: + "@algolia/abtesting" "1.25.0" + "@algolia/client-abtesting" "5.59.0" + "@algolia/client-analytics" "5.59.0" + "@algolia/client-common" "5.59.0" + "@algolia/client-insights" "5.59.0" + "@algolia/client-personalization" "5.59.0" + "@algolia/client-query-suggestions" "5.59.0" + "@algolia/client-search" "5.59.0" + "@algolia/ingestion" "1.59.0" + "@algolia/monitoring" "1.59.0" + "@algolia/recommend" "5.59.0" + "@algolia/requester-browser-xhr" "5.59.0" + "@algolia/requester-fetch" "5.59.0" + "@algolia/requester-node-http" "5.59.0" + +ansi-align@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== + dependencies: + string-width "^4.1.0" + +ansi-html-community@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.2.2: + version "6.3.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.3.0.tgz#247c8e7b70a1a43b10ce14c0226fcbf58e8815d5" + integrity sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ== + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^6.1.0: + version "6.2.3" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" + integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== + +ansis@^3.2.0: + version "3.17.0" + resolved "https://registry.yarnpkg.com/ansis/-/ansis-3.17.0.tgz#fa8d9c2a93fe7d1177e0c17f9eeb562a58a832d7" + integrity sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +asn1js@^3.0.10, asn1js@^3.0.6: + version "3.0.10" + resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.10.tgz#df26c874c8a8b41ca605efea47b2ad07551013dd" + integrity sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg== + dependencies: + pvtsutils "^1.3.6" + pvutils "^1.1.5" + tslib "^2.8.1" + +astring@^1.8.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/astring/-/astring-1.9.0.tgz#cc73e6062a7eb03e7d19c22d8b0b3451fd9bfeef" + integrity sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg== + +autoprefixer@^10.4.19, autoprefixer@^10.4.23: + version "10.6.1" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.6.1.tgz#437cea1a0b96cedc4065c05327b728b1594faf27" + integrity sha512-cL1Qz6ADZhcEbny/8HPfe99J6HhNoYtpX2LFLIbhgGE7Q1hlQVkYFdetDN7Id3KiQxhDrHwzlHr/YQCnZ8+xSA== + dependencies: + browserslist "^4.28.9" + caniuse-lite "^1.0.30001810" + fraction.js "^5.3.4" + picocolors "^1.1.1" + postcss-value-parser "^4.2.0" + +b4a@^1.6.4, b4a@^1.8.1: + version "1.9.0" + resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.9.0.tgz#6336313b6e76b299c397afa68676ec6ebc788845" + integrity sha512-dpfcF9fDNR6++cthXR67iyhgqWy9CBouAvIWhIntzBG6cvK/cnIPiZQjBwi/ZqjjBEDGfoNDtmB0kTjroOJ3pQ== + +babel-loader@^9.2.1: + version "9.2.1" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.2.1.tgz#04c7835db16c246dd19ba0914418f3937797587b" + integrity sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA== + dependencies: + find-cache-dir "^4.0.0" + schema-utils "^4.0.0" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-macros@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== + dependencies: + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" + +babel-plugin-polyfill-corejs2@^0.4.14, babel-plugin-polyfill-corejs2@^0.4.15: + version "0.4.17" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz#198f970f1c99a856b466d1187e88ce30bd199d91" + integrity sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w== + dependencies: + "@babel/compat-data" "^7.28.6" + "@babel/helper-define-polyfill-provider" "^0.6.8" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz#bb7f6aeef7addff17f7602a08a6d19a128c30164" + integrity sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.5" + core-js-compat "^3.43.0" + +babel-plugin-polyfill-corejs3@^0.14.0: + version "0.14.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz#6ac08d2f312affb70c4c69c0fbba4cb417ee5587" + integrity sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.8" + core-js-compat "^3.48.0" + +babel-plugin-polyfill-regenerator@^0.6.5, babel-plugin-polyfill-regenerator@^0.6.6: + version "0.6.8" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz#8a6bfd5dd54239362b3d06ce47ac52b2d95d7721" + integrity sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.8" + +bail@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +balanced-match@^4.0.2: + version "4.0.4" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-4.0.4.tgz#bfb10662feed8196a2c62e7c68e17720c274179a" + integrity sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA== + +bare-events@^2.5.4, bare-events@^2.7.0: + version "2.9.2" + resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.9.2.tgz#01d377b64c3c7167b28b52da7add3221aecf2d7f" + integrity sha512-AIPKioV7/Y/8KfZ3AAhjPJxLLbY49S64Ym5DakZlUg75qQiTgUq9hEJoEwa4eUezPUlXRy/i5NpsKvo9jgKmoA== + +bare-fs@^4.0.1, bare-fs@^4.5.5: + version "4.8.1" + resolved "https://registry.yarnpkg.com/bare-fs/-/bare-fs-4.8.1.tgz#1a946560b45844dc37120c00330eae7c8a1c44cf" + integrity sha512-N1nnXdHZAOSstz0XiHikGS4HGMH4CnSwhqWdGQQMqqdvp4Jybm9sE3R1WVnpWVd4SFkc8ryPDBLViNLwiEqECg== + dependencies: + bare-events "^2.5.4" + bare-path "^3.0.0" + bare-stream "^2.6.4" + bare-url "^2.2.2" + fast-fifo "^1.3.2" + +bare-path@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bare-path/-/bare-path-3.1.2.tgz#67261bc74a9ba0105ba139b8638f218c09e8d82e" + integrity sha512-ZyKbsuuqK6Ag0K8pX6V5Txq6XeJRvY+wXucnFGRjiyVYP9YWDpIQugk/b+enRYrEYBJaqLzghRQpXPMR7341Nw== + +bare-stream@^2.6.4: + version "2.13.4" + resolved "https://registry.yarnpkg.com/bare-stream/-/bare-stream-2.13.4.tgz#61d448a268d1efd992103aae6bd729332f278ac0" + integrity sha512-PcrQ8lVLbiJscNm1Kez+Yp4Gy4AHGcN1lzwjvf5NybWen7VvEgUfyfnXYJ2zNqWnzOfCb1Abq6lH8ti0syQszA== + dependencies: + b4a "^1.8.1" + streamx "^2.25.0" + teex "^1.0.1" + +bare-url@^2.2.2: + version "2.5.4" + resolved "https://registry.yarnpkg.com/bare-url/-/bare-url-2.5.4.tgz#10ab50f39b50335e2aa7672d5941043dbfc7749e" + integrity sha512-Gxa7UVWBr0/edU1b+TJhn/AZvMQUj9OGspvYsaTYQrAbZA4BOTZGL3LiZxvD+CeMlDH4juwD84+eTAp/bLYW5g== + dependencies: + bare-path "^3.0.0" + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +baseline-browser-mapping@^2.11.25: + version "2.11.26" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.11.26.tgz#01bf6774efb3fbb9de20afc6b923ab85c7d230a6" + integrity sha512-GLQdD3y6UF8iVuMJl5fHgE4jdn/ua7n+toKfLgNlg3BqQtOZjpy68T8Tup8/wGWZCDlm7KMg7tPb4MPn7oN0TQ== + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +body-parser@~1.20.5: + version "1.20.8" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.8.tgz#328d51ce46cb19c983f3d9661016df2765283a37" + integrity sha512-JNcyFQ64OiijEkPzUBTCe+hyPXUD/3LEldGQ6iF5LR1w00mx9o7xtDWHXBY2iItjdCFGoilOLNQbH943ut7pHA== + dependencies: + bytes "~3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "~1.2.0" + http-errors "~2.0.1" + iconv-lite "~0.4.24" + on-finished "~2.4.1" + qs "~6.16.0" + raw-body "~2.5.3" + type-is "~1.6.18" + unpipe "~1.0.0" + +bonjour-service@^1.2.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.4.4.tgz#8ff5b85fa0641e0996bf40bcf61fc0c6727b66d3" + integrity sha512-jCZcVv7eoc4QesRscwEZtSROBen+6LpKAmBIsQYQrsAeVHLyMXWX/t6eIV5KiRZYNUBl8eVqImEEMQ8L5+c/Kw== + dependencies: + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.5" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +boxen@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-6.2.1.tgz#b098a2278b2cd2845deef2dff2efc38d329b434d" + integrity sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw== + dependencies: + ansi-align "^3.0.1" + camelcase "^6.2.0" + chalk "^4.1.2" + cli-boxes "^3.0.0" + string-width "^5.0.1" + type-fest "^2.5.0" + widest-line "^4.0.1" + wrap-ansi "^8.0.1" + +boxen@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-7.1.1.tgz#f9ba525413c2fec9cdb88987d835c4f7cad9c8f4" + integrity sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog== + dependencies: + ansi-align "^3.0.1" + camelcase "^7.0.1" + chalk "^5.2.0" + cli-boxes "^3.0.0" + string-width "^5.1.2" + type-fest "^2.13.0" + widest-line "^4.0.1" + wrap-ansi "^8.1.0" + +brace-expansion@^1.1.7: + version "1.1.21" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.21.tgz#edf4fab5c64d051aea5a8def49aba1c7522279f3" + integrity sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^5.0.8: + version "5.0.12" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.12.tgz#995fbb4750a77c4d16a7dc942ff2ca6ef8e675ec" + integrity sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ== + dependencies: + balanced-match "^4.0.2" + +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +browserslist@^4.0.0, browserslist@^4.23.0, browserslist@^4.24.0, browserslist@^4.24.2, browserslist@^4.28.1, browserslist@^4.28.7, browserslist@^4.28.9: + version "4.29.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.29.1.tgz#f723071987a4f094177d94e01f6dc6e7493b972c" + integrity sha512-AUdjuRyCNGUYtqpqfTmWyM4fXay8yIQhmLnvYe/THMGfT9B/34X7xQd3ifKxwyNPPpowVBjLb+64BN9Rn1mizw== + dependencies: + baseline-browser-mapping "^2.11.25" + caniuse-lite "^1.0.30001810" + electron-to-chromium "^1.5.438" + node-releases "^2.0.57" + update-browserslist-db "^1.3.3" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +bundle-name@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-4.1.0.tgz#f3b96b34160d6431a19d7688135af7cfb8797889" + integrity sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== + dependencies: + run-applescript "^7.0.0" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + +bytes@3.1.2, bytes@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +bytestreamjs@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/bytestreamjs/-/bytestreamjs-2.0.1.tgz#a32947c7ce389a6fa11a09a9a563d0a45889535e" + integrity sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ== + +cacheable-lookup@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" + integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== + +cacheable-request@^10.2.8: + version "10.2.14" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.14.tgz#eb915b665fda41b79652782df3f553449c406b9d" + integrity sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ== + dependencies: + "@types/http-cache-semantics" "^4.0.2" + get-stream "^6.0.1" + http-cache-semantics "^4.1.1" + keyv "^4.5.3" + mimic-response "^4.0.0" + normalize-url "^8.0.0" + responselike "^3.0.0" + +call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + +call-bind@^1.0.8: + version "1.0.9" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.9.tgz#39a644700c80bc7d0ca9102fc6d1d43b2fd7eee7" + integrity sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + get-intrinsic "^1.3.0" + set-function-length "^1.2.2" + +call-bound@^1.0.2, call-bound@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== + dependencies: + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +camelcase@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" + integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001810: + version "1.0.30001812" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001812.tgz#55b32ed819d120b384149a4f9fd59d179ce008f9" + integrity sha512-qN+QNNBr93TCmFrmte0bBCjSDMuRvt78VlHT99qIGPszm4QsqCX8lnyWUFkHi8B7ZBAPq8SH+UqyXNy/odMdng== + +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + +chalk@^4.0.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^5.0.1, chalk@^5.2.0: + version "5.6.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" + integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +character-entities-html4@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" + integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== + +character-entities-legacy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" + integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== + +character-entities@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== + +character-reference-invalid@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9" + integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== + +cheerio-select@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" + integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== + dependencies: + boolbase "^1.0.0" + css-select "^5.1.0" + css-what "^6.1.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + +cheerio@1.0.0-rc.12: + version "1.0.0-rc.12" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" + integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== + dependencies: + cheerio-select "^2.1.0" + dom-serializer "^2.0.0" + domhandler "^5.0.3" + domutils "^3.0.1" + htmlparser2 "^8.0.1" + parse5 "^7.0.0" + parse5-htmlparser2-tree-adapter "^7.0.0" + +chevrotain@~11.1.2: + version "11.1.2" + resolved "https://registry.yarnpkg.com/chevrotain/-/chevrotain-11.1.2.tgz#1db446bdeb63fe42d366508a34280c2e3c0c4f62" + integrity sha512-opLQzEVriiH1uUQ4Kctsd49bRoFDXGGSC4GUqj7pGyxM3RehRhvTlZJc1FL/Flew2p5uwxa1tUDWKzI4wNM8pg== + dependencies: + "@chevrotain/cst-dts-gen" "11.1.2" + "@chevrotain/gast" "11.1.2" + "@chevrotain/regexp-to-ast" "11.1.2" + "@chevrotain/types" "11.1.2" + "@chevrotain/utils" "11.1.2" + lodash-es "4.17.23" + +chokidar@^3.5.3, chokidar@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chrome-trace-event@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" + integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +clean-css@^5.2.2, clean-css@^5.3.3, clean-css@~5.3.2: + version "5.3.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd" + integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-boxes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" + integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== + +cli-table3@^0.6.3: + version "0.6.5" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.5.tgz#013b91351762739c16a9567c21a04632e449bf2f" + integrity sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ== + dependencies: + string-width "^4.2.0" + optionalDependencies: + "@colors/colors" "1.5.0" + +clipboard@^2.0.11: + version "2.0.11" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.11.tgz#62180360b97dd668b6b3a84ec226975762a70be5" + integrity sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw== + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clsx@^2.0.0, clsx@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" + integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== + +collapse-white-space@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-2.1.0.tgz#640257174f9f42c740b40f3b55ee752924feefca" + integrity sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw== + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" + integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== + dependencies: + color-convert "^2.0.1" + color-string "^1.9.0" + +colord@^2.9.3: + version "2.10.0" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.10.0.tgz#56c9050e6b06b4b6c62ddec366a48d65ef57e860" + integrity sha512-AidJptpBJmjTclAp9BkLwJi0T93fo5epJnbaZslpg6QVzpHjAiveF55mE9AcUJiGMqRHgMDY8soMsQtuNYMHfw== + +colorette@^2.0.10: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +combine-promises@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/combine-promises/-/combine-promises-1.2.0.tgz#5f2e68451862acf85761ded4d9e2af7769c2ca6a" + integrity sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ== + +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== + +commander@7, commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +common-path-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" + integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== + +compressible@~2.0.18: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.8.2.tgz#781397127ae2da00c0c5f7c76bda5b2a9b32a49f" + integrity sha512-o8vI5RE5A6EVVOd9o41jKp41aJom+QTEO/Bx8MYNjexMo/Bv2WOjUfZr+aL0WnYSgymUy6zeguqLTsIhV0gMvQ== + dependencies: + bytes "3.1.2" + compressible "~2.0.18" + debug "2.6.9" + destroy "1.2.0" + negotiator "~0.6.4" + on-headers "~1.1.0" + safe-buffer "5.2.1" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +config-chain@^1.1.11: + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-6.0.0.tgz#49eca2ebc80983f77e09394a1a56e0aca8235566" + integrity sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA== + dependencies: + dot-prop "^6.0.1" + graceful-fs "^4.2.6" + unique-string "^3.0.0" + write-file-atomic "^3.0.3" + xdg-basedir "^5.0.1" + +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== + +consola@^3.2.3: + version "3.4.2" + resolved "https://registry.yarnpkg.com/consola/-/consola-3.4.2.tgz#5af110145397bb67afdab77013fdc34cae590ea7" + integrity sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA== + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + integrity sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA== + +content-disposition@~0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@^1.5.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie-signature@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.7.tgz#ab5dd7ab757c54e60f37ef6550f481c426d10454" + integrity sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA== + +cookie@~0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7" + integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== + +copy-text-to-clipboard@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.2.tgz#99bc79db3f2d355ec33a08d573aff6804491ddb9" + integrity sha512-T6SqyLd1iLuqPA90J5N4cTalrtovCySh58iiZDGJ6FGznbclKh4UI+FGacQSgFzwKG77W7XT5gwbVEbd9cIH1A== + +copy-webpack-plugin@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz#96d4dbdb5f73d02dd72d0528d1958721ab72e04a" + integrity sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ== + dependencies: + fast-glob "^3.2.11" + glob-parent "^6.0.1" + globby "^13.1.1" + normalize-path "^3.0.0" + schema-utils "^4.0.0" + serialize-javascript "^6.0.0" + +core-js-compat@^3.43.0, core-js-compat@^3.48.0: + version "3.50.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.50.0.tgz#d5922c2a692ab1cba6078c920e7c5567421ae08e" + integrity sha512-XGpFGbMLHwSt74YLTKho7Ib242qi6O8MSX+sRokV4oz7iKXvQWGYZthjIhjRGMxjzVkAubBO512dKGYcefmX3Q== + dependencies: + browserslist "^4.28.7" + +core-js@^3.31.1: + version "3.50.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.50.0.tgz#a18646fcb0097650189b4504c803e887bcae4c0a" + integrity sha512-BRWgOLKkFeCgRudR6zrs8p9XJZcE14grzKMMssoYrk6krtuEZ7MTKPIY5RzOnqsEKIR9kst7wNzphttraT+Yqw== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cose-base@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-1.0.3.tgz#650334b41b869578a543358b80cda7e0abe0a60a" + integrity sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg== + dependencies: + layout-base "^1.0.0" + +cose-base@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-2.2.0.tgz#1c395c35b6e10bb83f9769ca8b817d614add5c01" + integrity sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g== + dependencies: + layout-base "^2.0.0" + +cosmiconfig@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +cosmiconfig@^8.1.3, cosmiconfig@^8.3.5: + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== + dependencies: + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + path-type "^4.0.0" + +cross-spawn@^7.0.3: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-random-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" + integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== + dependencies: + type-fest "^1.0.1" + +css-blank-pseudo@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz#32020bff20a209a53ad71b8675852b49e8d57e46" + integrity sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag== + dependencies: + postcss-selector-parser "^7.0.0" + +css-declaration-sorter@^7.2.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.4.0.tgz#9c215fbda2dcf4083bae69f125688158ae847deb" + integrity sha512-LTuzjPoyA2vMGKKcaOqKSp7Ub2eGrNfKiZH4LpezxpNrsICGCSFvsQOI29psISxNZtaXibkC2CXzrQ5enMeGGw== + +css-has-pseudo@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-7.0.3.tgz#a5ee2daf5f70a2032f3cefdf1e36e7f52a243873" + integrity sha512-oG+vKuGyqe/xvEMoxAQrhi7uY16deJR3i7wwhBerVrGQKSqUC5GiOVxTpM9F9B9hw0J+eKeOWLH7E9gZ1Dr5rA== + dependencies: + "@csstools/selector-specificity" "^5.0.0" + postcss-selector-parser "^7.0.0" + postcss-value-parser "^4.2.0" + +css-loader@^6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.11.0.tgz#33bae3bf6363d0a7c2cf9031c96c744ff54d85ba" + integrity sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g== + dependencies: + icss-utils "^5.1.0" + postcss "^8.4.33" + postcss-modules-extract-imports "^3.1.0" + postcss-modules-local-by-default "^4.0.5" + postcss-modules-scope "^3.2.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.2.0" + semver "^7.5.4" + +css-minimizer-webpack-plugin@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz#33effe662edb1a0bf08ad633c32fa75d0f7ec565" + integrity sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.18" + cssnano "^6.0.1" + jest-worker "^29.4.3" + postcss "^8.4.24" + schema-utils "^4.0.1" + serialize-javascript "^6.0.1" + +css-prefers-color-scheme@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz#ba001b99b8105b8896ca26fc38309ddb2278bd3c" + integrity sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ== + +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-select@^5.1.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.2.2.tgz#01b6e8d163637bb2dd6c982ca4ed65863682786e" + integrity sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.0.1, css-what@^6.1.0: + version "6.2.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.2.2.tgz#cdcc8f9b6977719fdfbd1de7aec24abf756b9dea" + integrity sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA== + +cssdb@^8.6.0: + version "8.11.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-8.11.0.tgz#e03c9cdc9c5e99d8cddf64a917bfc427b20c143a" + integrity sha512-VzY/8kcK5M8oCVr/cwh24J8XVlCOITpmzCizKBC28o7Z1s23MMojXoJ3q7a+TQQoMKvxC3YlG0Z9yU10kJF1uQ== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-advanced@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz#82b090872b8f98c471f681d541c735acf8b94d3f" + integrity sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ== + dependencies: + autoprefixer "^10.4.19" + browserslist "^4.23.0" + cssnano-preset-default "^6.1.2" + postcss-discard-unused "^6.0.5" + postcss-merge-idents "^6.0.3" + postcss-reduce-idents "^6.0.3" + postcss-zindex "^6.0.2" + +cssnano-preset-default@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz#adf4b89b975aa775f2750c89dbaf199bbd9da35e" + integrity sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg== + dependencies: + browserslist "^4.23.0" + css-declaration-sorter "^7.2.0" + cssnano-utils "^4.0.2" + postcss-calc "^9.0.1" + postcss-colormin "^6.1.0" + postcss-convert-values "^6.1.0" + postcss-discard-comments "^6.0.2" + postcss-discard-duplicates "^6.0.3" + postcss-discard-empty "^6.0.3" + postcss-discard-overridden "^6.0.2" + postcss-merge-longhand "^6.0.5" + postcss-merge-rules "^6.1.1" + postcss-minify-font-values "^6.1.0" + postcss-minify-gradients "^6.0.3" + postcss-minify-params "^6.1.0" + postcss-minify-selectors "^6.0.4" + postcss-normalize-charset "^6.0.2" + postcss-normalize-display-values "^6.0.2" + postcss-normalize-positions "^6.0.2" + postcss-normalize-repeat-style "^6.0.2" + postcss-normalize-string "^6.0.2" + postcss-normalize-timing-functions "^6.0.2" + postcss-normalize-unicode "^6.1.0" + postcss-normalize-url "^6.0.2" + postcss-normalize-whitespace "^6.0.2" + postcss-ordered-values "^6.0.2" + postcss-reduce-initial "^6.1.0" + postcss-reduce-transforms "^6.0.2" + postcss-svgo "^6.0.3" + postcss-unique-selectors "^6.0.4" + +cssnano-utils@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-4.0.2.tgz#56f61c126cd0f11f2eef1596239d730d9fceff3c" + integrity sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ== + +cssnano@^6.0.1, cssnano@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.1.2.tgz#4bd19e505bd37ee7cf0dc902d3d869f6d79c66b8" + integrity sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA== + dependencies: + cssnano-preset-default "^6.1.2" + lilconfig "^3.1.1" + +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" + +csstype@^3.0.2, csstype@^3.2.2, csstype@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a" + integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== + +cytoscape-cose-bilkent@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz#762fa121df9930ffeb51a495d87917c570ac209b" + integrity sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ== + dependencies: + cose-base "^1.0.0" + +cytoscape-fcose@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz#e4d6f6490df4fab58ae9cea9e5c3ab8d7472f471" + integrity sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ== + dependencies: + cose-base "^2.2.0" + +cytoscape@^3.34.0: + version "3.34.3" + resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.34.3.tgz#1503996ba0b59b901d86310a1f612e92dc464f51" + integrity sha512-yfYGhRcGAntq6YBD583j4n0Eg3jIxvWmZtz/5uz9UYkeIStSlMxuUja+ec5j3iBD8nv1rwaOAYMW09tBdkSeaQ== + +"d3-array@1 - 2": + version "2.12.1" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81" + integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== + dependencies: + internmap "^1.0.0" + +"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" + integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== + dependencies: + internmap "1 - 2" + +d3-axis@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" + integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== + +d3-brush@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" + integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "3" + d3-transition "3" + +d3-chord@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966" + integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g== + dependencies: + d3-path "1 - 3" + +"d3-color@1 - 3", d3-color@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== + +d3-contour@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-4.0.2.tgz#bb92063bc8c5663acb2422f99c73cbb6c6ae3bcc" + integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA== + dependencies: + d3-array "^3.2.0" + +d3-delaunay@6: + version "6.0.4" + resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz#98169038733a0a5babbeda55054f795bb9e4a58b" + integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A== + dependencies: + delaunator "5" + +"d3-dispatch@1 - 3", d3-dispatch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" + integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== + +"d3-drag@2 - 3", d3-drag@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" + integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== + dependencies: + d3-dispatch "1 - 3" + d3-selection "3" + +"d3-dsv@1 - 3", d3-dsv@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" + integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== + dependencies: + commander "7" + iconv-lite "0.6" + rw "1" + +"d3-ease@1 - 3", d3-ease@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" + integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== + +d3-fetch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" + integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== + dependencies: + d3-dsv "1 - 3" + +d3-force@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" + integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== + dependencies: + d3-dispatch "1 - 3" + d3-quadtree "1 - 3" + d3-timer "1 - 3" + +"d3-format@1 - 3", d3-format@3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.2.tgz#01fdb46b58beb1f55b10b42ad70b6e344d5eb2ae" + integrity sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg== + +d3-geo@3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.1.1.tgz#6027cf51246f9b2ebd64f99e01dc7c3364033a4d" + integrity sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q== + dependencies: + d3-array "2.5.0 - 3" + +d3-hierarchy@3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" + integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== + +"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== + dependencies: + d3-color "1 - 3" + +d3-path@1: + version "1.0.9" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" + integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== + +"d3-path@1 - 3", d3-path@3, d3-path@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" + integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== + +d3-polygon@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398" + integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== + +"d3-quadtree@1 - 3", d3-quadtree@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" + integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== + +d3-random@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" + integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== + +d3-sankey@^0.12.3: + version "0.12.3" + resolved "https://registry.yarnpkg.com/d3-sankey/-/d3-sankey-0.12.3.tgz#b3c268627bd72e5d80336e8de6acbfec9d15d01d" + integrity sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ== + dependencies: + d3-array "1 - 2" + d3-shape "^1.2.0" + +d3-scale-chromatic@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#34c39da298b23c20e02f1a4b239bd0f22e7f1314" + integrity sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ== + dependencies: + d3-color "1 - 3" + d3-interpolate "1 - 3" + +d3-scale@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" + integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== + dependencies: + d3-array "2.10.0 - 3" + d3-format "1 - 3" + d3-interpolate "1.2.0 - 3" + d3-time "2.1.1 - 3" + d3-time-format "2 - 4" + +"d3-selection@2 - 3", d3-selection@3, d3-selection@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" + integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== + +d3-shape@3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" + integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== + dependencies: + d3-path "^3.1.0" + +d3-shape@^1.2.0: + version "1.3.7" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" + integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== + dependencies: + d3-path "1" + +"d3-time-format@2 - 4", d3-time-format@4: + version "4.1.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" + integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== + dependencies: + d3-time "1 - 3" + +"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" + integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== + dependencies: + d3-array "2 - 3" + +"d3-timer@1 - 3", d3-timer@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" + integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== + +"d3-transition@2 - 3", d3-transition@3, d3-transition@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" + integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== + dependencies: + d3-color "1 - 3" + d3-dispatch "1 - 3" + d3-ease "1 - 3" + d3-interpolate "1 - 3" + d3-timer "1 - 3" + +d3-zoom@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" + integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "2 - 3" + d3-transition "2 - 3" + +d3@^7.9.0: + version "7.9.0" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.9.0.tgz#579e7acb3d749caf8860bd1741ae8d371070cd5d" + integrity sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA== + dependencies: + d3-array "3" + d3-axis "3" + d3-brush "3" + d3-chord "3" + d3-color "3" + d3-contour "4" + d3-delaunay "6" + d3-dispatch "3" + d3-drag "3" + d3-dsv "3" + d3-ease "3" + d3-fetch "3" + d3-force "3" + d3-format "3" + d3-geo "3" + d3-hierarchy "3" + d3-interpolate "3" + d3-path "3" + d3-polygon "3" + d3-quadtree "3" + d3-random "3" + d3-scale "4" + d3-scale-chromatic "3" + d3-selection "3" + d3-shape "3" + d3-time "3" + d3-time-format "4" + d3-timer "3" + d3-transition "3" + d3-zoom "3" + +dagre-d3-es@7.0.14: + version "7.0.14" + resolved "https://registry.yarnpkg.com/dagre-d3-es/-/dagre-d3-es-7.0.14.tgz#1272276e26457cf3b97dac569f8f0531ec33c377" + integrity sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg== + dependencies: + d3 "^7.9.0" + lodash-es "^4.17.21" + +dayjs@^1.11.21: + version "1.11.23" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.23.tgz#b0a363506dde5f36cf5075e42ebe8115165a8c79" + integrity sha512-QDTCU0M0MxR3hQfnlDJfwekQiaanm1ubOD231u73WBckQ/fsamwRLiE2GBz6D3a/xF1NgfiDLJjXBa1hYOYTtQ== + +debounce@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^4.0.0, debug@^4.1.0, debug@^4.3.1, debug@^4.4.3: + version "4.4.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== + dependencies: + ms "^2.1.3" + +decode-named-character-reference@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz#3e40603760874c2e5867691b599d73a7da25b53f" + integrity sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q== + dependencies: + character-entities "^2.0.0" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deepmerge@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +default-browser-id@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-5.0.1.tgz#f7a7ccb8f5104bf8e0f71ba3b1ccfa5eafdb21e8" + integrity sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q== + +default-browser@^5.2.1: + version "5.5.1" + resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-5.5.1.tgz#1790affc52680fbb11e17cab2752d69aa2a37d2c" + integrity sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw== + dependencies: + bundle-name "^4.1.0" + default-browser-id "^5.0.0" + +defer-to-connect@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-lazy-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" + integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== + +define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delaunator@5: + version "5.1.0" + resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.1.0.tgz#d13271fbf3aff6753f9ea6e235557f20901046ea" + integrity sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ== + dependencies: + robust-predicates "^3.0.2" + +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + +depd@2.0.0, depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +destroy@1.2.0, destroy@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-libc@^2.0.0, detect-libc@^2.0.2, detect-libc@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad" + integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +detect-port@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-2.1.0.tgz#03d72644891fa451ca5609b83107a8a0ebd03f91" + integrity sha512-epZuWb/6Q62L+nDHJc/hQAqf8pylsqgk3BpZXVBx1CDnr3nkrVNn73Uu1rXcFzkNcc+hkP3whuOg7JZYaQB65Q== + dependencies: + address "^2.0.1" + +devlop@^1.0.0, devlop@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/devlop/-/devlop-1.1.0.tgz#4db7c2ca4dc6e0e834c30be70c94bbc976dc7018" + integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== + dependencies: + dequal "^2.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dns-packet@^5.2.2: + version "5.6.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" + integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== + dependencies: + "@leichtgewicht/ip-codec" "^2.0.1" + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-helpers@^5.0.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +dompurify@^3.4.12: + version "3.4.16" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.4.16.tgz#c51b3709ea15ee9abb07e804f2ef30ea9b953128" + integrity sha512-sqo+pNp3qRhCIpbgRi1y8Tgk27Bo2Ry7w0dC1NBeNTdZChWjz9Xb/KOoZbRP/R6pQZ80Qw8YhXw13hWWBbMRnQ== + optionalDependencies: + "@types/trusted-types" "^2.0.7" + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +domutils@^3.0.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.2.2.tgz#edbfe2b668b0c1d97c24baf0f1062b132221bc78" + integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + dependencies: + is-obj "^2.0.0" + +dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-to-chromium@^1.5.438: + version "1.5.439" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.439.tgz#d14ad21f157ee83b77d1e46fc031776eec9013c9" + integrity sha512-qu6QIPXhsb+CRcAiTMNjR4A1y/7tCYKkKjr5CZXRVih6qkDf79peZ2BpEU3qoDBNCRrcy3Mra3X9nG5oruuA7Q== + +elkjs@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/elkjs/-/elkjs-0.9.3.tgz#16711f8ceb09f1b12b99e971b138a8384a529161" + integrity sha512-f/ZeWvW/BCXbhGEf1Ujp29EASo/lk1FDnETgNKwJrsVvGZhUWCZyg3xLJjAsxfOmt8KjswHmI5EwCQcPMpOYhQ== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +emojilib@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/emojilib/-/emojilib-2.4.0.tgz#ac518a8bb0d5f76dda57289ccb2fdf9d39ae721e" + integrity sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +emoticon@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-4.1.0.tgz#d5a156868ee173095627a33de3f1e914c3dde79e" + integrity sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ== + +encodeurl@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" + integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.5" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c" + integrity sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg== + dependencies: + once "^1.4.0" + +enhanced-resolve@^5.25.0: + version "5.25.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.25.1.tgz#9d919bfa898b116e58f20e95127c047693158771" + integrity sha512-nGXts5znJzmWPu+mIE9izCOzdg63oJca2mDzGWWTth7sr4aCToKcoyFVBQwN75Ij5Pf6p510EwkTqViTRzDV+w== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.3.3" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@^4.2.0, entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +entities@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.1.tgz#c28c34a43379ca7f61d074130b2f5f7020a30694" + integrity sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g== + +error-ex@^1.3.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.4.tgz#b3a8d8bb6f92eecc1629e3e27d3c8607a8a32414" + integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ== + dependencies: + is-arrayish "^0.2.1" + +es-define-property@^1.0.0, es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-module-lexer@^2.1.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-2.3.2.tgz#311fa4f40168c1975c505477c51b23234d41ad55" + integrity sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw== + +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.2.tgz#a2d0b373205724dfa525d23b0c3e1b1ca582c99b" + integrity sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw== + dependencies: + es-errors "^1.3.0" + +es-toolkit@^1.45.1: + version "1.52.0" + resolved "https://registry.yarnpkg.com/es-toolkit/-/es-toolkit-1.52.0.tgz#71eaf1a8b18834ef77637eccbb885ba4c03cd6dd" + integrity sha512-XTNEJQh1tY1ZJVcf6ayP/2n4ZPyaHlW2FWs7xvw5ddPuhUVjLD3olQVQS7kf58JbAB48iL0uL/jerTrjtV3lDA== + +esast-util-from-estree@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz#8d1cfb51ad534d2f159dc250e604f3478a79f1ad" + integrity sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ== + dependencies: + "@types/estree-jsx" "^1.0.0" + devlop "^1.0.0" + estree-util-visit "^2.0.0" + unist-util-position-from-estree "^2.0.0" + +esast-util-from-js@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz#5147bec34cc9da44accf52f87f239a40ac3e8225" + integrity sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw== + dependencies: + "@types/estree-jsx" "^1.0.0" + acorn "^8.0.0" + esast-util-from-estree "^2.0.0" + vfile-message "^4.0.0" + +escalade@^3.1.1, escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + +escape-goat@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-4.0.0.tgz#9424820331b510b0666b98f7873fe11ac4aa8081" + integrity sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg== + +escape-html@^1.0.3, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + +estree-util-attach-comments@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz#344bde6a64c8a31d15231e5ee9e297566a691c2d" + integrity sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw== + dependencies: + "@types/estree" "^1.0.0" + +estree-util-build-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz#b6d0bced1dcc4f06f25cf0ceda2b2dcaf98168f1" + integrity sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ== + dependencies: + "@types/estree-jsx" "^1.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + estree-walker "^3.0.0" + +estree-util-is-identifier-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz#0b5ef4c4ff13508b34dcd01ecfa945f61fce5dbd" + integrity sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg== + +estree-util-scope@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-util-scope/-/estree-util-scope-1.0.1.tgz#28e1e124b5d792f463f43ef3d1690236434b05ea" + integrity sha512-B0np3dcdxqILX5e9nEi5/Fr4K7gL4oYFVPV1zRa2e9wRCbQoZZNWOZFYyoInvXUPJXBXjss+QXlWLJChDEHDkA== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + +estree-util-to-js@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz#10a6fb924814e6abb62becf0d2bc4dea51d04f17" + integrity sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg== + dependencies: + "@types/estree-jsx" "^1.0.0" + astring "^1.8.0" + source-map "^0.7.0" + +estree-util-value-to-estree@^3.0.1: + version "3.5.0" + resolved "https://registry.yarnpkg.com/estree-util-value-to-estree/-/estree-util-value-to-estree-3.5.0.tgz#cd70cf37e7f78eae3e110d66a3436ce0d18a8f80" + integrity sha512-aMV56R27Gv3QmfmF1MY12GWkGzzeAezAX+UplqHVASfjc9wNzI/X6hC0S9oxq61WT4aQesLGslWP9tKk6ghRZQ== + dependencies: + "@types/estree" "^1.0.0" + +estree-util-visit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/estree-util-visit/-/estree-util-visit-2.0.0.tgz#13a9a9f40ff50ed0c022f831ddf4b58d05446feb" + integrity sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/unist" "^3.0.0" + +estree-walker@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +eta@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/eta/-/eta-2.2.0.tgz#eb8b5f8c4e8b6306561a455e62cd7492fe3a9b8a" + integrity sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +eval@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/eval/-/eval-0.1.8.tgz#2b903473b8cc1d1989b83a1e7923f883eb357f85" + integrity sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw== + dependencies: + "@types/node" "*" + require-like ">= 0.1.1" + +eventemitter3@^4.0.0, eventemitter3@^4.0.4: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events-universal@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/events-universal/-/events-universal-1.0.1.tgz#b56a84fd611b6610e0a2d0f09f80fdf931e2dfe6" + integrity sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw== + dependencies: + bare-events "^2.7.0" + +events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +execa@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + +express@^4.22.1: + version "4.22.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.22.3.tgz#e8f898d3c17582b1e311dd2c5cd6d8deff84724b" + integrity sha512-Bdcs4+3qlpVlx2NRn6fgX2Ue2/gGRaPeawebgclM0ERSCqDpA+owF1fdPwjJUTAJWMTuAaxjDf+hzb0/4eKvvw== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "~1.20.5" + content-disposition "~0.5.4" + content-type "~1.0.4" + cookie "~0.7.1" + cookie-signature "~1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~2.0.0" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.3.1" + fresh "~0.5.2" + http-errors "~2.0.0" + merge-descriptors "1.0.3" + methods "~1.1.2" + on-finished "~2.4.1" + parseurl "~1.3.3" + path-to-regexp "~0.1.13" + proxy-addr "~2.0.7" + qs "~6.16.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "~0.19.0" + serve-static "~1.16.2" + setprototypeof "1.2.0" + statuses "~2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-fifo@^1.2.0, fast-fifo@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" + integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== + +fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" + integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.8" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-uri@^3.0.1: + version "3.1.8" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.8.tgz#f7db8d942e20eead3cfe93b0beeb4eb0169e938b" + integrity sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg== + +fastq@^1.6.0: + version "1.20.3" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.20.3.tgz#7ab8731e647b56abcfeee997dae333ca3ee1d04d" + integrity sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw== + dependencies: + reusify "^1.0.4" + +fault@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fault/-/fault-2.0.1.tgz#d47ca9f37ca26e4bd38374a7c500b5a384755b6c" + integrity sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ== + dependencies: + format "^0.2.0" + +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +feed@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/feed/-/feed-4.2.2.tgz#865783ef6ed12579e2c44bbef3c9113bc4956a7e" + integrity sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ== + dependencies: + xml-js "^1.6.11" + +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.2.tgz#1ebc2228fc7673aac4a472c310cc05b77d852b88" + integrity sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg== + dependencies: + debug "2.6.9" + encodeurl "~2.0.0" + escape-html "~1.0.3" + on-finished "~2.4.1" + parseurl "~1.3.3" + statuses "~2.0.2" + unpipe "~1.0.0" + +find-cache-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" + integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== + dependencies: + common-path-prefix "^3.0.0" + pkg-dir "^7.0.0" + +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== + dependencies: + locate-path "^7.1.0" + path-exists "^5.0.0" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +follow-redirects@^1.0.0: + version "1.16.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.16.0.tgz#28474a159d3b9d11ef62050a14ed60e4df6d61bc" + integrity sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw== + +form-data-encoder@^2.1.2: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" + integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== + +format@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" + integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fraction.js@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-5.3.4.tgz#8c0fcc6a9908262df4ed197427bdeef563e0699a" + integrity sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ== + +fresh@~0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^11.1.1, fs-extra@^11.2.0: + version "11.4.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.4.1.tgz#6a01ca80008eacf3ca1ffde5ef79088f68203a5a" + integrity sha512-KYAb4c9BJQI6QqGKthV68OHe0badztdXJWKo0WtBA9IuCFPTKvE5ZdUBglP833aMjhaSPNO4A5j/EkzZtGlKjA== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + function-bind "^1.1.2" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + +get-stream@^6.0.0, get-stream@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + +github-slugger@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.5.0.tgz#17891bbc73232051474d68bd867a34625c955f7d" + integrity sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-to-regex.js@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/glob-to-regex.js/-/glob-to-regex.js-1.3.1.tgz#2f9fe8821218b18e6dcced9bcb4413932162db4b" + integrity sha512-zhWhMRsgnOym+1txhUmYJGD6eUsbUdrZv55gCYKuJX8t2p3+M8My23PD09bEIsreGUs5pnSa/idmcfp2/IlqGg== + +glob@^13.0.0, glob@^13.0.3: + version "13.0.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-13.0.6.tgz#078666566a425147ccacfbd2e332deb66a2be71d" + integrity sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw== + dependencies: + minimatch "^10.2.2" + minipass "^7.1.3" + path-scurry "^2.0.2" + +global-dirs@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" + integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== + dependencies: + ini "2.0.0" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +globby@^13.1.1: + version "13.2.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" + integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.3.0" + ignore "^5.2.4" + merge2 "^1.4.1" + slash "^4.0.0" + +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw== + dependencies: + delegate "^3.1.2" + +gopd@^1.0.1, gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + +got@^12.1.0: + version "12.6.1" + resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" + integrity sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ== + dependencies: + "@sindresorhus/is" "^5.2.0" + "@szmarczak/http-timer" "^5.0.1" + cacheable-lookup "^7.0.0" + cacheable-request "^10.2.8" + decompress-response "^6.0.0" + form-data-encoder "^2.1.2" + get-stream "^6.0.1" + http2-wrapper "^2.1.10" + lowercase-keys "^3.0.0" + p-cancelable "^3.0.0" + responselike "^3.0.0" + +graceful-fs@4.2.10: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + +hachure-fill@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/hachure-fill/-/hachure-fill-0.5.2.tgz#d19bc4cc8750a5962b47fb1300557a85fcf934cc" + integrity sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg== + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + +has-yarn@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-3.0.0.tgz#c3c21e559730d1d3b57e28af1f30d06fac38147d" + integrity sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA== + +hasown@^2.0.2, hasown@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.4.tgz#8c62d8cb90beb2aad5d0a5b67581ad9854c3f003" + integrity sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A== + dependencies: + function-bind "^1.1.2" + +hast-util-from-parse5@^8.0.0: + version "8.0.3" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz#830a35022fff28c3fea3697a98c2f4cc6b835a2e" + integrity sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + devlop "^1.0.0" + hastscript "^9.0.0" + property-information "^7.0.0" + vfile "^6.0.0" + vfile-location "^5.0.0" + web-namespaces "^2.0.0" + +hast-util-parse-selector@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz#352879fa86e25616036037dd8931fb5f34cb4a27" + integrity sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A== + dependencies: + "@types/hast" "^3.0.0" + +hast-util-raw@^9.0.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-9.1.0.tgz#79b66b26f6f68fb50dfb4716b2cdca90d92adf2e" + integrity sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + "@ungap/structured-clone" "^1.0.0" + hast-util-from-parse5 "^8.0.0" + hast-util-to-parse5 "^8.0.0" + html-void-elements "^3.0.0" + mdast-util-to-hast "^13.0.0" + parse5 "^7.0.0" + unist-util-position "^5.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + web-namespaces "^2.0.0" + zwitch "^2.0.0" + +hast-util-to-estree@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz#e654c1c9374645135695cc0ab9f70b8fcaf733d7" + integrity sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w== + dependencies: + "@types/estree" "^1.0.0" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + estree-util-attach-comments "^3.0.0" + estree-util-is-identifier-name "^3.0.0" + hast-util-whitespace "^3.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + property-information "^7.0.0" + space-separated-tokens "^2.0.0" + style-to-js "^1.0.0" + unist-util-position "^5.0.0" + zwitch "^2.0.0" + +hast-util-to-jsx-runtime@^2.0.0: + version "2.3.6" + resolved "https://registry.yarnpkg.com/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz#ff31897aae59f62232e21594eac7ef6b63333e98" + integrity sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg== + dependencies: + "@types/estree" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + hast-util-whitespace "^3.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + property-information "^7.0.0" + space-separated-tokens "^2.0.0" + style-to-js "^1.0.0" + unist-util-position "^5.0.0" + vfile-message "^4.0.0" + +hast-util-to-parse5@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-8.0.1.tgz#95aa391cc0514b4951418d01c883d1038af42f5d" + integrity sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA== + dependencies: + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + property-information "^7.0.0" + space-separated-tokens "^2.0.0" + web-namespaces "^2.0.0" + zwitch "^2.0.0" + +hast-util-whitespace@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz#7778ed9d3c92dd9e8c5c8f648a49c21fc51cb621" + integrity sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw== + dependencies: + "@types/hast" "^3.0.0" + +hastscript@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-9.0.1.tgz#dbc84bef6051d40084342c229c451cd9dc567dff" + integrity sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w== + dependencies: + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + hast-util-parse-selector "^4.0.0" + property-information "^7.0.0" + space-separated-tokens "^2.0.0" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-escaper@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier-terser@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" + integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== + dependencies: + camel-case "^4.1.2" + clean-css "^5.2.2" + commander "^8.3.0" + he "^1.2.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.10.0" + +html-minifier-terser@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz#18752e23a2f0ed4b0f550f217bb41693e975b942" + integrity sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA== + dependencies: + camel-case "^4.1.2" + clean-css "~5.3.2" + commander "^10.0.0" + entities "^4.4.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.15.1" + +html-tags@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" + integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== + +html-void-elements@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-3.0.0.tgz#fc9dbd84af9e747249034d4d62602def6517f1d7" + integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== + +html-webpack-plugin@^5.6.0: + version "5.6.8" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.8.tgz#5425dbc63eb533ffa59e92342be94894a125fc23" + integrity sha512-MZmKQcTnhEh1SPSyMiEytIeDZDUoBZVorNHivQGXMASHf/BSGGOrKa2xQ5bGx3TCe1n109ecCt+cpww7wwWhKA== + dependencies: + "@types/html-minifier-terser" "^6.0.0" + html-minifier-terser "^6.0.2" + lodash "^4.17.21" + pretty-error "^4.0.0" + tapable "^2.0.0" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +htmlparser2@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" + integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + entities "^4.4.0" + +http-cache-semantics@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz#205f4db64f8562b76a4ff9235aa5279839a09dd5" + integrity sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ== + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + +http-errors@~1.8.0: + version "1.8.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.1" + +http-errors@~2.0.0, http-errors@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.1.tgz#36d2f65bc909c8790018dd36fb4d93da6caae06b" + integrity sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ== + dependencies: + depd "~2.0.0" + inherits "~2.0.4" + setprototypeof "~1.2.0" + statuses "~2.0.2" + toidentifier "~1.0.1" + +http-parser-js@>=0.5.1: + version "0.5.10" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.10.tgz#b3277bd6d7ed5588e20ea73bf724fcbe44609075" + integrity sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA== + +http-proxy-middleware@^2.0.9: + version "2.0.10" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.10.tgz#b2df7b705203d7a8c269ac8450cf96b00c532f94" + integrity sha512-RKzRWNPxUZqbuk3BC5mGVJbBnWgr+diEnjJexIOytFbBzDy88Fbh/YvBr3DsNrl1jYAfjWfpATEv0NO35FDuPQ== + dependencies: + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http2-wrapper@^2.1.10: + version "2.2.1" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.1.tgz#310968153dcdedb160d8b72114363ef5fce1f64a" + integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.2.0" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +hyperdyperid@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/hyperdyperid/-/hyperdyperid-1.2.0.tgz#59668d323ada92228d2a869d3e474d5a33b69e6b" + integrity sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A== + +iconv-lite@0.6: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +iconv-lite@~0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^5.2.0, ignore@^5.2.4: + version "5.3.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== + +image-size@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-2.0.4.tgz#bbc1933173e4ee1adbbdf9d4958ded15fdb710e3" + integrity sha512-QRUkFFsRV/6fuESxb9Vkq+a0LkSrgKXuc2NEqfikiXxxN/G3tjWt5EVUlMaImRBZRZK/jRBEbYvpPYZL8t08Zw== + +import-fresh@^3.2.1, import-fresh@^3.3.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" + integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-lazy@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" + integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== + +import-meta-resolve@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz#08cb85b5bd37ecc8eb1e0f670dc2767002d43734" + integrity sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +infima@0.2.0-alpha.45: + version "0.2.0-alpha.45" + resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.45.tgz#542aab5a249274d81679631b492973dd2c1e7466" + integrity sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw== + +inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +ini@^1.3.4, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +inline-style-parser@0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.2.7.tgz#b1fc68bfc0313b8685745e4464e37f9376b9c909" + integrity sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA== + +"internmap@1 - 2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" + integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== + +internmap@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95" + integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +ipaddr.js@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.5.0.tgz#7d4b6c39f9392fb61cf807de6e425e22c10e061f" + integrity sha512-aq+t5NAc+cS6rZQQVWC2x98CPqGtKKTMDd4Gaodv0wShnItdKg/51djkGJ1hqH+Oy0ivDftCbSLCQob8zso01w== + +is-alphabetical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b" + integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== + +is-alphanumerical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875" + integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== + dependencies: + is-alphabetical "^2.0.0" + is-decimal "^2.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-arrayish@^0.3.1: + version "0.3.4" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.4.tgz#1ee5553818511915685d33bb13d31bf854e5059d" + integrity sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-ci@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + +is-core-module@^2.16.1: + version "2.17.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.17.0.tgz#75c1c76236c9f7e38ddbfff292e127dc13b21027" + integrity sha512-J/vG0zBCbIKOQFfufSwyXdMrsohyJIUNkrnmo6WZGzoM7tr/lsbfW5b2BvisL6zsyMzK9UxV9L6c7AoFbyXHOA== + dependencies: + hasown "^2.0.4" + +is-decimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7" + integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-docker@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" + integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== + +is-extendable@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hexadecimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" + integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== + +is-inside-container@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" + integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== + dependencies: + is-docker "^3.0.0" + +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + +is-network-error@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/is-network-error/-/is-network-error-1.3.2.tgz#9460bc30f8419a4bca77114f4de88a3ee5e0c519" + integrity sha512-PhBY86zaxNZUuWP6h13Vu5oFe0XY6/UlKzQnYFELzGVHygP3MxmvTfYSG7GN3aIab/iWudSMgjSnG9Dq+nHrgA== + +is-npm@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.1.0.tgz#f70e0b6c132dfc817ac97d3badc0134945b098d3" + integrity sha512-O2z4/kNgyjhQwVR1Wpkbfc19JIhggF97NZNCpWTnjH7kVcZMUrnut9XSN7txI7VdyIYk5ZatOq3zvSuWpU8hoA== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +is-wsl@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.1.tgz#327897b26832a3eb117da6c27492d04ca132594f" + integrity sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw== + dependencies: + is-inside-container "^1.0.0" + +is-yarn-global@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.4.1.tgz#b312d902b313f81e4eaf98b6361ba2b45cd694bb" + integrity sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest-worker@^29.4.3: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== + dependencies: + "@types/node" "*" + jest-util "^29.7.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jiti@^1.20.0: + version "1.21.7" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.7.tgz#9dd81043424a3d28458b193d965f0d18a2300ba9" + integrity sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A== + +joi@^17.9.2: + version "17.13.8" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.8.tgz#92069d521eea09fd709d8abbb86b0ef02862224f" + integrity sha512-iPKOGmiRw1jxf/JOPwxmCcUQAOdF359mdzYiP2DJ+TMX0YK2zjK3D+zYOaGjpumWxOFF/l2xVWjRVK5bGSLdEw== + dependencies: + "@hapi/hoek" "^9.3.0" + "@hapi/topo" "^5.1.0" + "@sideway/address" "^4.1.5" + "@sideway/formula" "^3.0.1" + "@sideway/pinpoint" "^2.0.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.3.2.tgz#8e44fb14a2643c59726bb15787b5f1512cb3d3fb" + integrity sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA== + dependencies: + argparse "^2.0.1" + +jsesc@^3.0.2, jsesc@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json5@^2.1.2, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^6.0.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.2.1.tgz#b6e31717f22cc37330b081ce0051ed5de53af2f6" + integrity sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +katex@^0.16.47: + version "0.16.47" + resolved "https://registry.yarnpkg.com/katex/-/katex-0.16.47.tgz#0a13a42c2deb4f74e61f162d440b9165a548030f" + integrity sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg== + dependencies: + commander "^8.3.0" + +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +khroma@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.1.0.tgz#45f2ce94ce231a437cf5b63c2e886e6eb42bbbb1" + integrity sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw== + +kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +latest-version@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" + integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg== + dependencies: + package-json "^8.1.0" + +launch-editor@^2.14.1: + version "2.14.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.14.1.tgz#f7e0da3f58aaea03fea01074d840b5f739ed7ddc" + integrity sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA== + dependencies: + picocolors "^1.1.1" + shell-quote "^1.8.4" + +layout-base@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-1.0.2.tgz#1291e296883c322a9dd4c5dd82063721b53e26e2" + integrity sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg== + +layout-base@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-2.0.1.tgz#d0337913586c90f9c2c075292069f5c2da5dd285" + integrity sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +lightningcss-android-arm64@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz#9a6841f88ae50fc83502903892b41af41bc2b907" + integrity sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg== + +lightningcss-darwin-arm64@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz#c0f2c31c0bfd19fa4dd3f18e957a1f1a152097d6" + integrity sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg== + +lightningcss-darwin-x64@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz#cb0705965acb538c6683949ce6925fb3cdf7c361" + integrity sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ== + +lightningcss-freebsd-x64@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz#763538828b26bab2680dadafcc84ee78b0eb502b" + integrity sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg== + +lightningcss-linux-arm-gnueabihf@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz#6862e3176a331aedbdec1ed352b4d7d0dd0784de" + integrity sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ== + +lightningcss-linux-arm64-gnu@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz#c6a3a2ed15141daf6bdc2628930f8e39bdf473aa" + integrity sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg== + +lightningcss-linux-arm64-musl@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz#7fa1334971fc82845f9827df6ef8a0b20914bac6" + integrity sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ== + +lightningcss-linux-x64-gnu@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz#8b927862ea8c2bbc6831a46509244b50d9936e55" + integrity sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg== + +lightningcss-linux-x64-musl@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz#0c525bb077dfd94404c059cfe42dad797e96aeaf" + integrity sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw== + +lightningcss-win32-arm64-msvc@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz#850ee1103dac989cfab50e3ac22d1a69e394e63d" + integrity sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA== + +lightningcss-win32-x64-msvc@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz#e343ae152eed3609dc6e11949d1a3bf39a1c946f" + integrity sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA== + +lightningcss@^1.27.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.33.0.tgz#c08867d71a79385c6e190214fd72fef3e5f95f0b" + integrity sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA== + dependencies: + detect-libc "^2.0.3" + optionalDependencies: + lightningcss-android-arm64 "1.33.0" + lightningcss-darwin-arm64 "1.33.0" + lightningcss-darwin-x64 "1.33.0" + lightningcss-freebsd-x64 "1.33.0" + lightningcss-linux-arm-gnueabihf "1.33.0" + lightningcss-linux-arm64-gnu "1.33.0" + lightningcss-linux-arm64-musl "1.33.0" + lightningcss-linux-x64-gnu "1.33.0" + lightningcss-linux-x64-musl "1.33.0" + lightningcss-win32-arm64-msvc "1.33.0" + lightningcss-win32-x64-msvc "1.33.0" + +lilconfig@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.3.tgz#a1bcfd6257f9585bf5ae14ceeebb7b559025e4c4" + integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +loader-utils@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== + dependencies: + p-locate "^6.0.0" + +lodash-es@4.17.23: + version "4.17.23" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.23.tgz#58c4360fd1b5d33afc6c0bbd3d1149349b1138e0" + integrity sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg== + +lodash-es@^4.17.21: + version "4.18.1" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.18.1.tgz#b962eeb80d9d983a900bf342961fb7418ca10b1d" + integrity sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash@^4.17.20, lodash@^4.17.21: + version "4.18.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.18.1.tgz#ff2b66c1f6326d59513de2407bf881439812771c" + integrity sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q== + +longest-streak@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" + integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== + +loose-envify@^1.0.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lowercase-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" + integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== + +lru-cache@^11.0.0: + version "11.5.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.5.3.tgz#a7767b4034e35269562d2b9da2b185b5df70c421" + integrity sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +markdown-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-2.0.0.tgz#34bebc83e9938cae16e0e017e4a9814a8330d3c4" + integrity sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q== + +markdown-table@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.4.tgz#fe44d6d410ff9d6f2ea1797a3f60aa4d2b631c2a" + integrity sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw== + +marked@^16.3.0: + version "16.4.2" + resolved "https://registry.yarnpkg.com/marked/-/marked-16.4.2.tgz#4959a64be6c486f0db7467ead7ce288de54290a3" + integrity sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA== + +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + +mdast-util-directive@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz#f3656f4aab6ae3767d3c72cfab5e8055572ccba1" + integrity sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + ccount "^2.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-visit-parents "^6.0.0" + +mdast-util-find-and-replace@^3.0.0, mdast-util-find-and-replace@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz#70a3174c894e14df722abf43bc250cbae44b11df" + integrity sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg== + dependencies: + "@types/mdast" "^4.0.0" + escape-string-regexp "^5.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + +mdast-util-from-markdown@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz#c95822b91aab75f18a4cbe8b2f51b873ed2cf0c7" + integrity sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + mdast-util-to-string "^4.0.0" + micromark "^4.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-decode-string "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-stringify-position "^4.0.0" + +mdast-util-frontmatter@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz#f5f929eb1eb36c8a7737475c7eb438261f964ee8" + integrity sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + escape-string-regexp "^5.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + micromark-extension-frontmatter "^2.0.0" + +mdast-util-gfm-autolink-literal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz#abd557630337bd30a6d5a4bd8252e1c2dc0875d5" + integrity sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ== + dependencies: + "@types/mdast" "^4.0.0" + ccount "^2.0.0" + devlop "^1.0.0" + mdast-util-find-and-replace "^3.0.0" + micromark-util-character "^2.0.0" + +mdast-util-gfm-footnote@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz#7778e9d9ca3df7238cc2bd3fa2b1bf6a65b19403" + integrity sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.1.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + +mdast-util-gfm-strikethrough@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz#d44ef9e8ed283ac8c1165ab0d0dfd058c2764c16" + integrity sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm-table@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz#7a435fb6223a72b0862b33afbd712b6dae878d38" + integrity sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + markdown-table "^3.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm-task-list-item@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz#e68095d2f8a4303ef24094ab642e1047b991a936" + integrity sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz#2cdf63b92c2a331406b0fb0db4c077c1b0331751" + integrity sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ== + dependencies: + mdast-util-from-markdown "^2.0.0" + mdast-util-gfm-autolink-literal "^2.0.0" + mdast-util-gfm-footnote "^2.0.0" + mdast-util-gfm-strikethrough "^2.0.0" + mdast-util-gfm-table "^2.0.0" + mdast-util-gfm-task-list-item "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdx-expression@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz#43f0abac9adc756e2086f63822a38c8d3c3a5096" + integrity sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdx-jsx@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz#fd04c67a2a7499efb905a8a5c578dddc9fdada0d" + integrity sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + ccount "^2.0.0" + devlop "^1.1.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-stringify-position "^4.0.0" + vfile-message "^4.0.0" + +mdast-util-mdx@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz#792f9cf0361b46bee1fdf1ef36beac424a099c41" + integrity sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w== + dependencies: + mdast-util-from-markdown "^2.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdxjs-esm@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz#019cfbe757ad62dd557db35a695e7314bcc9fa97" + integrity sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-phrasing@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz#7cc0a8dec30eaf04b7b1a9661a92adb3382aa6e3" + integrity sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w== + dependencies: + "@types/mdast" "^4.0.0" + unist-util-is "^6.0.0" + +mdast-util-to-hast@^13.0.0: + version "13.2.1" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz#d7ff84ca499a57e2c060ae67548ad950e689a053" + integrity sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@ungap/structured-clone" "^1.0.0" + devlop "^1.0.0" + micromark-util-sanitize-uri "^2.0.0" + trim-lines "^3.0.0" + unist-util-position "^5.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + +mdast-util-to-markdown@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz#f910ffe60897f04bb4b7e7ee434486f76288361b" + integrity sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + longest-streak "^3.0.0" + mdast-util-phrasing "^4.0.0" + mdast-util-to-string "^4.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-decode-string "^2.0.0" + unist-util-visit "^5.0.0" + zwitch "^2.0.0" + +mdast-util-to-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz#7a5121475556a04e7eddeb67b264aae79d312814" + integrity sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg== + dependencies: + "@types/mdast" "^4.0.0" + +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memfs@^4.17.0, memfs@^4.43.1: + version "4.79.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.79.0.tgz#2e007b983d3e27f1b64ba49dfe6fd51e82f51fdb" + integrity sha512-vDFqA9WSa//xa3XIKwMmVqxgWWft4PMKW0k69gBM2rYOzZ3VqL9BrK3Kyl45jSxS7qImDgwejZzEb/xDWhP37g== + dependencies: + "@jsonjoy.com/fs-core" "4.79.0" + "@jsonjoy.com/fs-fsa" "4.79.0" + "@jsonjoy.com/fs-node" "4.79.0" + "@jsonjoy.com/fs-node-builtins" "4.79.0" + "@jsonjoy.com/fs-node-to-fsa" "4.79.0" + "@jsonjoy.com/fs-node-utils" "4.79.0" + "@jsonjoy.com/fs-print" "4.79.0" + "@jsonjoy.com/fs-snapshot" "4.79.0" + "@jsonjoy.com/json-pack" "^1.11.0" + "@jsonjoy.com/util" "^1.9.0" + glob-to-regex.js "^1.3.1" + thingies "^2.5.0" + tree-dump "^1.0.3" + tslib "^2.0.0" + +merge-descriptors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" + integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +mermaid@>=11.6.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-12.0.0.tgz#3c4cdf54fd24110c988b90def857127055eb842b" + integrity sha512-/wQXC9iBxoGV8p3erbvaXs9h77VyLDBH6GdayVjj3hEcSQhFU4N1WUhUppotCEqlIxI2pRMwjwBSwTB1MfZBgQ== + dependencies: + "@braintree/sanitize-url" "^7.1.2" + "@iconify/utils" "^3.0.2" + "@mermaid-js/parser" "^2.0.0" + "@types/d3" "^7.4.3" + "@upsetjs/venn.js" "^2.0.0" + chevrotain "~11.1.2" + cytoscape "^3.34.0" + cytoscape-cose-bilkent "^4.1.0" + cytoscape-fcose "^2.2.0" + d3 "^7.9.0" + d3-sankey "^0.12.3" + dagre-d3-es "7.0.14" + dayjs "^1.11.21" + dompurify "^3.4.12" + elkjs "^0.9.3" + es-toolkit "^1.45.1" + katex "^0.16.47" + khroma "^2.1.0" + marked "^16.3.0" + roughjs "^4.6.6" + stylis "^4.3.6" + ts-dedent "^2.2.0" + uuid "^11.1.0 || ^12 || ^13 || ^14.0.0" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromark-core-commonmark@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz#c691630e485021a68cf28dbc2b2ca27ebf678cd4" + integrity sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg== + dependencies: + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + micromark-factory-destination "^2.0.0" + micromark-factory-label "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-factory-title "^2.0.0" + micromark-factory-whitespace "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-html-tag-name "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-subtokenize "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-directive@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz#2eb61985d1995a7c1ff7621676a4f32af29409e8" + integrity sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-factory-whitespace "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + parse-entities "^4.0.0" + +micromark-extension-frontmatter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz#651c52ffa5d7a8eeed687c513cd869885882d67a" + integrity sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg== + dependencies: + fault "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-autolink-literal@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz#6286aee9686c4462c1e3552a9d505feddceeb935" + integrity sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-footnote@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz#4dab56d4e398b9853f6fe4efac4fc9361f3e0750" + integrity sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw== + dependencies: + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-strikethrough@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz#86106df8b3a692b5f6a92280d3879be6be46d923" + integrity sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw== + dependencies: + devlop "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-table@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.2.tgz#54dc246873c0c0bebd84600e578aeb8a5f5de78d" + integrity sha512-pRzm4kDTu0MjlmBkxmS9yYhw60nncfcEwu9NNdPFSQEFXS95ZKyIIyTSHu/o3ReBUrLKYEq+7YaXCRn/bPB4MA== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-tagfilter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz#f26d8a7807b5985fba13cf61465b58ca5ff7dc57" + integrity sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg== + dependencies: + micromark-util-types "^2.0.0" + +micromark-extension-gfm-task-list-item@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz#bcc34d805639829990ec175c3eea12bb5b781f2c" + integrity sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz#3e13376ab95dd7a5cfd0e29560dfe999657b3c5b" + integrity sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w== + dependencies: + micromark-extension-gfm-autolink-literal "^2.0.0" + micromark-extension-gfm-footnote "^2.0.0" + micromark-extension-gfm-strikethrough "^2.0.0" + micromark-extension-gfm-table "^2.0.0" + micromark-extension-gfm-tagfilter "^2.0.0" + micromark-extension-gfm-task-list-item "^2.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-mdx-expression@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz#43d058d999532fb3041195a3c3c05c46fa84543b" + integrity sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-factory-mdx-expression "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-mdx-jsx@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz#ffc98bdb649798902fa9fc5689f67f9c1c902044" + integrity sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + micromark-factory-mdx-expression "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + vfile-message "^4.0.0" + +micromark-extension-mdx-md@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz#1d252881ea35d74698423ab44917e1f5b197b92d" + integrity sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ== + dependencies: + micromark-util-types "^2.0.0" + +micromark-extension-mdxjs-esm@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz#de21b2b045fd2059bd00d36746081de38390d54a" + integrity sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-position-from-estree "^2.0.0" + vfile-message "^4.0.0" + +micromark-extension-mdxjs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz#b5a2e0ed449288f3f6f6c544358159557549de18" + integrity sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ== + dependencies: + acorn "^8.0.0" + acorn-jsx "^5.0.0" + micromark-extension-mdx-expression "^3.0.0" + micromark-extension-mdx-jsx "^3.0.0" + micromark-extension-mdx-md "^2.0.0" + micromark-extension-mdxjs-esm "^3.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-destination@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz#8fef8e0f7081f0474fbdd92deb50c990a0264639" + integrity sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-label@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz#5267efa97f1e5254efc7f20b459a38cb21058ba1" + integrity sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg== + dependencies: + devlop "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-mdx-expression@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz#bb09988610589c07d1c1e4425285895041b3dfa9" + integrity sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-position-from-estree "^2.0.0" + vfile-message "^4.0.0" + +micromark-factory-space@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf" + integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-space@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz#36d0212e962b2b3121f8525fc7a3c7c029f334fc" + integrity sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-title@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz#237e4aa5d58a95863f01032d9ee9b090f1de6e94" + integrity sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw== + dependencies: + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-whitespace@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz#06b26b2983c4d27bfcc657b33e25134d4868b0b1" + integrity sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ== + dependencies: + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-character@^1.0.0, micromark-util-character@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc" + integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz#2f987831a40d4c510ac261e89852c4e9703ccda6" + integrity sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q== + dependencies: + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-chunked@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz#47fbcd93471a3fccab86cff03847fc3552db1051" + integrity sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-classify-character@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz#d399faf9c45ca14c8b4be98b1ea481bced87b629" + integrity sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-combine-extensions@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz#2a0f490ab08bff5cc2fd5eec6dd0ca04f89b30a9" + integrity sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg== + dependencies: + micromark-util-chunked "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-decode-numeric-character-reference@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz#fcf15b660979388e6f118cdb6bf7d79d73d26fe5" + integrity sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-decode-string@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz#6cb99582e5d271e84efca8e61a807994d7161eb2" + integrity sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-symbol "^2.0.0" + +micromark-util-encode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz#0d51d1c095551cfaac368326963cf55f15f540b8" + integrity sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw== + +micromark-util-events-to-acorn@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz#e7a8a6b55a47e5a06c720d5a1c4abae8c37c98f3" + integrity sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg== + dependencies: + "@types/estree" "^1.0.0" + "@types/unist" "^3.0.0" + devlop "^1.0.0" + estree-util-visit "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + vfile-message "^4.0.0" + +micromark-util-html-tag-name@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz#e40403096481986b41c106627f98f72d4d10b825" + integrity sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA== + +micromark-util-normalize-identifier@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz#c30d77b2e832acf6526f8bf1aa47bc9c9438c16d" + integrity sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-resolve-all@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz#e1a2d62cdd237230a2ae11839027b19381e31e8b" + integrity sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg== + dependencies: + micromark-util-types "^2.0.0" + +micromark-util-sanitize-uri@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz#ab89789b818a58752b73d6b55238621b7faa8fd7" + integrity sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-symbol "^2.0.0" + +micromark-util-subtokenize@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz#d8ade5ba0f3197a1cf6a2999fbbfe6357a1a19ee" + integrity sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA== + dependencies: + devlop "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-symbol@^1.0.0, micromark-util-symbol@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142" + integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== + +micromark-util-symbol@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz#e5da494e8eb2b071a0d08fb34f6cefec6c0a19b8" + integrity sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q== + +micromark-util-types@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283" + integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== + +micromark-util-types@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.2.tgz#f00225f5f5a0ebc3254f96c36b6605c4b393908e" + integrity sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA== + +micromark@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-4.0.2.tgz#91395a3e1884a198e62116e33c9c568e39936fdb" + integrity sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-subtokenize "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromatch@^4.0.2, micromatch@^4.0.5, micromatch@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +"mime-db@>= 1.43.0 < 2", mime-db@^1.54.0: + version "1.54.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5" + integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== + +mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== + +mime-types@2.1.18: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== + dependencies: + mime-db "~1.33.0" + +mime-types@^2.1.27, mime-types@~2.1.24, mime-types@~2.1.34, mime-types@~2.1.35: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime-types@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-3.0.2.tgz#39002d4182575d5af036ffa118100f2524b2e2ab" + integrity sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A== + dependencies: + mime-db "^1.54.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +mimic-response@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" + integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== + +mini-css-extract-plugin@^2.9.2: + version "2.10.2" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.2.tgz#5c85ec9450c05d26e32531b465a15a08c3a57253" + integrity sha512-AOSS0IdEB95ayVkxn5oGzNQwqAi2J0Jb/kKm43t7H73s8+f5873g0yuj0PNvK4dO75mu5DHg4nlgp4k6Kga8eg== + dependencies: + schema-utils "^4.0.0" + tapable "^2.2.1" + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimatch@3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.5.tgz#580c88f8d5445f2bd6aa8f3cadefa0de79fbd69e" + integrity sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^10.2.2: + version "10.2.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.6.tgz#fd956bbe0b77241e9f15ac5dccb1c638060968ef" + integrity sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A== + dependencies: + brace-expansion "^5.0.8" + +minimist@^1.2.0, minimist@^1.2.3: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minimizer-webpack-plugin@^5.7.0: + version "5.12.0" + resolved "https://registry.yarnpkg.com/minimizer-webpack-plugin/-/minimizer-webpack-plugin-5.12.0.tgz#acef4a0bd3c5ee405f767a9d90e0173b55b16458" + integrity sha512-PCN1x1OzFeFB2GlP91s46q7Gz8Jf16Z7M45bzpoqrYZlh12QeY6tYVM5h299wbwy1DxnQ69VFmmh8Hb2Ff8mbw== + dependencies: + "@jridgewell/trace-mapping" "^0.3.31" + jest-worker "^27.4.5" + schema-utils "^4.3.3" + terser "^5.51.0" + +minipass@^7.1.2, minipass@^7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.3.tgz#79389b4eb1bb2d003a9bba87d492f2bd37bdc65b" + integrity sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A== + +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mrmime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.1.tgz#bc3e87f7987853a54c9850eeb1f1078cd44adddc" + integrity sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.3, ms@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns@^7.2.5: + version "7.2.5" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== + dependencies: + dns-packet "^5.2.2" + thunky "^1.0.2" + +nanoid@^3.3.18: + version "3.3.19" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.19.tgz#336d4aa4bcd4fb24d2cddede7ffeae40bec03f0a" + integrity sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug== + +napi-build-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-2.0.0.tgz#13c22c0187fcfccce1461844136372a47ddc027e" + integrity sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +negotiator@~0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7" + integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-abi@^3.3.0: + version "3.96.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.96.0.tgz#8b038bc6cca97d6cec2e9aafdb81b900da1ff80d" + integrity sha512-rebQ/lz7i0EkoLzUVSrKRzA69zMkwLp95kKMWoMDkkM00Suxz0D7zEQPwRml5fQum24mj7bPvmlgLAmu2JCiYg== + dependencies: + semver "^7.3.5" + +node-addon-api@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" + integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== + +node-emoji@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-2.2.0.tgz#1d000e3c76e462577895be1b436f4aa2d6760eb0" + integrity sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw== + dependencies: + "@sindresorhus/is" "^4.6.0" + char-regex "^1.0.2" + emojilib "^2.4.0" + skin-tone "^2.0.0" + +node-releases@^2.0.57: + version "2.0.57" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.57.tgz#47827d34b86a98b4b7afacc1222878c286b6ef2d" + integrity sha512-kQK9LGGFiHtrWiNhZtA7Qbw17AQz+dmsEKODRIVTXA9+e5MS/2gZEBhYJt13GrAz5/IOZKddH/0Z3TP/Zgo+yw== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.1.1.tgz#751a20c8520e5725404c06015fea21d7567f25ef" + integrity sha512-JYc0DPlpGWB40kH5g07gGTrYuMqV653k3uBKY6uITPWds3M0ov3GaWGp9lbE3Bzngx8+XkfzgvASb9vk9JDFXQ== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nprogress@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" + integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +null-loader@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/null-loader/-/null-loader-4.0.1.tgz#8e63bd3a2dd3c64236a4679428632edd0a6dbc6a" + integrity sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.13.3, object-inspect@^1.13.4: + version "1.13.4" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.0: + version "4.1.7" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.7.tgz#8c14ca1a424c6a561b0bb2a22f66f5049a945d3d" + integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + has-symbols "^1.1.0" + object-keys "^1.1.1" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@^2.4.1, on-finished@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-headers@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.1.0.tgz#59da4f91c45f5f989c6e4bcedc5a3b0aed70ff65" + integrity sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A== + +once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^10.0.3: + version "10.2.0" + resolved "https://registry.yarnpkg.com/open/-/open-10.2.0.tgz#b9d855be007620e80b6fb05fac98141fe62db73c" + integrity sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA== + dependencies: + default-browser "^5.2.1" + define-lazy-prop "^3.0.0" + is-inside-container "^1.0.0" + wsl-utils "^0.1.0" + +open@^8.4.0: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +opener@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +p-cancelable@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" + integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-queue@^6.6.2: + version "6.6.2" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" + integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== + dependencies: + eventemitter3 "^4.0.4" + p-timeout "^3.2.0" + +p-retry@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-6.2.1.tgz#81828f8dc61c6ef5a800585491572cc9892703af" + integrity sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ== + dependencies: + "@types/retry" "0.12.2" + is-network-error "^1.0.0" + retry "^0.13.1" + +p-timeout@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +package-json-from-dist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + +package-json@^8.1.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.1.tgz#3e9948e43df40d1e8e78a85485f1070bf8f03dc8" + integrity sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA== + dependencies: + got "^12.1.0" + registry-auth-token "^5.0.1" + registry-url "^6.0.0" + semver "^7.3.7" + +package-manager-detector@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/package-manager-detector/-/package-manager-detector-1.8.0.tgz#70c9a2c4bd1a513dcd6cad006a9fcebec22a1253" + integrity sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A== + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-entities@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.2.tgz#61d46f5ed28e4ee62e9ddc43d6b010188443f159" + integrity sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw== + dependencies: + "@types/unist" "^2.0.0" + character-entities-legacy "^3.0.0" + character-reference-invalid "^2.0.0" + decode-named-character-reference "^1.0.0" + is-alphanumerical "^2.0.0" + is-decimal "^2.0.0" + is-hexadecimal "^2.0.0" + +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-numeric-range@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz#7c63b61190d61e4d53a1197f0c83c47bb670ffa3" + integrity sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ== + +parse5-htmlparser2-tree-adapter@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz#b5a806548ed893a43e24ccb42fbb78069311e81b" + integrity sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g== + dependencies: + domhandler "^5.0.3" + parse5 "^7.0.0" + +parse5@^7.0.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.3.0.tgz#d7e224fa72399c7a175099f45fc2ad024b05ec05" + integrity sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw== + dependencies: + entities "^6.0.0" + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +path-data-parser@0.1.0, path-data-parser@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/path-data-parser/-/path-data-parser-0.1.0.tgz#8f5ba5cc70fc7becb3dcefaea08e2659aba60b8c" + integrity sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w== + +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + +path-is-inside@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-scurry@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.2.tgz#6be0d0ee02a10d9e0de7a98bae65e182c9061f85" + integrity sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg== + dependencies: + lru-cache "^11.0.0" + minipass "^7.1.2" + +path-to-regexp@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-3.3.0.tgz#f7f31d32e8518c2660862b644414b6d5c63a611b" + integrity sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw== + +path-to-regexp@^1.7.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.9.0.tgz#5dc0753acbf8521ca2e0f137b4578b917b10cf24" + integrity sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g== + dependencies: + isarray "0.0.1" + +path-to-regexp@~0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.13.tgz#9b22ec16bc3ab88d05a0c7e369869421401ab17d" + integrity sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picocolors@^1.0.0, picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.2.tgz#5a942915e26b372dc0f0e6753149a16e6b1c5601" + integrity sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA== + +pkg-dir@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" + integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== + dependencies: + find-up "^6.3.0" + +pkijs@^3.3.3: + version "3.4.1" + resolved "https://registry.yarnpkg.com/pkijs/-/pkijs-3.4.1.tgz#b42c36b5143bc7ea2584e5d1f5bd4b5ac3ca4bca" + integrity sha512-Oo/NZcSWccq8KyoG7gLE9fnltgHns+pNCjCAp/WmjsUySi+sX7y4z4Xqu4fVb42CDHzRPl33fjzT15V1wvcyhA== + dependencies: + "@noble/hashes" "1.8.0" + asn1js "^3.0.6" + bytestreamjs "^2.0.1" + pvtsutils "^1.3.6" + pvutils "^1.1.3" + tslib "^2.8.1" + +points-on-curve@0.2.0, points-on-curve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/points-on-curve/-/points-on-curve-0.2.0.tgz#7dbb98c43791859434284761330fa893cb81b4d1" + integrity sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A== + +points-on-path@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/points-on-path/-/points-on-path-0.2.1.tgz#553202b5424c53bed37135b318858eacff85dd52" + integrity sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g== + dependencies: + path-data-parser "0.1.0" + points-on-curve "0.2.0" + +postcss-attribute-case-insensitive@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz#0c4500e3bcb2141848e89382c05b5a31c23033a3" + integrity sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-calc@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-9.0.1.tgz#a744fd592438a93d6de0f1434c572670361eb6c6" + integrity sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ== + dependencies: + postcss-selector-parser "^6.0.11" + postcss-value-parser "^4.2.0" + +postcss-clamp@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz#7263e95abadd8c2ba1bd911b0b5a5c9c93e02363" + integrity sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-functional-notation@^7.0.12: + version "7.0.12" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.12.tgz#9a3df2296889e629fde18b873bb1f50a4ecf4b83" + integrity sha512-TLCW9fN5kvO/u38/uesdpbx3e8AkTYhMvDZYa9JpmImWuTE99bDQ7GU7hdOADIZsiI9/zuxfAJxny/khknp1Zw== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +postcss-color-hex-alpha@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz#5dd3eba1f8facb4ea306cba6e3f7712e876b0c76" + integrity sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w== + dependencies: + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" + +postcss-color-rebeccapurple@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz#5ada28406ac47e0796dff4056b0a9d5a6ecead98" + integrity sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ== + dependencies: + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" + +postcss-colormin@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.1.0.tgz#076e8d3fb291fbff7b10e6b063be9da42ff6488d" + integrity sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw== + dependencies: + browserslist "^4.23.0" + caniuse-api "^3.0.0" + colord "^2.9.3" + postcss-value-parser "^4.2.0" + +postcss-convert-values@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz#3498387f8efedb817cbc63901d45bd1ceaa40f48" + integrity sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w== + dependencies: + browserslist "^4.23.0" + postcss-value-parser "^4.2.0" + +postcss-custom-media@^11.0.6: + version "11.0.6" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-11.0.6.tgz#6b450e5bfa209efb736830066682e6567bd04967" + integrity sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw== + dependencies: + "@csstools/cascade-layer-name-parser" "^2.0.5" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/media-query-list-parser" "^4.0.3" + +postcss-custom-properties@^14.0.6: + version "14.0.6" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-14.0.6.tgz#1af73a650bf115ba052cf915287c9982825fc90e" + integrity sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ== + dependencies: + "@csstools/cascade-layer-name-parser" "^2.0.5" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" + +postcss-custom-selectors@^8.0.5: + version "8.0.5" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-8.0.5.tgz#9448ed37a12271d7ab6cb364b6f76a46a4a323e8" + integrity sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg== + dependencies: + "@csstools/cascade-layer-name-parser" "^2.0.5" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + postcss-selector-parser "^7.0.0" + +postcss-dir-pseudo-class@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz#80d9e842c9ae9d29f6bf5fd3cf9972891d6cc0ca" + integrity sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-discard-comments@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz#e768dcfdc33e0216380623652b0a4f69f4678b6c" + integrity sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw== + +postcss-discard-duplicates@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz#d121e893c38dc58a67277f75bb58ba43fce4c3eb" + integrity sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw== + +postcss-discard-empty@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz#ee39c327219bb70473a066f772621f81435a79d9" + integrity sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ== + +postcss-discard-overridden@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz#4e9f9c62ecd2df46e8fdb44dc17e189776572e2d" + integrity sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ== + +postcss-discard-unused@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz#c1b0e8c032c6054c3fbd22aaddba5b248136f338" + integrity sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA== + dependencies: + postcss-selector-parser "^6.0.16" + +postcss-double-position-gradients@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.4.tgz#b482d08b5ced092b393eb297d07976ab482d4cad" + integrity sha512-m6IKmxo7FxSP5nF2l63QbCC3r+bWpFUWmZXZf096WxG0m7Vl1Q1+ruFOhpdDRmKrRS+S3Jtk+TVk/7z0+BVK6g== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" + +postcss-focus-visible@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz#1f7904904368a2d1180b220595d77b6f8a957868" + integrity sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-focus-within@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz#ac01ce80d3f2e8b2b3eac4ff84f8e15cd0057bc7" + integrity sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-font-variant@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz#efd59b4b7ea8bb06127f2d031bfbb7f24d32fa66" + integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== + +postcss-gap-properties@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz#d5ff0bdf923c06686499ed2b12e125fe64054fed" + integrity sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw== + +postcss-image-set-function@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz#538e94e16716be47f9df0573b56bbaca86e1da53" + integrity sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA== + dependencies: + "@csstools/utilities" "^2.0.0" + postcss-value-parser "^4.2.0" + +postcss-lab-function@^7.0.12: + version "7.0.12" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-7.0.12.tgz#eb555ac542607730eb0a87555074e4a5c6eef6e4" + integrity sha512-tUcyRk1ZTPec3OuKFsqtRzW2Go5lehW29XA21lZ65XmzQkz43VY2tyWEC202F7W3mILOjw0voOiuxRGTsN+J9w== + dependencies: + "@csstools/css-color-parser" "^3.1.0" + "@csstools/css-parser-algorithms" "^3.0.5" + "@csstools/css-tokenizer" "^3.0.4" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/utilities" "^2.0.0" + +postcss-loader@^7.3.4: + version "7.3.4" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.4.tgz#aed9b79ce4ed7e9e89e56199d25ad1ec8f606209" + integrity sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A== + dependencies: + cosmiconfig "^8.3.5" + jiti "^1.20.0" + semver "^7.5.4" + +postcss-logical@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-8.1.0.tgz#4092b16b49e3ecda70c4d8945257da403d167228" + integrity sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-merge-idents@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz#7b9c31c7bc823c94bec50f297f04e3c2b838ea65" + integrity sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g== + dependencies: + cssnano-utils "^4.0.2" + postcss-value-parser "^4.2.0" + +postcss-merge-longhand@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz#ba8a8d473617c34a36abbea8dda2b215750a065a" + integrity sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w== + dependencies: + postcss-value-parser "^4.2.0" + stylehacks "^6.1.1" + +postcss-merge-rules@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz#7aa539dceddab56019469c0edd7d22b64c3dea9d" + integrity sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ== + dependencies: + browserslist "^4.23.0" + caniuse-api "^3.0.0" + cssnano-utils "^4.0.2" + postcss-selector-parser "^6.0.16" + +postcss-minify-font-values@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz#a0e574c02ee3f299be2846369211f3b957ea4c59" + integrity sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-minify-gradients@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz#ca3eb55a7bdb48a1e187a55c6377be918743dbd6" + integrity sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q== + dependencies: + colord "^2.9.3" + cssnano-utils "^4.0.2" + postcss-value-parser "^4.2.0" + +postcss-minify-params@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz#54551dec77b9a45a29c3cb5953bf7325a399ba08" + integrity sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA== + dependencies: + browserslist "^4.23.0" + cssnano-utils "^4.0.2" + postcss-value-parser "^4.2.0" + +postcss-minify-selectors@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz#197f7d72e6dd19eed47916d575d69dc38b396aff" + integrity sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ== + dependencies: + postcss-selector-parser "^6.0.16" + +postcss-modules-extract-imports@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz#b4497cb85a9c0c4b5aabeb759bb25e8d89f15002" + integrity sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q== + +postcss-modules-local-by-default@^4.0.5: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz#d150f43837831dae25e4085596e84f6f5d6ec368" + integrity sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^7.0.0" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz#1bbccddcb398f1d7a511e0a2d1d047718af4078c" + integrity sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-nesting@^13.0.2: + version "13.0.2" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-13.0.2.tgz#fde0d4df772b76d03b52eccc84372e8d1ca1402e" + integrity sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ== + dependencies: + "@csstools/selector-resolve-nested" "^3.1.0" + "@csstools/selector-specificity" "^5.0.0" + postcss-selector-parser "^7.0.0" + +postcss-normalize-charset@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz#1ec25c435057a8001dac942942a95ffe66f721e1" + integrity sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ== + +postcss-normalize-display-values@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz#54f02764fed0b288d5363cbb140d6950dbbdd535" + integrity sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz#e982d284ec878b9b819796266f640852dbbb723a" + integrity sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz#f8006942fd0617c73f049dd8b6201c3a3040ecf3" + integrity sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz#e3cc6ad5c95581acd1fc8774b309dd7c06e5e363" + integrity sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz#40cb8726cef999de984527cbd9d1db1f3e9062c0" + integrity sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz#aaf8bbd34c306e230777e80f7f12a4b7d27ce06e" + integrity sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg== + dependencies: + browserslist "^4.23.0" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz#292792386be51a8de9a454cb7b5c58ae22db0f79" + integrity sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz#fbb009e6ebd312f8b2efb225c2fcc7cf32b400cd" + integrity sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-opacity-percentage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz#0b0db5ed5db5670e067044b8030b89c216e1eb0a" + integrity sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ== + +postcss-ordered-values@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz#366bb663919707093451ab70c3f99c05672aaae5" + integrity sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q== + dependencies: + cssnano-utils "^4.0.2" + postcss-value-parser "^4.2.0" + +postcss-overflow-shorthand@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz#f5252b4a2ee16c68cd8a9029edb5370c4a9808af" + integrity sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-page-break@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz#7fbf741c233621622b68d435babfb70dd8c1ee5f" + integrity sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ== + +postcss-place@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-10.0.0.tgz#ba36ee4786ca401377ced17a39d9050ed772e5a9" + integrity sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-preset-env@^10.2.1: + version "10.6.1" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-10.6.1.tgz#df30cfc54e90af2dcff5f94104e6f272359c9f65" + integrity sha512-yrk74d9EvY+W7+lO9Aj1QmjWY9q5NsKjK2V9drkOPZB/X6KZ0B3igKsHUYakb7oYVhnioWypQX3xGuePf89f3g== + dependencies: + "@csstools/postcss-alpha-function" "^1.0.1" + "@csstools/postcss-cascade-layers" "^5.0.2" + "@csstools/postcss-color-function" "^4.0.12" + "@csstools/postcss-color-function-display-p3-linear" "^1.0.1" + "@csstools/postcss-color-mix-function" "^3.0.12" + "@csstools/postcss-color-mix-variadic-function-arguments" "^1.0.2" + "@csstools/postcss-content-alt-text" "^2.0.8" + "@csstools/postcss-contrast-color-function" "^2.0.12" + "@csstools/postcss-exponential-functions" "^2.0.9" + "@csstools/postcss-font-format-keywords" "^4.0.0" + "@csstools/postcss-gamut-mapping" "^2.0.11" + "@csstools/postcss-gradients-interpolation-method" "^5.0.12" + "@csstools/postcss-hwb-function" "^4.0.12" + "@csstools/postcss-ic-unit" "^4.0.4" + "@csstools/postcss-initial" "^2.0.1" + "@csstools/postcss-is-pseudo-class" "^5.0.3" + "@csstools/postcss-light-dark-function" "^2.0.11" + "@csstools/postcss-logical-float-and-clear" "^3.0.0" + "@csstools/postcss-logical-overflow" "^2.0.0" + "@csstools/postcss-logical-overscroll-behavior" "^2.0.0" + "@csstools/postcss-logical-resize" "^3.0.0" + "@csstools/postcss-logical-viewport-units" "^3.0.4" + "@csstools/postcss-media-minmax" "^2.0.9" + "@csstools/postcss-media-queries-aspect-ratio-number-values" "^3.0.5" + "@csstools/postcss-nested-calc" "^4.0.0" + "@csstools/postcss-normalize-display-values" "^4.0.1" + "@csstools/postcss-oklab-function" "^4.0.12" + "@csstools/postcss-position-area-property" "^1.0.0" + "@csstools/postcss-progressive-custom-properties" "^4.2.1" + "@csstools/postcss-property-rule-prelude-list" "^1.0.0" + "@csstools/postcss-random-function" "^2.0.1" + "@csstools/postcss-relative-color-syntax" "^3.0.12" + "@csstools/postcss-scope-pseudo-class" "^4.0.1" + "@csstools/postcss-sign-functions" "^1.1.4" + "@csstools/postcss-stepped-value-functions" "^4.0.9" + "@csstools/postcss-syntax-descriptor-syntax-production" "^1.0.1" + "@csstools/postcss-system-ui-font-family" "^1.0.0" + "@csstools/postcss-text-decoration-shorthand" "^4.0.3" + "@csstools/postcss-trigonometric-functions" "^4.0.9" + "@csstools/postcss-unset-value" "^4.0.0" + autoprefixer "^10.4.23" + browserslist "^4.28.1" + css-blank-pseudo "^7.0.1" + css-has-pseudo "^7.0.3" + css-prefers-color-scheme "^10.0.0" + cssdb "^8.6.0" + postcss-attribute-case-insensitive "^7.0.1" + postcss-clamp "^4.1.0" + postcss-color-functional-notation "^7.0.12" + postcss-color-hex-alpha "^10.0.0" + postcss-color-rebeccapurple "^10.0.0" + postcss-custom-media "^11.0.6" + postcss-custom-properties "^14.0.6" + postcss-custom-selectors "^8.0.5" + postcss-dir-pseudo-class "^9.0.1" + postcss-double-position-gradients "^6.0.4" + postcss-focus-visible "^10.0.1" + postcss-focus-within "^9.0.1" + postcss-font-variant "^5.0.0" + postcss-gap-properties "^6.0.0" + postcss-image-set-function "^7.0.0" + postcss-lab-function "^7.0.12" + postcss-logical "^8.1.0" + postcss-nesting "^13.0.2" + postcss-opacity-percentage "^3.0.0" + postcss-overflow-shorthand "^6.0.0" + postcss-page-break "^3.0.4" + postcss-place "^10.0.0" + postcss-pseudo-class-any-link "^10.0.1" + postcss-replace-overflow-wrap "^4.0.0" + postcss-selector-not "^8.0.1" + +postcss-pseudo-class-any-link@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz#06455431171bf44b84d79ebaeee9fd1c05946544" + integrity sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-reduce-idents@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz#b0d9c84316d2a547714ebab523ec7d13704cd486" + integrity sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-reduce-initial@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz#4401297d8e35cb6e92c8e9586963e267105586ba" + integrity sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw== + dependencies: + browserslist "^4.23.0" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz#6fa2c586bdc091a7373caeee4be75a0f3e12965d" + integrity sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-replace-overflow-wrap@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319" + integrity sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw== + +postcss-selector-not@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz#f2df9c6ac9f95e9fe4416ca41a957eda16130172" + integrity sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.16: + version "6.1.4" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz#fdec4ca80f5781bd216ca9bf89a2a0fccfffa5f0" + integrity sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-selector-parser@^7.0.0: + version "7.1.6" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz#45e970f2d93d4547d6754167ed1132f43012c4bf" + integrity sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-sort-media-queries@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz#4556b3f982ef27d3bac526b99b6c0d3359a6cf97" + integrity sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA== + dependencies: + sort-css-media-queries "2.2.0" + +postcss-svgo@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.3.tgz#1d6e180d6df1fa8a3b30b729aaa9161e94f04eaa" + integrity sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g== + dependencies: + postcss-value-parser "^4.2.0" + svgo "^3.2.0" + +postcss-unique-selectors@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz#983ab308896b4bf3f2baaf2336e14e52c11a2088" + integrity sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg== + dependencies: + postcss-selector-parser "^6.0.16" + +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss-zindex@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-6.0.2.tgz#e498304b83a8b165755f53db40e2ea65a99b56e1" + integrity sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg== + +postcss@^8.4.21, postcss@^8.4.24, postcss@^8.4.33, postcss@^8.5.4: + version "8.5.28" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.28.tgz#da4563a99a06e62d6c1cd1acae363224bcaed6e9" + integrity sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A== + dependencies: + nanoid "^3.3.18" + picocolors "^1.1.1" + source-map-js "^1.2.1" + +prebuild-install@^7.1.1: + version "7.1.3" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.3.tgz#d630abad2b147443f20a212917beae68b8092eec" + integrity sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^2.0.0" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + +pretty-error@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" + integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== + dependencies: + lodash "^4.17.20" + renderkid "^3.0.0" + +pretty-time@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" + integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== + +prism-react-renderer@^2.3.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz#ac63b7f78e56c8f2b5e76e823a976d5ede77e35f" + integrity sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig== + dependencies: + "@types/prismjs" "^1.26.0" + clsx "^2.0.0" + +prismjs@^1.29.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.30.0.tgz#d9709969d9d4e16403f6f348c63553b19f0975a9" + integrity sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +prompts@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +property-information@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-7.2.0.tgz#0809b34264e995c0bfcd3227028a1e35210af80a" + integrity sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg== + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + +proxy-addr@~2.0.7: + version "2.0.8" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.8.tgz#624e760fd8ab06b1b8320c2f8506d4422cf8e932" + integrity sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +pump@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.4.tgz#1f313430527fa8b905622ebd22fe1444e757ab3c" + integrity sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +pupa@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.3.0.tgz#bc4036f9e8920c08ad472bc18fb600067cb83810" + integrity sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA== + dependencies: + escape-goat "^4.0.0" + +pvtsutils@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" + integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== + dependencies: + tslib "^2.8.1" + +pvutils@^1.1.3, pvutils@^1.1.5: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.2.0.tgz#4b5487a9cccd52d275b0538775790a3ca982bc22" + integrity sha512-BbubeCEyTuQjVMakvJQ/Sxbc93F2pwmbsxONT/ZRrwU7Ua38d8unYTwXpTVLAKJ4BDuH9IGztCjQcd/N/39Dvg== + +qs@~6.16.0: + version "6.16.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.16.0.tgz#c22c723a28a920f3aacdce8289fabd43eccb79fd" + integrity sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA== + dependencies: + es-define-property "^1.0.1" + side-channel "^1.1.1" + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + integrity sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A== + +range-parser@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.3.0.tgz#d7f19be812bb62721472b45d3be219ef09572b47" + integrity sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw== + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@~2.5.3: + version "2.5.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.3.tgz#11c6650ee770a7de1b494f197927de0c923822e2" + integrity sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA== + dependencies: + bytes "~3.1.2" + http-errors "~2.0.1" + iconv-lite "~0.4.24" + unpipe "~1.0.0" + +rc@1.2.8, rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-dom@^19.0.0: + version "19.3.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.3.0.tgz#a0ff19161d7f4e9be5469a07278b0c06e00f9001" + integrity sha512-JDk8dgif51OjFoDE70+OT9ICyYr+69HlmihNwp1+Nsfbna3t5sIiCa9ZJktDmQ4/1b/rn26hIAR2uYXDMr5r0Q== + dependencies: + scheduler "^0.28.0" + +react-fast-compare@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49" + integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== + +"react-helmet-async@npm:@slorber/react-helmet-async@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@slorber/react-helmet-async/-/react-helmet-async-1.3.0.tgz#11fbc6094605cf60aa04a28c17e0aab894b4ecff" + integrity sha512-e9/OK8VhwUSc67diWI8Rb3I0YgI9/SBQtnhe9aEuK6MhZm7ntZZimXgwXnd8W96YTmSOb9M4d8LwhRZyhWr/1A== + dependencies: + "@babel/runtime" "^7.12.5" + invariant "^2.2.4" + prop-types "^15.7.2" + react-fast-compare "^3.2.0" + shallowequal "^1.1.0" + +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^19.2.3: + version "19.3.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-19.3.0.tgz#716028d67e9993d23a2d353c6d08a3c1ef2bbeb4" + integrity sha512-UpMYezM4v5/18F28aC66AEsjXIgE02kyEMH6yLdgLXu/UTfa1Ntwck/nNLrbqJsEXW7gPb0coNO9FQse9WTovA== + +react-json-view-lite@^2.3.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/react-json-view-lite/-/react-json-view-lite-2.5.0.tgz#c7ff011c7cc80e9900abc7aa4916c6a5c6d6c1c6" + integrity sha512-tk7o7QG9oYyELWHL8xiMQ8x4WzjCzbWNyig3uexmkLb54r8jO0yH3WCWx8UZS0c49eSA4QUmG5caiRJ8fAn58g== + +react-loadable-ssr-addon-v5-slorber@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.3.tgz#bb3791bf481222c63a5bc6b96ee23f68cb5614b9" + integrity sha512-GXfh9VLwB5ERaCsU6RULh7tkemeX15aNh6wuMEBtfdyMa7fFG8TXrhXlx1SoEK2Ty/l6XIkzzYIQmyaWW3JgdQ== + dependencies: + "@babel/runtime" "^7.10.3" + +"react-loadable@npm:@docusaurus/react-loadable@6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz#de6c7f73c96542bd70786b8e522d535d69069dc4" + integrity sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ== + dependencies: + "@types/react" "*" + +react-router-config@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/react-router-config/-/react-router-config-5.1.1.tgz#0f4263d1a80c6b2dc7b9c1902c9526478194a988" + integrity sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg== + dependencies: + "@babel/runtime" "^7.1.2" + +react-router-dom@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.4.tgz#2ed62ffd88cae6db134445f4a0c0ae8b91d2e5e6" + integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.3.4" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router@5.3.4, react-router@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.4.tgz#8ca252d70fcc37841e31473c7a151cf777887bb5" + integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-transition-group@^4.4.5: + version "4.4.5" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react@^19.0.0: + version "19.3.0" + resolved "https://registry.yarnpkg.com/react/-/react-19.3.0.tgz#e20aa3a14687075ce863351b5878b0608c3fbfb2" + integrity sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog== + +readable-stream@^2.0.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +recma-build-jsx@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz#c02f29e047e103d2fab2054954e1761b8ea253c4" + integrity sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew== + dependencies: + "@types/estree" "^1.0.0" + estree-util-build-jsx "^3.0.0" + vfile "^6.0.0" + +recma-jsx@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/recma-jsx/-/recma-jsx-1.0.1.tgz#58e718f45e2102ed0bf2fa994f05b70d76801a1a" + integrity sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w== + dependencies: + acorn-jsx "^5.0.0" + estree-util-to-js "^2.0.0" + recma-parse "^1.0.0" + recma-stringify "^1.0.0" + unified "^11.0.0" + +recma-parse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/recma-parse/-/recma-parse-1.0.0.tgz#c351e161bb0ab47d86b92a98a9d891f9b6814b52" + integrity sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ== + dependencies: + "@types/estree" "^1.0.0" + esast-util-from-js "^2.0.0" + unified "^11.0.0" + vfile "^6.0.0" + +recma-stringify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/recma-stringify/-/recma-stringify-1.0.0.tgz#54632030631e0c7546136ff9ef8fde8e7b44f130" + integrity sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g== + dependencies: + "@types/estree" "^1.0.0" + estree-util-to-js "^2.0.0" + unified "^11.0.0" + vfile "^6.0.0" + +reflect-metadata@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz#400c845b6cba87a21f2c65c4aeb158f4fa4d9c5b" + integrity sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q== + +regenerate-unicode-properties@^10.2.2: + version "10.2.2" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz#aa113812ba899b630658c7623466be71e1f86f66" + integrity sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regexpu-core@^6.3.1: + version "6.4.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.4.0.tgz#3580ce0c4faedef599eccb146612436b62a176e5" + integrity sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^10.2.2" + regjsgen "^0.8.0" + regjsparser "^0.13.0" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.2.1" + +registry-auth-token@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.1.1.tgz#f1ff69c8e492e7edee07110b4752dd0a8aa82853" + integrity sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q== + dependencies: + "@pnpm/npm-conf" "^3.0.2" + +registry-url@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58" + integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== + dependencies: + rc "1.2.8" + +regjsgen@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" + integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== + +regjsparser@^0.13.0: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.13.3.tgz#2f0ac72d6d4604d4b38f841ff537ebd9b72fd214" + integrity sha512-ycwFAS14Jw4mppvmK4GR/J6u3WpWpjkEApehuHtLc/8VpPNpDMbQ4WjqwplXifGeyKOzHSFLmSPqzksDQE2Sfg== + dependencies: + jsesc "~3.1.0" + +rehype-raw@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/rehype-raw/-/rehype-raw-7.0.0.tgz#59d7348fd5dbef3807bbaa1d443efd2dd85ecee4" + integrity sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww== + dependencies: + "@types/hast" "^3.0.0" + hast-util-raw "^9.0.0" + vfile "^6.0.0" + +rehype-recma@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rehype-recma/-/rehype-recma-1.0.0.tgz#d68ef6344d05916bd96e25400c6261775411aa76" + integrity sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw== + dependencies: + "@types/estree" "^1.0.0" + "@types/hast" "^3.0.0" + hast-util-to-estree "^3.0.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +remark-directive@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/remark-directive/-/remark-directive-3.0.1.tgz#689ba332f156cfe1118e849164cc81f157a3ef0a" + integrity sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-directive "^3.0.0" + micromark-extension-directive "^3.0.0" + unified "^11.0.0" + +remark-emoji@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/remark-emoji/-/remark-emoji-4.0.1.tgz#671bfda668047689e26b2078c7356540da299f04" + integrity sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg== + dependencies: + "@types/mdast" "^4.0.2" + emoticon "^4.0.1" + mdast-util-find-and-replace "^3.0.1" + node-emoji "^2.1.0" + unified "^11.0.4" + +remark-frontmatter@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz#b68d61552a421ec412c76f4f66c344627dc187a2" + integrity sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-frontmatter "^2.0.0" + micromark-extension-frontmatter "^2.0.0" + unified "^11.0.0" + +remark-gfm@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-4.0.1.tgz#33227b2a74397670d357bf05c098eaf8513f0d6b" + integrity sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-gfm "^3.0.0" + micromark-extension-gfm "^3.0.0" + remark-parse "^11.0.0" + remark-stringify "^11.0.0" + unified "^11.0.0" + +remark-mdx@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-3.1.1.tgz#047f97038bc7ec387aebb4b0a4fe23779999d845" + integrity sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg== + dependencies: + mdast-util-mdx "^3.0.0" + micromark-extension-mdxjs "^3.0.0" + +remark-parse@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-11.0.0.tgz#aa60743fcb37ebf6b069204eb4da304e40db45a1" + integrity sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-from-markdown "^2.0.0" + micromark-util-types "^2.0.0" + unified "^11.0.0" + +remark-rehype@^11.0.0: + version "11.1.2" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-11.1.2.tgz#2addaadda80ca9bd9aa0da763e74d16327683b37" + integrity sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + mdast-util-to-hast "^13.0.0" + unified "^11.0.0" + vfile "^6.0.0" + +remark-stringify@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-11.0.0.tgz#4c5b01dd711c269df1aaae11743eb7e2e7636fd3" + integrity sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-to-markdown "^2.0.0" + unified "^11.0.0" + +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^6.0.1" + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +"require-like@>= 0.1.1": + version "0.1.2" + resolved "https://registry.yarnpkg.com/require-like/-/require-like-0.1.2.tgz#ad6f30c13becd797010c468afa775c0c0a6b47fa" + integrity sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resolve-alpn@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + +resolve@^1.19.0, resolve@^1.22.11: + version "1.22.12" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.12.tgz#f5b2a680897c69c238a13cd16b15671f8b73549f" + integrity sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA== + dependencies: + es-errors "^1.3.0" + is-core-module "^2.16.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +responselike@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" + integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== + dependencies: + lowercase-keys "^3.0.0" + +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +reusify@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" + integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== + +rimraf@^6.0.1: + version "6.1.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-6.1.3.tgz#afbee236b3bd2be331d4e7ce4493bac1718981af" + integrity sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA== + dependencies: + glob "^13.0.3" + package-json-from-dist "^1.0.1" + +robust-predicates@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.3.tgz#1099061b3349e2c5abec6c2ab0acd440d24d4062" + integrity sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA== + +roughjs@^4.6.6: + version "4.6.6" + resolved "https://registry.yarnpkg.com/roughjs/-/roughjs-4.6.6.tgz#1059f49a5e0c80dee541a005b20cc322b222158b" + integrity sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ== + dependencies: + hachure-fill "^0.5.2" + path-data-parser "^0.1.0" + points-on-curve "^0.2.0" + points-on-path "^0.2.1" + +rtlcss@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/rtlcss/-/rtlcss-4.3.0.tgz#f8efd4d5b64f640ec4af8fa25b65bacd9e07cc97" + integrity sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + postcss "^8.4.21" + strip-json-comments "^3.1.1" + +run-applescript@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-7.1.0.tgz#2e9e54c4664ec3106c5b5630e249d3d6595c4911" + integrity sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rw@1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" + integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== + +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@^1.2.4, sax@^1.5.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.6.1.tgz#4c23cf608c0b693ab54b4b5888e92cfe977b9843" + integrity sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q== + +scheduler@^0.28.0: + version "0.28.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.28.0.tgz#03d3ca348aeaf8b7502f64468f217b27523f9695" + integrity sha512-juorfCmIkIw8tT+p5BXSm6PJjQF/ycEYmKyzURCIt/RaZIhL+PulbQ9Yu2z1HdOJDdqDTlxA1+xKBmHXJsczAw== + +schema-dts@^1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/schema-dts/-/schema-dts-1.1.5.tgz#9237725d305bac3469f02b292a035107595dc324" + integrity sha512-RJr9EaCmsLzBX2NDiO5Z3ux2BVosNZN5jo0gWgsyKvxKIUL5R3swNvoorulAeL9kLB0iTSX7V6aokhla2m7xbg== + +schema-utils@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0, schema-utils@^4.0.1, schema-utils@^4.2.0, schema-utils@^4.3.0, schema-utils@^4.3.3, schema-utils@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.5.0.tgz#aaf8d588bd2b19511175175a5222baef648c009c" + integrity sha512-zJlMCZ0cAR5p/Y4oVpRoqioDMJcGxaXRrQ/4rP4WyR84vc5z/DolXdbvXeDpTwbtocDFr2rhPqHPErDCUtz2kA== + dependencies: + "@types/json-schema" "^7.0.15" + ajv "^8.20.0" + ajv-formats "^3.0.1" + ajv-keywords "^5.1.0" + +section-matter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" + integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== + dependencies: + extend-shallow "^2.0.1" + kind-of "^6.0.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + +select@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA== + +selfsigned@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-5.5.0.tgz#4c9ab7c7c9f35f18fb6a9882c253eb0e6bd6557b" + integrity sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew== + dependencies: + "@peculiar/x509" "^1.14.2" + pkijs "^3.3.3" + +semver-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-4.0.0.tgz#3afcf5ed6d62259f5c72d0d5d50dffbdc9680df5" + integrity sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA== + dependencies: + semver "^7.3.5" + +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.3.5, semver@^7.3.7, semver@^7.5.4: + version "7.8.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.5.tgz#39b646037dd50c14fb451e7e4cac58ed8b863f69" + integrity sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA== + +send@~0.19.0, send@~0.19.1: + version "0.19.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.19.2.tgz#59bc0da1b4ea7ad42736fd642b1c4294e114ff29" + integrity sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~2.0.0" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "~0.5.2" + http-errors "~2.0.1" + mime "1.6.0" + ms "2.1.3" + on-finished "~2.4.1" + range-parser "~1.2.1" + statuses "~2.0.2" + +serialize-javascript@^6.0.0, serialize-javascript@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +serve-handler@^6.1.7: + version "6.1.7" + resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.7.tgz#e9bb864e87ee71e8dab874cde44d146b77e3fb78" + integrity sha512-CinAq1xWb0vR3twAv9evEU8cNWkXCb9kd5ePAHUKJBkOsUpR1wt/CvGdeca7vqumL1U5cSaeVQ6zZMxiJ3yWsg== + dependencies: + bytes "3.0.0" + content-disposition "0.5.2" + mime-types "2.1.18" + minimatch "3.1.5" + path-is-inside "1.0.2" + path-to-regexp "3.3.0" + range-parser "1.2.0" + +serve-index@^1.9.1: + version "1.9.2" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.2.tgz#2988e3612106d78a5e4849ddff552ce7bd3d9bcb" + integrity sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ== + dependencies: + accepts "~1.3.8" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.8.0" + mime-types "~2.1.35" + parseurl "~1.3.3" + +serve-static@~1.16.2: + version "1.16.3" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.3.tgz#a97b74d955778583f3862a4f0b841eb4d5d78cf9" + integrity sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA== + dependencies: + encodeurl "~2.0.0" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "~0.19.1" + +set-function-length@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +setprototypeof@1.2.0, setprototypeof@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +sharp@^0.32.3: + version "0.32.6" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.32.6.tgz#6ad30c0b7cd910df65d5f355f774aa4fce45732a" + integrity sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w== + dependencies: + color "^4.2.3" + detect-libc "^2.0.2" + node-addon-api "^6.1.0" + prebuild-install "^7.1.1" + semver "^7.5.4" + simple-get "^4.0.1" + tar-fs "^3.0.4" + tunnel-agent "^0.6.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.8.4: + version "1.10.0" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.10.0.tgz#482033e192e4f5c07151521ffa03400ec71b1b0f" + integrity sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA== + +side-channel-list@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.1.tgz#c2e0b5a14a540aebee3bbc6c3f8666cc9b509127" + integrity sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.4" + +side-channel-map@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + +side-channel-weakmap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + side-channel-map "^1.0.1" + +side-channel@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.1.tgz#ea02c62e05dc4bea67d4442f0fb71ee192f8e0ab" + integrity sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.4" + side-channel-list "^1.0.1" + side-channel-map "^1.0.1" + side-channel-weakmap "^1.0.2" + +signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0, simple-get@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-swizzle@^0.2.2: + version "0.2.4" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.4.tgz#a8d11a45a11600d6a1ecdff6363329e3648c3667" + integrity sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw== + dependencies: + is-arrayish "^0.3.1" + +sirv@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.4.tgz#5dd9a725c578e34e449f332703eb2a74e46a29b0" + integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ== + dependencies: + "@polka/url" "^1.0.0-next.24" + mrmime "^2.0.0" + totalist "^3.0.0" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +sitemap@^7.1.1: + version "7.1.3" + resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-7.1.3.tgz#2b756f79f0b77527c0eaba280c722e4c66c08886" + integrity sha512-tAjEd+wt/YwnEbfNB2ht51ybBJxbEWwe5ki/Z//Wh0rpBFTCUSj46GnxUKEWzhfuJTsee8x3lybHxFgUMig2hw== + dependencies: + "@types/node" "^17.0.5" + "@types/sax" "^1.2.1" + arg "^5.0.0" + sax "^1.2.4" + +skin-tone@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/skin-tone/-/skin-tone-2.0.0.tgz#4e3933ab45c0d4f4f781745d64b9f4c208e41237" + integrity sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA== + dependencies: + unicode-emoji-modifier-base "^1.0.0" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +sockjs@^0.3.24: + version "0.3.24" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + dependencies: + faye-websocket "^0.11.3" + uuid "^8.3.2" + websocket-driver "^0.7.4" + +sort-css-media-queries@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz#aa33cf4a08e0225059448b6c40eddbf9f1c8334c" + integrity sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA== + +source-map-js@^1.0.1, source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.6.0, source-map@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.0: + version "0.7.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.6.tgz#a3658ab87e5b6429c8a1f3ba0083d4c61ca3ef02" + integrity sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ== + +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +srcset@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/srcset/-/srcset-4.0.0.tgz#336816b665b14cd013ba545b6fe62357f86e65f4" + integrity sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw== + +"statuses@>= 1.5.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +statuses@~2.0.1, statuses@~2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382" + integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw== + +std-env@^3.7.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.10.0.tgz#d810b27e3a073047b2b5e40034881f5ea6f9c83b" + integrity sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg== + +streamx@^2.12.5, streamx@^2.15.0, streamx@^2.25.0: + version "2.28.1" + resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.28.1.tgz#376cd42a089505a69bec0efdb5189aa45586141f" + integrity sha512-zEzXb0s5Cds7tqMH6rhZ05lcJydCWiQPEwiNngVqzsxCc962vLY4Uw+mW7od8kDH258k2Uz/JrOkdIAAhSh9VA== + dependencies: + events-universal "^1.0.0" + fast-fifo "^1.3.2" + text-decoder "^1.1.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-entities@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.4.tgz#b3b79ef5f277cc4ac73caeb0236c5ba939b3a4f3" + integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== + dependencies: + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.2.0.tgz#d22a269522836a627af8d04b5c3fd2c7fa3e32e3" + integrity sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w== + dependencies: + ansi-regex "^6.2.2" + +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +style-to-js@^1.0.0: + version "1.1.21" + resolved "https://registry.yarnpkg.com/style-to-js/-/style-to-js-1.1.21.tgz#2908941187f857e79e28e9cd78008b9a0b3e0e8d" + integrity sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ== + dependencies: + style-to-object "1.0.14" + +style-to-object@1.0.14: + version "1.0.14" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-1.0.14.tgz#1d22f0e7266bb8c6d8cae5caf4ec4f005e08f611" + integrity sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw== + dependencies: + inline-style-parser "0.2.7" + +stylehacks@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.1.1.tgz#543f91c10d17d00a440430362d419f79c25545a6" + integrity sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg== + dependencies: + browserslist "^4.23.0" + postcss-selector-parser "^6.0.16" + +stylis@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" + integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== + +stylis@^4.3.6: + version "4.4.0" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.4.0.tgz#c5846c9345f4bfc51bd0cbd7ca35a0744f485a5d" + integrity sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA== + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svg-parser@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.1.0.tgz#f808c50953207b230fea6200d866697af61617a4" + integrity sha512-bwLf38YmY+TDYHJw1Ex0Co8c4yeXuJAo8YnXGZrscxrvYoVVIvLeniEkV1Ks/54VteMnL4FtyN1+P+TZJdUPmQ== + +svgo@^3.0.2, svgo@^3.2.0: + version "3.3.5" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.3.5.tgz#8a3d9557ab2f386eca7e24760385849554985a1c" + integrity sha512-8SQMzdrvWaD8deUmrnYB+ASyxBVgWUOilg+A75nE/76WdLpj6LopCwiAVvkzkcqy/9b7t2Mg7faFLjg0ZRcZ3w== + dependencies: + commander "^7.2.0" + css-select "^5.1.0" + css-tree "^2.3.1" + css-what "^6.1.0" + csso "^5.0.5" + picocolors "^1.0.0" + sax "^1.5.0" + +swc-loader@^0.2.6: + version "0.2.7" + resolved "https://registry.yarnpkg.com/swc-loader/-/swc-loader-0.2.7.tgz#2d1611ab314c5d8342d74aa5e5901b3fbf490de2" + integrity sha512-nwYWw3Fh9ame3Rtm7StS9SBLpHRRnYcK7bnpF3UKZmesAK0gw2/ADvlURFAINmPvKtDLzp+GBiP9yLoEjg6S9w== + dependencies: + "@swc/counter" "^0.1.3" + +tapable@^2.0.0, tapable@^2.2.1, tapable@^2.3.0, tapable@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.3.tgz#5da7c9992c46038221267985ab28421a8879f160" + integrity sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A== + +tar-fs@^2.0.0: + version "2.1.5" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.5.tgz#33e9c29413dce0c58ada7ff77db4e5a30afffe70" + integrity sha512-OboTd8mmMhZDNPV+UjQcK9yKAatXu2aJ+r1w4im1Otd4M4fl2hwvdoXUxIYHFTHWK/3y3FarBP70v3vwmGlOxw== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-fs@^3.0.4: + version "3.1.3" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.1.3.tgz#05668cc68a30741c3813f9c16593b8dec7dcbcd1" + integrity sha512-/hU4AXnIdZu+Gvl1pk0oI5f5HxWsCJRtY2aFaJdk9VvyL48DWU6iU5WAIPG+wIi1YvWA6eTJvIviP/tMAZZNwQ== + dependencies: + pump "^3.0.0" + tar-stream "^3.1.5" + optionalDependencies: + bare-fs "^4.0.1" + bare-path "^3.0.0" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar-stream@^3.1.5: + version "3.2.1" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.2.1.tgz#952d72f7aba68ce5cb802ef2e0b19f1bd989140d" + integrity sha512-nqsEO8zLZJvrOMdEwkA0QdCLFbetHMn95Zqu4fKwX+hkaTWJPZZOrxx/PwtxoK0MMGQmBQNRW3CPs8IFYQz4cQ== + dependencies: + b4a "^1.6.4" + bare-fs "^4.5.5" + fast-fifo "^1.2.0" + streamx "^2.15.0" + +teex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/teex/-/teex-1.0.1.tgz#b8fa7245ef8e8effa8078281946c85ab780a0b12" + integrity sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg== + dependencies: + streamx "^2.12.5" + +terser-webpack-plugin@^5.3.9: + version "5.6.1" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.6.1.tgz#47bc41bd8b8fab8383b62ec763b7394829097e7b" + integrity sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ== + dependencies: + "@jridgewell/trace-mapping" "^0.3.25" + jest-worker "^27.4.5" + schema-utils "^4.3.0" + terser "^5.31.1" + +terser@^5.10.0, terser@^5.15.1, terser@^5.31.1, terser@^5.51.0: + version "5.51.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.51.2.tgz#555912425a7f2ff7737425c3718fa76c7069f6ef" + integrity sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.15.0" + commander "^2.20.0" + source-map-support "~0.5.20" + +text-decoder@^1.1.0: + version "1.2.7" + resolved "https://registry.yarnpkg.com/text-decoder/-/text-decoder-1.2.7.tgz#5d073a9a74b9c0a9d28dfadcab96b604af57d8ba" + integrity sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ== + dependencies: + b4a "^1.6.4" + +thingies@^2.5.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/thingies/-/thingies-2.6.1.tgz#4eb28e2585a75288f1765a0b08f1dfa020357a6f" + integrity sha512-cV/CMGTK3M4MlnJ/0At6ismOw/A0EEniDNScajjz/Br3c1sqE72YD01rGpPTKwd27wAxI5Pr+6+0w8yofzFRYw== + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tiny-invariant@^1.0.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127" + integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg== + +tiny-warning@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +tinyexec@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-1.3.1.tgz#16a2e3c6e23fafce72640e678e651db36145b9c6" + integrity sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA== + +tinypool@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.1.1.tgz#059f2d042bd37567fbc017d3d426bdd2a2612591" + integrity sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1, toidentifier@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +totalist@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" + integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== + +tree-dump@^1.0.3, tree-dump@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/tree-dump/-/tree-dump-1.1.0.tgz#ab29129169dc46004414f5a9d4a3c6e89f13e8a4" + integrity sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA== + +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + +trough@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f" + integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== + +ts-dedent@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.3.0.tgz#8fac36c7902b541c154ac13a27ac467997af11f8" + integrity sha512-JfJeIHke7y2egdGGgRAvpCwYFUsHlM2gPcrVOxFkznt/4uzQ7HFmvE63iFHVLBJNDuyDOQgijDK/tXH/f6Msjg== + +tslib@^1.9.3: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.4.0, tslib@^2.6.0, tslib@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + +tsyringe@^4.10.0: + version "4.10.0" + resolved "https://registry.yarnpkg.com/tsyringe/-/tsyringe-4.10.0.tgz#d0c95815d584464214060285eaaadd94aa03299c" + integrity sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw== + dependencies: + tslib "^1.9.3" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +type-fest@^1.0.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + +type-fest@^2.13.0, type-fest@^2.5.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +undici-types@~8.9.0: + version "8.9.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.9.0.tgz#e240d97c8b5d85e5347ce73d25865c7906c1ec9f" + integrity sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" + integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== + +unicode-emoji-modifier-base@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz#dbbd5b54ba30f287e2a8d5a249da6c0cef369459" + integrity sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz#65a7adfad8574c219890e219285ce4c64ed67eaa" + integrity sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz#301d4f8a43d2b75c97adfad87c9dd5350c9475d1" + integrity sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ== + +unified@^11.0.0, unified@^11.0.3, unified@^11.0.4: + version "11.0.5" + resolved "https://registry.yarnpkg.com/unified/-/unified-11.0.5.tgz#f66677610a5c0a9ee90cab2b8d4d66037026d9e1" + integrity sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA== + dependencies: + "@types/unist" "^3.0.0" + bail "^2.0.0" + devlop "^1.0.0" + extend "^3.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^6.0.0" + +unique-string@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" + integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== + dependencies: + crypto-random-string "^4.0.0" + +unist-util-is@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.1.tgz#d0a3f86f2dd0db7acd7d8c2478080b5c67f9c6a9" + integrity sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-position-from-estree@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz#d94da4df596529d1faa3de506202f0c9a23f2200" + integrity sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-position@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-5.0.0.tgz#678f20ab5ca1207a97d7ea8a388373c9cf896be4" + integrity sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-stringify-position@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2" + integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-visit-parents@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz#777df7fb98652ce16b4b7cd999d0a1a40efa3a02" + integrity sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + +unist-util-visit@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.1.0.tgz#9a2a28b0aa76a15e0da70a08a5863a2f060e2468" + integrity sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +update-browserslist-db@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.3.3.tgz#197e21fb2561fa89f8b94fad605a2b296a18993a" + integrity sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" + +update-notifier@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-6.0.2.tgz#a6990253dfe6d5a02bd04fbb6a61543f55026b60" + integrity sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og== + dependencies: + boxen "^7.0.0" + chalk "^5.0.1" + configstore "^6.0.0" + has-yarn "^3.0.0" + import-lazy "^4.0.0" + is-ci "^3.0.1" + is-installed-globally "^0.4.0" + is-npm "^6.0.0" + is-yarn-global "^0.4.0" + latest-version "^7.0.0" + pupa "^3.1.0" + semver "^7.3.7" + semver-diff "^4.0.0" + xdg-basedir "^5.1.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-loader@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +utility-types@^3.10.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.11.0.tgz#607c40edb4f258915e901ea7995607fdf319424c" + integrity sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^11.0.0, "uuid@^11.1.0 || ^12 || ^13 || ^14.0.0", uuid@^8.3.2: + version "11.1.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.1.tgz#f6d81d2e1c65d00762e5e29b16c5d2d995e208ad" + integrity sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ== + +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +vfile-location@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-5.0.3.tgz#cb9eacd20f2b6426d19451e0eafa3d0a846225c3" + integrity sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg== + dependencies: + "@types/unist" "^3.0.0" + vfile "^6.0.0" + +vfile-message@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.3.tgz#87b44dddd7b70f0641c2e3ed0864ba73e2ea8df4" + integrity sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" + +vfile@^6.0.0, vfile@^6.0.1: + version "6.0.3" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-6.0.3.tgz#3652ab1c496531852bf55a6bac57af981ebc38ab" + integrity sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q== + dependencies: + "@types/unist" "^3.0.0" + vfile-message "^4.0.0" + +watchpack@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.5.2.tgz#e12e82d84674266fc1c6dbfe38891b92ff0522ec" + integrity sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg== + dependencies: + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +web-namespaces@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692" + integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== + +webpack-bundle-analyzer@^4.10.2: + version "4.10.2" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz#633af2862c213730be3dbdf40456db171b60d5bd" + integrity sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw== + dependencies: + "@discoveryjs/json-ext" "0.5.7" + acorn "^8.0.4" + acorn-walk "^8.0.0" + commander "^7.2.0" + debounce "^1.2.1" + escape-string-regexp "^4.0.0" + gzip-size "^6.0.0" + html-escaper "^2.0.2" + opener "^1.5.2" + picocolors "^1.0.0" + sirv "^2.0.3" + ws "^7.3.1" + +webpack-dev-middleware@^7.4.2: + version "7.4.6" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-7.4.6.tgz#c27229cb157842882732ee5125fa217a2c6466dc" + integrity sha512-yBWCMvIfUmuhAE8vdqUKzH0vg9kuWN0KeG4vBnqRplUFHRU7lMQjkiJWxVQzvo2BTewqhPhDlMB41rAt2jVA9A== + dependencies: + colorette "^2.0.10" + memfs "^4.43.1" + mime-types "^3.0.1" + on-finished "^2.4.1" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-dev-server@^5.2.2: + version "5.2.6" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-5.2.6.tgz#3a5d41233cbb7504f814d19e59a59173fb8ae23d" + integrity sha512-HNLRmamRvVavZQ+avceZifmv8hmdUjg43t6MI4SqJDwFdW7RPQwH5vzGhDRZSX59SgfbeHhLnq3g+uooWo7pVw== + dependencies: + "@types/bonjour" "^3.5.13" + "@types/connect-history-api-fallback" "^1.5.4" + "@types/express" "^4.17.25" + "@types/express-serve-static-core" "^4.17.21" + "@types/serve-index" "^1.9.4" + "@types/serve-static" "^1.15.5" + "@types/sockjs" "^0.3.36" + "@types/ws" "^8.5.10" + ansi-html-community "^0.0.8" + bonjour-service "^1.2.1" + chokidar "^3.6.0" + colorette "^2.0.10" + compression "^1.8.1" + connect-history-api-fallback "^2.0.0" + express "^4.22.1" + graceful-fs "^4.2.6" + http-proxy-middleware "^2.0.9" + ipaddr.js "^2.1.0" + launch-editor "^2.14.1" + open "^10.0.3" + p-retry "^6.2.0" + schema-utils "^4.2.0" + selfsigned "^5.5.0" + serve-index "^1.9.1" + sockjs "^0.3.24" + spdy "^4.0.2" + webpack-dev-middleware "^7.4.2" + ws "^8.18.0" + +webpack-merge@^5.9.0: + version "5.10.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" + integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== + dependencies: + clone-deep "^4.0.1" + flat "^5.0.2" + wildcard "^2.0.0" + +webpack-merge@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-6.0.1.tgz#50c776868e080574725abc5869bd6e4ef0a16c6a" + integrity sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg== + dependencies: + clone-deep "^4.0.1" + flat "^5.0.2" + wildcard "^2.0.1" + +webpack-sources@^3.5.1: + version "3.5.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.5.3.tgz#35e2bec56951011bbaaffb450936222113bac031" + integrity sha512-F/zS5rEcCKxS6hrhxkLjOzblTsuv89rkuDyP+vToquds6KfPJ3fDqg9UNzbtJcA2AgXZOLMYLQqZpuyE5zDfxg== + +webpack@^5.88.1, webpack@^5.95.0: + version "5.111.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.111.1.tgz#7c12cd014fbb9bfd8509a6cfc6f1c79f4e06cade" + integrity sha512-cNypaz0RP+S4cvQVi1M/3bRUkvNP0xZpL0TjFx+c6jg64VbxD+2weWDgY9UnjRI6dhZgtaj8DU76GGFcJ79xPQ== + dependencies: + "@types/estree" "^1.0.8" + "@types/json-schema" "^7.0.15" + "@webassemblyjs/ast" "^1.14.1" + "@webassemblyjs/wasm-edit" "^1.14.1" + "@webassemblyjs/wasm-parser" "^1.14.1" + browserslist "^4.28.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.25.0" + es-module-lexer "^2.1.0" + events "^3.2.0" + graceful-fs "^4.2.11" + mime-db "^1.54.0" + minimizer-webpack-plugin "^5.7.0" + schema-utils "^4.5.0" + tapable "^2.3.0" + watchpack "^2.5.2" + webpack-sources "^3.5.1" + +webpackbar@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-7.0.0.tgz#7228d32881af2392381b6514499ddea73cdf218a" + integrity sha512-aS9soqSO2iCHgqHoCrj4LbfGQUboDCYJPSFOAchEK+9psIjNrfSWW4Y0YEz67MKURNvMmfo0ycOg9d/+OOf9/Q== + dependencies: + ansis "^3.2.0" + consola "^3.2.3" + pretty-time "^1.1.0" + std-env "^3.7.0" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.5" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.5.tgz#569d22764ab21f2de20af0e74b411e8ae5a0fa46" + integrity sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +widest-line@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2" + integrity sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig== + dependencies: + string-width "^5.0.1" + +wildcard@^2.0.0, wildcard@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== + +wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^7.3.1: + version "7.5.13" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.13.tgz#12aa507eaca76c295c278b1aebf4698ab2c1845f" + integrity sha512-rsKI6xDBFVf4r/x8XyChGK04QR/XHroxs/jUcoWvtEZM8TPU/X/uIY9B1CsSzYws9ZJb/6bbBu7dPhFW00CAoA== + +ws@^8.18.0: + version "8.21.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.3.tgz#660b4faddb6a3e575c86e078126919961f4de4fc" + integrity sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw== + +wsl-utils@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/wsl-utils/-/wsl-utils-0.1.0.tgz#8783d4df671d4d50365be2ee4c71917a0557baab" + integrity sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw== + dependencies: + is-wsl "^3.1.0" + +xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" + integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== + +xml-js@^1.6.11: + version "1.6.11" + resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" + integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== + dependencies: + sax "^1.2.4" + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yaml@^1.10.0: + version "1.10.3" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.3.tgz#76e407ed95c42684fb8e14641e5de62fe65bbcb3" + integrity sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA== + +yocto-queue@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.2.2.tgz#3e09c95d3f1aa89a58c114c99223edf639152c00" + integrity sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ== + +zwitch@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==